1. 프로그래밍이란?
컴퓨터에게 실행을 요구하는 일종의 커뮤니케이션
→ 먼저 무엇을 실행하고 싶은지 정의할 필요가 있음
즉, 앞서 해결해야 할 문제를 명확히 이해한 후 적절한 문제 핵ㄹ 방아능 정의할 필요가 있다
문제 해결 능력 = 알고리즘?
반드시 그런 것은 아니다. 문제 해결 능력을 함양하는데 알고리즘 학습은 큰 도움이 되지만
→ 문제 해결 능력은 더 큰 차원의 능력
대부분의 문제(요구사항)은 복잡하며 명확하지 않을 수도 있다. 따라서 문제 (요구사항)을 명확하게 이해하는 것이 먼저
- 복잡함을 단순하게 분해하고
- 자료를 정리하고
- 자료를 구분하고
- 순서에 맞게 행위를 배열해야 한다
→ 프로그래밍 : 0과 1밖에 알지 못하는 기계가 실행할 수 있을 정도로 정확하고 상세하게 요구사항을 설명하는 작업= 그 결과물이 바로 코드
모호하고 대략적인 요구사항을 전달해도 우리의 머릿속에 있는 의도를 정확히 꿰뚫어 완벽히 이해하는 컴퓨터는 절대 존재할 수 없다.
우리는 문제 해결 방안을 고려할 때 컴퓨터의 입장에서 문제를 바라보아야 한다.
이때 필요한 것이 computing thinking (컴퓨팅 사고) 이다.
문제 해결 능력은 직감과 직관의 영역이라고 볼 수 있는데, 이는 문제를 바라보는 우리의 사고와 경험에 영향을 받는다.
사람의 일반적인 사고 방식은 매우 포괄적이며 실생활에서 경험하는 익숙한 사항에 대해 당연시하는 안일한 인식이 있다.
- 듣는 행위
사람 : 하나의 간단하고 당연한 기능
컴퓨터 : 단순하지 않음
- 크기를 표시할때
사람: 크다 Or 작다
컴퓨터: 양적 개념
→ 현재 볼륨보다 1단계 크게 조정하라
→ 볼륨을 60으로 조정하라
💡 붉다, 사랑과 같은 관념적 개념은 컴퓨터에게 매우 난해한 개념이다. 사람은 지인의 얼굴을 보고 누구인지 바로 인지하지만, 컴퓨터에게 이는 매우 어려운 일이다. 347의 6승을 계산하는 것은 사람에게는 쉽지 않지만 컴퓨터에게는 매우 쉬운 일일것이다.
💡 이렇듯 컴퓨터와 사람은 사고, 인지의 방식이 다르다. 따라서 컴퓨터의 관점에서 문제를 사고해야 한다.
→ 여기에는 논리적, 수학적 사고가 필요하며, 해결 과제를 작은 단위로 분해하고 패턴화해서 추출한다
→ 프로그래밍 내에서 사용될 모든 개념은 평가 가능하도록 정의해야 한다
걷기 기능 디자인하기
‘걷다’라는 기능을 디자인하려면
- 판단해야 하는 상태
- 그 상태를 판단하는 시기
- 판단기준
을 정의해야 하며, 이를 바탕으로 분해한 처리의 실행 여부를 결정한다
→ 장애물이란 무엇인가? (크기, 움직임 등)
→ 어떤 범위 내에 있는 것인지 명확히 수치화해서 정의해야 함
→ 어떤 조건에서 걷는 것을 멈춰야 하는가?
→ 이 모든 것을 프로그래밍 언어로 표현해야 한다.
'2023 공부한것들' 카테고리의 다른 글
[01-3] 구문과 의미 (0) | 2023.06.26 |
---|---|
[01-2] 프로그래밍 언어 (0) | 2023.06.26 |
[TIL] 20230625 (0) | 2023.06.25 |
[코딩애플 html/css] 4강: css 파일 만들고 첨부하는 법 (0) | 2023.06.25 |
[코딩애플 html/css] 3강 : 기본적인 웹페이지 스타일링 (0) | 2023.06.25 |