
단원해설
01. 프로그래밍이란?
사람들은 다양한 방식으로 다른 사람과 의사소통을 한다. 그중 사람들이 이해하는 말을 ‘언어’라고 한다. 컴퓨터에게 어떤 일을 시킬 때도 언어를 사용해야 한다. 사람들이 이해하는 말을 ‘언어’라고 하듯이, 컴퓨터가 이해하는 언어를 ‘프로그래밍 언어’라고 부른다. 쉽게 표현하자면 프로그래밍 언어란 컴퓨터에서 작동하는 소프트웨어를 만들기 위한 도구라고 할 수 있다. 여러분들이 컴퓨터에서 흔하게 사용하는 문서 작업 프로그램, 영화 감상 프로그램, 사진 편집 프로그램은 물론이고, 스마트폰에서 사용하는여러 가지 애플리케이션을 만드는데 프로그래밍 언어가 사용되며, 프로그래밍 언어를 사용해서 프로그램을 만드는 사람을 프로그래머라고 부른다.
그렇다면 프로그래밍 언어는 한 가지만 존재할까? 사람들이 사용하는 언어가 다양하듯이 프로그래밍 언어의 종류도 수백 가지가 넘는다. 그중 많이 사용되는 언어로는 C, 자바, HTML, 파이선 등이 있고, 최근에는 블록형 프로그래밍 언어인 스크래치와 엔트리도 프로그래밍 입문자들에게 널리 사용되고 있다.
02. 엔트리란?
엔트리는 처음 프로그래밍을 접하는 사람들이 쉽게 시작할 수 있는 프로그래밍 언어이다. 처음부터 C, 자바 등의 전문 언어로 학습을 하게 되면 많은 사람들이 금세 어려움을 느끼게 된다. 엔트리는 기존의 프로그래밍 방식과 달리 블록 코딩 방식의 학습자 친화적인 실습 위주의 플랫폼을 제공한다. 미국 MIT에서 개발한 Scratch와 같은 블록 코딩 방식을 기반으로 디자인되었으며, 별도의 ‘학습하기’메뉴는 KAIST 융합교육연구센터와 공동 개발되어 국내 교육 실정에 맞는 커리큘럼을 제공하기도 한다.
엔트리는 다음과 같은 장점이 있다.
첫째, 게임을 하듯 미션을 달성하는 과정을 통해 SW의 기본 원리를 학습하는 점
둘째, 프로그래밍을 처음 접하는 사람도 다양한 프로그램을 만들 수 있다는 점
셋째, 만든 작품은 다른 사람과 쉽게 공유할 수 있다는 점
한편, 단점으로는 복잡한 표현이 어려운 점, 사용자가 아시아권에 한정되어 있다는 점, 전 세계 학생들과 교류가 활발하지 않다는 지적이 있다.
03. 파이선이란?
파이선은 네덜란드의 귀도 반 로섬(Guido van Rossum)이 만든 프로그래밍 언어이다. 귀도 반 로섬은 암스테르담대학교에서 컴퓨터과학과 수학을 전공했으며, CWI 연구소에서 ‘ABC’라는 프로그래밍 언어를 만드는 프로젝트에도 참여했다. 같은 회사의 ‘아모에바’라는 팀으로 옮겨 마이크로 커널 기반 분산시스템 환경에 대해 연구하기도 했는데, ABC 언어 개발과 분산시스템 연구는 파이선을 만드는 데 중요한 계기가 되었다. “새로운 분산 환경 시스템에 맞으면서 C와 셀에서 부족한 부분을 채워주는 새로운 언어를 개발하고 싶었다.”라고 이야기하던 그는 그렇게 해서 취미활동으로 새로운 언어를 개발하기 시작했고 마침내 파이선을 개발하게 되었다.
파이선은 다음과 같은 장점이 있다.
첫째, 문법이 간결하고 표현 구조가 인간의 사고 체계와 닮아 있어 초보자가 배우기 쉽다는 점
둘째, 외부에 풍부한 라이브러리가 있어 다양한 용도로 확장하기 좋다는 점
셋째, 생산성이 높은 점
한편, 단점으로는 다른 프로그래밍 언어에 비해 상대적으로 속도가 느리다는 점, 모바일 앱 개발 환경에서 사용하기 힘들다는 점, 또한 컴파일 시 타입 검사가 이뤄지지 않아 개발자가 실수할 여지가 조금 더 많다거나 멀티 코어를 활용하기 쉽지 않다는 지적이 있다.
04. 어떤 활동을 배우게 될까?
첫째, 순차구조’에서는 어떤 일을 하거나 문제를 해결할 때 차례대로 하나씩 진행하는 구조에 대해 공부하게 된다. 엔트리로 다양한 도형 그리기 활동을 해보고, 파이선으로 텍스트의 출력, 수의 연산을 통해 순차구조를 이해할 수 있다.
둘째, ‘반복구조’에서는 어떤 일을 특정한 횟수만큼 반복하거나 무한하게 반복하는 구조에 대해 공부하게 된다. 엔트리로 순차구조에서 다뤘던 도형 그리기 활동을 반복하기 블록을 사용해 간단하게 표현해보고, 파이선으로 for 문을 사용해 텍스트의 반복 출력과 반복되는 연산을 표현해보는 활동을 통해 반복 구조를 이해할 수 있다.
셋째, ‘변수’에서는 정해져 있지 않은 수치나 문자를 다루는 변수 개념에 대해 공부하게 된다. 엔트리로 오브젝트를 클릭할 때마다 변하는 변수에 대해 알아보고, 파이선으로 다양한 종류의 데이터를 변수 값에 담는 활동을 통해 변수를 이해할 수 있다.
넷째, ‘선택 구조’에서는 어떤 조건이나 상황에 따라 특정한 행동을 선택하는 구조에 대해 공부하게 된다. 엔트리로 로봇청소기 프로그램을 작성해보는 활동을 해보고, 파이선으로 입력받은 수의 크기를비교해 보는 활동을 통해 조건과 상황에 따라 행동이 달라지는 선택 구조를 이해할 수 있다.
다섯째, ‘연산’에서는 변수를 활용해서 덧셈, 뺄셈, 곱셈, 나눗셈 등의 연산에 대해 공부하게 된다. 엔트리로 변수를 이용해 연속된 수의 합을 구해보고, 파이선으로 연산산술자에 대해 알아보고, 활용하는 활동을 통해 프로그래밍에서의 연산 과정을 이해할 수 있다.
여섯째, 리스트’에서는 변수의 확장 개념인 리스트에 대해 공부하게 된다. 엔트리와 파이선으로 리스트를 만들어 리스트의 내용을 추가, 변경, 삭제하는 활동을 해보는 활동을 통해 프로그래밍에서 리스트를 활용하는 방법을 학습할 수 있다.
일곱째, ‘함수’에서는 함수의 개념과 활용법에 대해 공부하게 된다. 엔트리에서는 순차, 반복 구조에서 학습했던 도형 그리기를 함수를 활용해 그려보는 활동을 하고 파이선으로 함수를 직접 정의하고 활용하는 활동을 통해 프로그래밍에서 함수로 할 수 있는 일을 이해할 수 있다.
여덟째, 위에서 학습한 개념을 바탕으로 엔트리로 그림판 프로그램과 비행기 게임 만들기 활동을, 파이선으로 터틀 그래픽스와 숫자 야구게임 만들기 활동을 학습할 수 있다.