News

Check what has been going on!

코드 시리즈 출시 예고!

2018-09-05 15:30:09 453

컴퓨터 없이 완성하는 코딩의 핵심 개념

코드 시리즈


 


 

미국 항공우주국(NASA)에서 가상 시뮬레이션 프로그래머로 활동한 마크 앵겔버그 작가는 씽크펀과 함께 프로그래밍이 어떻게 이뤄지고 그렇게 만들어진 프로그램이 어떻게 작동하는지를 물리적으로 구현하고 시각화시킨 퍼즐 게임인 <코드 마스터>를 개발했습니다. 그 이후 마크 앵겔버그 작가와 씽크펀은 <코드 마스터>에서 다루지 못했던 영역을 다룰 새로운 프로그래밍 게임을 개발하기로 했습니다. 그 결과 만들어진 것이 <코드: 프로그래밍 게임 시리즈>입니다. 이 시리즈는 <코드: 길 찾기 알고리즘>, <코드: 논리 회로 프로그래밍>, <코드: 로드맵 설계> 3종으로 이뤄졌으며, 모두 각기 다른 영역을 다룹니다. 이 셋은 모두 씽크펀 특유의 1인용 멀티 레벨 퍼즐 형식을 하고 있습니다. 주어진 문제를 푸는 과정에는 어떤 전자기기도 사용되지 않으며, 전자기기 없이도 프로그래밍에 필요한 핵심 개념을 익힐 수 있습니다.

 

 

| 씽크펀과 마크 엥겔버그가 만든 코딩 게임 <코드 마스터>

 

코드: 길 찾기 알고리즘



<코드: 길 찾기 알고리즘>에선 2개의 명령어가 결합된 프러시저를 이용해 출발 칸에 있는 로봇을 도착 칸까지 움직이게 해야 합니다. 로봇은 자신이 멈춰 있는 칸과 같은 색깔의 패널에 놓인 명령을 수행합니다. 이 명령은 작동 카드 2장으로 이뤄지며 왼쪽에 놓인 작동 카드의 명령을 먼저 수행하고 그런 다음 오른쪽에 놓인 작동 카드의 명령을 수행합니다. 작동 카드는 로봇을 앞으로 1칸 움직이게 하는 것, 제자리에서 왼쪽이나 오른쪽으로 90도 회전하게 하는 것 등 다양한 종류가 있습니다. 로봇은 반드시 이런 작동 카드의 명령에 따라서만 움직이며, 정확히 그 행동만을 수행합니다.

 

 

 

 

<코드: 길 찾기 알고리즘>은 풀고자 하는 문제를 선택한 다음, 문제에 표시된 작동 카드를 가져와 게임을 시작합니다. 이 작동 카드를 제어판에 올려놓아 로봇이 시작 칸에서 도착 칸까지 가도록 하는 것이 게임의 목표입니다. 로봇이 경로를 이탈해 게임판에 표시된 칸을 벗어나거나, 칸에 머무르더라도 아무런 명령이 할당되지 않는 하얀색 칸에 멈추면 문제를 푸는 데 실패하게 됩니다. 이런 경우는 제어판에 작동 카드를 잘못 놓은 것이므로, 작동 카드를 수정해 새로 명령을 내려야 합니다. 제어판에 작동 카드를 올바르게 놓았다면 로봇은 반드시 도착 칸에 도달할 것입니다.

<코드: 길 찾기 알고리즘>를 통해 프러시저가 무엇인지, 그리고 그것이 어떤 식으로 작동하는지를 익힐 수 있습니다. 프러시저는 컴퓨터 공학의 중요한 개념 중 하나이며, ‘간단한 명령으로부터 유용한 체계를 구성해 수행하는 절차를 말합니다. 게임의 목표는 다양한 작동 카드를 사용해 색깔별로 프러시저를 만들고, 로봇이 프러시저를 따라 도착 칸에 도달하게 하는 것입니다. 문제를 해결하기 위해서는 게임 전체를 이해하고, 번뜩이는 사고력을 발휘해 프러시저를 만들어야 합니다. 제어판의 명령을 실행하고 로봇을 작동시키기 위한 프러시저를 만들다 보면 자연스럽게 프로그래머처럼 사고하게 될 것입니다.

 

 

 

코드: 논리 회로 프로그래밍



<코드: 논리 회로 프로그래밍>에서 플레이어들은 모든 로봇이 작동을 멈춘 공장으로 초대됩니다. 로봇을 다시 작동시키려면 알맞은 위치에 전력을 공급해야 하는데, 로봇의 종류에 맞는 회로판을 찾아 그 위에 전력 토큰을 놓아야 합니다. 회로판의 접점에 전력 토큰을 놓으면 접점과 연결된 전선에 전력이 공급됩니다. 이렇게 전력 토큰을 놓았을 때, 문제 카드의 AND 계기판이 참이면 로봇이 정상적으로 작동합니다. 문제 카드의 AND 계기판은 내부에 작은 계기판을 포함하고 있으며, 작은 계기판 내부에는 특정 색깔의 전선에 관한 명제가 1개이상 표시돼 있습니다. 명제란 그 내용이 참인지 거짓인지 명확하게 판별할 수 있는 문장이나 수식을 뜻합니다. 전선에 전력이 공급되면 그 계기판을 확인해 참/거짓 토큰을 놓고, 각각의 작은 계기판에서의 참/거짓을 확인한 결과 최종적으로 AND 계기판이 참이 되게 만들어야 합니다. AND가 참이기 위해서는 그에 속한 작은 계기판의 결과가 모두 참이어야 합니다. 모든 문제에서 최종적으로 AND 계기판이 참이 되도록 전력 토큰을 놓는 방법은 단 하나밖에 없습니다. 전력 토큰을 알맞은 위치에 놓기 위해서는 논리적인 추론이 필요합니다.

 

 


 

<코드: 논리 회로 프로그래밍>을 통해 불 논리(Boolean Logic)를 익힐 수 있습니다. 불 논리는 컴퓨터 공학에서 주로 사용되는 논리학의 분야로 참과 거짓을 나타내는 숫자 1 0만을 이용해 논리적 추론을 하게 해줍니다. 이 게임에선 이런 논리적 사고 형태와 3가지 기본 연산자(AND, OR, NOT)를 기반으로 하는 문제 해석에 익숙해지도록 <코드: 논리회로 프로그래밍>은 충족 가능성 문제(Boolean Satisfiability Problem)를 기반으로 만들어졌습니다. 이를 줄여 SAT라 부르는데, SAT논리 변수와 논리식이 주어질 때 논리식을 참으로 만드는 논리 변수 조합이 존재하는지를 찾는 문제를 말합니다. SAT는 컴퓨터 공학에서 흥미롭게 다뤄지는 문제 중 하나로, 많은 이들이이를 이용해 크고 복잡한 문제를 빠르게 풀 수 있는가를 두고 고민합니다. 여러 퍼즐 문제를 풀다 보면 기본 논리 연산의 개념을 배우고, SAT를 다뤄 추론하는 방법을 익힐 수 있을 것이며, 이를 통해 세상에 존재하는 복잡하고 다양한 컴퓨터 공학 문제들과 맞설 수 있는 능력을 얻게 될 것이라 생각합니다.


  • 트위터
  • 카카오스토리
  • 구글+
  • 네이버