단원해설
01. 프로그래밍이란?
사람들은 여러 가지 방법으로 서로가 서로에게 의사를 전달한다. 예를 들어 한국인이 외국인을 만나서 대화를 통한 의사를 전달하고자 한다면, 외국인에 대한 언어를 학습하고, 문법 등을 생각하여 문장을 통해 상대방에게 의사를 전달할 것이다. 이처럼 프로그램 언어라는 것은 사람과 컴퓨터 간에 의사를 서로 전달하고, 의사에 따른 행동을 할 수 있도록 하는 역할이라고 할 수 있다. 컴퓨터는 인간의 사고를 이해하고 스스로 움직일 수 없다. 따라서 컴퓨터가 이해하고 받아들일 수 있도록 컴퓨터가 이해할 수 있는 언어를 사용하여 의사를 컴퓨터에게 전달하고, 컴퓨터는 이것을 수행하는 것을 말한다. 이처럼 프로그램 언어는 컴퓨터와 사람이 서로 대화할 수 있도록 소프트웨어를 활용하여 전달할 수 있는 체계를 가지고 있는데, 이러한 모든 행위를 프로그래밍이라고 할 수 있다.
프로그래밍을 하기 위해서는 언어를 기계어로 바꿔주는 소프트웨어들이 필요한데, 이러한 소프트웨어에는 많은 것들이 있으며, 소프트웨어의 종류에 따라 언어의 형태가 변하게 된다. 따라서 이러한 프로그램 언어에는 C, C++, HTML, 자바, 엔트리, 파이선 등이 있다.
02. 엔트리란?
엔트리는 기존의 텍스트 형태의 프로그램의 어려운 점을 보완하고 처음 프로그래밍을 접하는 사람들에게 좀 더 쉽게 사용할 수 있도록 제작된 웹 형태의 소프트웨어다. 엔트리는 미국 MIT에서 개발한 Scratch와 같은 블록형 프로그래밍 언어이며 처음 프로그램을 접하는 사람들도 쉽게 자신이 원하는 소프트웨어를 제작할 수 있다. 또한 자신의 작품을 공유하거나 협업하여 프로그래밍 할 수 있으며, 지속적으로 작품을 개선하거나 변경할 수 있다. 그리고 게임을 만들거나 달성하는 과정을 통해 소프트웨어의 기본 원리를 학습할 수 있는 교육 플랫폼이라는 것이다. 그러나 엔트리를 사용함에 있어서, 복잡한 표현에 대한 어려움을 가지고 있으며, 전 세계적인 프로그램으로 성장하지 못함으로써 전 세계의 학생들과 교류할 수 없다는 점과 여러 가지 소프트웨어 또는 로봇에 호환되지 못한다는 단점이 있다는 지적이 있다.
03. 파이선이란?
파이선은 네덜란드의 귀도 반 로섬(Guido van Rossum)이 만든 인터프리터 언어다. 귀도 반 로섬은 암스테르담대학교에서 컴퓨터과학과 수학을 전공했으며, CWI 연구소에서 ‘ABC’라는 프로그래밍 언어를 만드는 프로젝트에도 참여했다. 같은 회사의 ‘아모에바’라는 팀으로 옮겨 마이크로 커널 기반 분산시스템 환경에 대해 연구하기도 했는데, ABC 언어 개발과 분산시스템 연구는 파이선을 만드는 데 중요한 계기가 되었다.
현재 파이선은 사용자층이 넓어져가고 있으며, 구글에 있어서도 3대 개발 언어 중 하나로 채택되어 있다. 파이선은 다음과 같은 장점이 있다.
첫째, 문법이 간결하며, 가독성이 좋으며, 코드 블록을 들여 쓰기로 구분한다.
둘째, 매우 광범위한 라이브러리가 기본으로 포함되어 있어, 확장성이 높다.
셋째, 접착성이 매우 높아 C로 구현되어 있는 모듈을 쉽게 만들어 붙일 수 있다.
04. 어떤 활동을 배우게 될까?
첫째, ‘순서에 맞춰 차례 차례(순차구조)’에서는 문제의 해결 방법을 순차적 절차에 따라 차례대로 하나씩 해결하는 구조에 대해서 학습하며, 컴퓨터에게 명령어를 전달할 수 있는 구조적 방법에 대해서 학습한다. 따라서 자판기를 이용하는 프로그램을 통해 엔트리와 파이선이 어떻게 순차구조로 이루어졌는지 살펴보고, 순차구조에 대해서 이해할 수 있다.
둘째, ‘다시 또 다시(반복구조)’에서는 일정한 명령어 반복을 만들고 특정한 횟수만큼 조건에 따라 반복하는 구조에 대해서 학습하게 된다. 엔트리와 파이선에서는 사각형 그리기와 숨바꼭질 프로그램에서 반복구조를 찾고, 반복구조를 이해하여, 반복 구조의 두 가지 방법을 이해할 수 있다.
셋째, ‘컴퓨터에 데이터를 담는 그릇(변수)’에서는 컴퓨터에 변수를 선언하여 데이터를 만들고 사용하는 방법에 대해서 학습하게 된다. 엔트리에서는 변수의 생성과 활용을 학습하고, 파이선에서는 변수의 자료 형에 대한 개념을 학습하게 되는데, 자기소개 프로그램을 통해서 다양한 변수의 활용을 학습하며 이해할 수 있다.
넷째, ‘번호표로 부르는 리스트’에서는 변수의 확장 형태의 리스트에 개념을 이해하고 리스트를 선언하여 사용하는 방법을 학습하게 된다. 따라서 친구를 소개하는 프로그램에서 리스트가 어떻게 선언되었고, 사용되고 있는지에 대해서 엔트리와 파이선으로 알아보고 이해할 수 있다.
다섯째, ‘요리조리 따져본 조건 당신의 선택은(조건과 선택)’에서는 조건에 따라 달라지는 선택에 대해서 학습하고, 조건과 선택에 필요한 연산자를 학습하게 된다. 따라서 엔트리와 파이선으로 사칙연산 계산기 프로그램을 만들고, 사칙연산 계산기 프로그램에서 조건과 선택이 어떻게 만들어졌는지 학습하여 이해할 수 있다.
여섯째, ‘이벤트 신호와 약속 함수’에서는 엔트리의 신호와 함수에 대해서 학습하고, 차이점을 살펴보고, 파이선에서는 함수와 함수의 호출에 대해서 학습하게 된다. 따라서 엔트리와 파이선으로 우주로 떠나는 로켓의 프로그램을 만들고, 프로그램 안에서 신호와 함수에 대해서 학습하여 이해할 수 있다.
일곱째, ‘공 굴리기 게임(엔트리)’에서는 지금까지 학습한 내용을 바탕으로 게임을 만드는 방법을 학습하게 된다. 따라서 게임을 만들 때, 게임에 필요한 정보 수집 및 구현 방법과 문제 해결에 대해서 생각해 본 후, 엔트리로 게임을 만들고, 게임을 만드는 방법을 이해할 수 있다.
여덟째, ‘공 굴리기 게임(파이선)’에서는 지금까지 학습한 내용을 바탕으로 엔트리와 비슷한 게임을 구현하는 학습하게 된다. 그러나 엔트리와 차이점으로 입력받는 값이 키보드이며, 텍스트 형태로 값이 출력돼야 한다. 따라서 파이선으로 게임을 만들고, 엔트리 게임과 차이점에 대해서 이해할 수 있다.