본문 바로가기 주요메뉴 바로가기

본문

광고

광고

기사본문

등록 : 2017.06.12 16:30 수정 : 2017.06.12 20:27

기성세대에게 코딩 교육은 익숙지 않다. 미래에 중요해질 영역이라고 하니 궁금증만 커진다. 좋은 프로그램을 짜기 위해서는 어떤 조건이 필요할까? 프로그램에는 알고리즘이 중요하다. 문제를 풀기 위한 일련의 처리 절차가 있어야 한다. 이것을 어떻게 짜놓느냐에 따라 같은 목적의 프로그램이라도 품질이 달라진다. 알고리즘을 제대로 설계할 수 있는 비법은 따로 있을까?

르네상스 시대의 만능인 레오나르도 다빈치에게 배울 수 있다. 다빈치가 ‘알고리즘’을 찾아낸 흔적들은 그의 필사본 코덱스에서 발견된다. 대표적인 것이 나무 그리는 법에 대한 조언이다. 아래에서 위로 뻗어가는 나뭇가지를 다빈치는 세밀하게 관찰했다. 하나의 가지가 서로 다른 굵기의 가지 두 개로 뻗어나가면, 새로 뻗은 가지들 중 더 굵은 가지는 더 가는 가지에 비해 본래 가지가 자라는 방향과 각도 오차가 덜하다는 것을 발견했다.(<알고리즘 행성 여행자들을 위한 안내서>, 제바스티안 슈틸러 지음) 즉, 두 개의 가지 중 굵은 가지가 기존에 자라오던 방향과 비슷하게 자란다. 다빈치가 규칙을 찾아내는 능력이 상당했음을 알 수 있다.

알아야 할 것과 배워야 할 것이 쏟아지는 이때, 조심스럽게 관찰하고 발견하는 과정이 생략되곤 한다. 시간 낭비로 여겨지기까지 한다. 그러나 좋은 프로그램을 만드는 것, 즉 알고리즘을 잘 설계하는 것은 관찰의 힘으로 귀결된다는 것을 명심해야 한다. “벽의 복잡한 문양 속에서 형상들을 발견하는 것은 시끄러운 종소리 속에서 우리가 아는 이름이나 단어를 찾아내는 일과 같다. “다빈치는 발견, 예상, 적용에 능했다. 이러한 다빈치의 알고리즘 실력은 관찰에서 나온 것이다. 숨가쁘게 몰아쳐봤자 좋은 알고리즘은 나오지 않는다. 기술을 자유자재로 다루거나 사용하게 될 아이들에게 알고리즘은 과거 수학 공식, 영어 단어 이상의 가치가 있다. 아이들에게 시간을 충분히 주며 사물을 관찰할 여유를 줄 때다.

고평석 사람과디지털연구소 객원연구원

광고

브랜드 링크

기획연재|부모가 알아야 할 디지털

멀티미디어


광고



광고

광고

광고

광고

광고

광고

광고


한겨레 소개 및 약관