Page 14 - 컴퓨팅 사고와 함께하는 파이썬기초부터 인공지능 응용까지 도서 미리보기
P. 14
CHAPTER 2? 문제 해결과 컴퓨팅 사고 023
는 놀이조차도 나름의 목표 상태가 있어 그 상태에 이르기까지 요구되는 활동을 수행
한다는 점에서 문제 해결 활동으로 이해할 수 있다.
여기에서 우리는 ‘문제 해결’이 초기 상태로부터 목표 상태에 이르는 상태 변환과정,
즉 계산임을 알 수 있다. 이는 어떤 문제든 계산에 의해 해결될 수 있음을 뜻하며, 계
산을 계획하고 실행함으로써 문제 해결이 가능함을 의미한다. 우리가 수학 문제를 풀
때 연필과 종이로 행하는 활동이 계산이듯, 자동화된 생산 라인을 실시간 제어하기 위
해 컴퓨터가 수행하는 작업이 계산이며, 우리가 일상적인 문제를 해결하기 위해 수행
하는 활동(생각하고 행동하고 도구를 사용하는 등의 활동) 역시 계산인 것이다.
우리가 학교, 직장, 그리고 일상에서 직면하게 되는, 해결해야 할 문제의 유형은 다양
하다. 약수 찾기 문제, 일련의 숫자 중 가장 큰 숫자 찾기 문제, 소수 검사 문제, 주어
진 숫자들의 평균 구하기 문제, 최단 경로 찾기 문제, 일치 패턴 찾기 문제, 배낭 채
우기(한정된 공간에 총 효용가치가 최대가 되도록 물건 골라 넣기) 문제, 거스름돈
(최소 개수의 동전으로 거스름돈 지불하기) 문제 등은 극히 일부일 뿐이다. 여기서 우
리가 명확히 해야 할 사항은 ‘문제(problem)’라는 용어가 구체적 ‘문제 사례(problem
instance)’들을 포괄한 추상적 용어라는 점이다. 28의 약수 찾기, 16의 약수 찾기 등은
‘약수 찾기’ 문제에 속하는 문제 사례들이고, 집에서 학교까지의 최단 경로 찾기, 병원
에서 공원까지의 최단 경로 찾기 등은 ’최단 경로 찾기‘ 문제에 포함되는 문제 사례들
이다. 일반적으로 컴퓨팅에서 문제를 해결한다는 것은 해당 문제 유형에 속한 일련의
문제 사례들 모두에 적용할 수 있는 계산 규칙, 즉 알고리즘 찾아낸 후, 이를 적용해
주어진 문제 사례들을 해결한다는 것이다.
[큰 숫자 덧셈 공부] 상황 속에서 문제와 문제 사례로 인식할 수 있는 요소들과, 그
해결책으로 고려해 볼 수 있는 방법 중 하나는 다음과 같다.
yy 문제 : 혼자서 문제집을 가지고 “큰 숫자 덧셈 공부”를 할 때 겪게 되는 어려움
yy 해결책 : 데스크톱 컴퓨터가 “큰 숫자 덧셈 공부 도우미” 역할을 수행하게 만
들고, 학습자는 그 기능을 활용해 “큰 숫자 덧셈 공부”를 하게 한다.