Page 14 -
P. 14
위의 과정을 컴퓨터 과학자들의 표현으로 이야기하면 문제를 해결하기 위해 문
제를 분석해서 입력, 처리, 출력을 정의한다고 한다. 입력은 데이터 분석, 처리
는 알고리즘, 출력은 사용자 인터페이스(User Interface; UI)로 정의하고, 마지막으
로 프로그래밍을 하게 된다.
우리는 가장 빠른 길을 찾는 문제를 통해 컴퓨터 과학자들의 생각을 엿볼 수 있
다. 내가 알고 있는 길과 소요시간을 컴퓨터에 입력하면 컴퓨터는 길과 소요시
간을 이용해 소요시간이 가장 적게 드는 길을 출력값으로 주는 프로그램을 작성
하면 된다. 이때 컴퓨터 과학자들은 소요시간이 가장 적게 드는 길을 선택하는
방법을 다음과 같은 순서로 집중할 것이다.
1. 시작 지점과 끝 지점을 결정한다.
2. 중간에 경유할 수 있는 지점과 각 지점까지의 거리를 계산한다.
3. 2번 과정을 반복하면서 입력받은 길들의 거리를 모두 계산한다.
4. 계산된 거리 중 가장 작은 값과 경로를 출력한다.
여기에서 컴퓨터 과학자가 컴퓨터로 문제를 해결하기 위하여 사용한 기술들을
생각해 보자.
먼저 가장 빠른 길을 찾는 문제를 해결하기 위해 무엇을 입력할지 결정한다. 길
은 시작 지점과 끝 지점으로 다시 정의했으며, 소요시간은 시작 지점과 끝 지점
의 거리로 다시 정의했다. 이렇게 입력받은 값을 이용하여 가장 빠른 길을 찾기
위해 지점을 경유할 때마다 거리를 합하는 계산을 한다. 마지막으로 모든 경유
에 대한 거리 값 중에서 가장 작은 값을 갖는 경로를 출력한다. 이때 결과는 숫
자나 지점이 아닌 길의 형태로 보여줄 것이다.
이런 컴퓨터 과학자들의 문제해결을 위한 생각을 일반화된 사고방식으로 바꾸어
정의한 것을 개념화라고 한다.
1장 컴퓨팅 사고 017