2017년 PYCON US에서 진행한 영코더 프로그램의 튜토리얼은 한국어로 번역했습니다.
- 출판일 : 2017.08.07
- 번역 : 이수진, 이은애
영코더 프로그램은 어린이들과 청소년들을 파이콘 컨퍼런스에 초대하여 소프트웨어란 무엇이고, 어떻게 동작하는지, 전 세계 많은 사람들에게 사랑받고 있는 프로그래밍 언어인 "파이썬"를 소개하는 일일 워크샵 프로그램니다.
2013년 미국 파이콘에서 Katie Cunningham , Barbara Shaurette 두 선생님께서 시작한 청소년 대상 파이썬 워크샵 프로그램으로 미국을 이어, 캐나다, 유럽에서 진행되고 있습니다. 그리고 2017년 올해 처음으로 영코더 프로그램이 파이콘 코리아에서 진행됩니다.
https://us.pycon.org/2013/events/letslearnpython/
2014년 파이콘 미국에서 Katie와 Barbara 선생님이 "The Young Coder : 파이썬을 배우자"라는 주제로 발표한 동영상은 아래 링크에서 확인할 수 있습니다.
http://pyvideo.org/video/2570/the-young-coder-lets-learn-python
참가하는 학생들은 라즈베리파이(RaspberryPI) 상에서 파이썬 프로그래밍 언어를 입력해보며 프로그래밍을 처음 배우게 됩니다. 워크샵이 끝나면 모든 참가한 학생들에게 라즈베리파이를 선물로 드립니다.
프로그래밍을 배운다는 것은 컴퓨터가 어떻게 동작하는지, 그리고 IT가 세상을 어떻게 변화시켜나가는 지 이해하게 만들어줍니다.
여러분들이 모두 개발자가 될 필요는 없지만. 하지만 오늘날 프로그래밍 언어를 이해하는 것은 영어를 잘하는 것만큼 여러분들을 더 훌륭한 사람으로 만들어줄 수 있습니다.
또한 프로그래밍을 배운다는 것은 컴퓨터가 어떻게 동작하는지, 그리고 IT가 세상을 어떻게 변화시켜나가는 지 이해하게 만들어줍니다.
영어를 쓰는 사람들의 문화와 삶의 방식을 이해할 수 있게 되는 것 처럼요!
학생들은 몇 시간 동안 이 파이썬을 활용하여 컴퓨터와 대화하는 방법을 배우게 될 것입니다.
이 모든 튜토리얼을 학습하는데 약 4시간 정도 소요됩니다.
아주 초급 수준의 프로그램이기 때문에 하루만에 모든 것을 학습할 수 없습니다.
프로그래밍을 전혀 몰라도 상관없습니다. 숫자, 문자, 문자열, 목록 등 파이썬의 간단한 데이터 유형을 배우는 것으로 시작합니다. 조건문,반복문 등 약간 더 어려운 것도 살펴볼 예정입니다. 마지막으로 PyGame 라이브러리를 활용한 게임을 만들어 보는 것으로 구성되어 있습니다.
마지막으로, 웹 사이트 및 간단한 게임을 만들어 보면서 프로그래밍으로 세상을 이해할 수 있는 더 넓은 시야를 갖게 될 것입니다.
주어진 시간보다 빨리 마친다고 생각되는 경우, 게임 코드 샘플을 추가적으로 학습할 수 있습니다.
워크샵 이후 학생들이 지속적으로 파이썬에 관심을 가지고 학습할 수 있는 자료들을 소개했습니다.
파이썬 프로그래밍 언어에 대해 배우기 전에 프로그래밍이 무엇인지에 대해 조금 이야기 해 봅시다.
프로그래밍에 대해 이야기 할 때 우리는 무엇을 이야기 하나요? 모든 프로그램은 여러분이 풀고 싶은 문제로 시작됩니다. 이 문제에 대한 해결책을 알고리즘이라고 합니다.
마지막으로, 이 해결책은 컴퓨터가 이해할 수있는 Python과 같은 프로그래밍 언어로 번역됩니다. 컴퓨터에서 실행되는 문제해결 과정의 코드 패키지를 프로그램이라고 합니다.
그러면 컴퓨터는 어떤가요? 이미 여러분들은 컴퓨터가 무엇이고, 무엇을 할 수 있을지 바로 생각이 날텐데요 컴퓨터는 일종의 기계이고 기본적으로 두 가지 간단한 것으로 나누어 일을 합니다.
첫째는 우리가 데이터라고 부르는 정보를 저장하고요 둘째는 컴퓨터가 이해하는 프로그램을 사용해 저장한 데이터로 일을 처리합니다.
컴퓨터는 다양한 형태가 있어요. 노트북이나 PC 일 수도 있고 폰도 컴퓨터일 수 있어요. 게임 콘솔도 마찬가지로 컴퓨터일 수 있습니다.
그러나 컴퓨터에 대해 알아야 할 것이 있습니다. 컴퓨터는 아주 똑똑하지 않습니다.
그 자체로 컴퓨터는 실제로 어떻게 해야하는지 잘 모릅니다. 컴퓨터는 여러분이 지시한 것만 할 수 있습니다.
따라서 여러분이 컴퓨터에게 지시를 잘 해야 하고 그래서 우리는 어떻게 하면 되는지 오늘 배우게 될 것입니다.
다음은 사람들을 위해 사용할 수있는 지시의 예입니다.
- 종이 접기로 크레인을 만들고 싶다고 가정해 봅시다. 여기서 해결하길 원하는 것이 문제입니다. 여기 단계별 가이드가 있습니다.
- 아니면 뭔가 쓸만한 것이 필요할 수 있죠? 음, 바로 다이어그램이 있어요. 여기 모든 과정을 따르게 되면 금새 공책이 하나를 갖게 됩니다.
- 종이 접기가 끝난 후에 배가 고프면 어찌하나요? 여기에 조리법이 있습니다. 바로 쿠키를 만들기 위한 지침 같은거죠.
문제를 해결하는 과정을 이렇게 단계별로 지시해주어야 한다는거죠.
우리가 방금까지 본 모든 지시가 알고리즘이라고 부르는 것과 같습니다.
'알고리즘'이라는 단어는 실제로 우리가 컴퓨터에 지시하는 팬시한 이름이지요!
요리법과도 같고, 또 구체적으로 따라야 할 단계와도 같은 것이지요.
그러나 알고리즘과 쿠키 레시피의 차이는 분명이 있지요. 바로 더 많은 단계가 있다는 것입니다.
알고리즘은 파이썬과 같은 프로그래밍 언어와 같이 특별한 언어를 사용해 쓰여집니다.
먼저, 우리만의 지시 세트를 만들어 봅시다.
전에 땅콩 버터와 젤리 샌드위치를 만든 적이 있나요? 얼마나 많은 단계가 있다고 생각합니까?
한번 같이 해보아요.
데모 : 땅콩 버터와 젤리 샌드위치를 만드는 단계를 따라 간다. 한 교사는 학생들에게 각 단계를 호출하도록 수업을 안내하고 다른 교사는 샌드위치가 될 때까지 '컴퓨터'의 역할을하는 지침을 정확히 따른다. 그 결과는 대개 들썩 들썩하며,이 운동은 아이들에게 그것이 얼마나 중요한지 가르쳐줍니다.
얼마나 많은 단계를 거쳤는지 마지막으로,학생들이 얼마나 많은 단계를 취했는지 학생들에게 물어보세요.
이제 컴퓨터에 대한 지시들을 작성해봅니다.
우리가 컴퓨터와 대화하는데 사용하는 언어는 많이 있지만 오늘날 우리가 배우려는 언어는 파이썬이라고 합니다. (학생들에게이 시점에서 편하게 Idle를 열어 보게도 하고, 학생들이 보는 것을 쉘 또는 인터프리터라고 부른다고 설명합니다.)
Idle은 프로그래밍 환경이기도 한 프로그램입니다. 이것이 파이썬 코드를 작성하는 곳입니다. 이 프로그램은 터미널이라는 프로그램과 비슷하게 작동합니다. 서버에 로그인하는 데 사용할 수있는 프로그램입니다. 지금 당장 여기에서 알아 차릴 수 있는 몇 가지 사항에 대해 이야기 해 보겠습니다.
맨 위에 '파이썬'이라는 단어와 몇 개의 숫자가 표시됩니다. 이러한 숫자는 컴퓨터에 설치된 Python 버전을 의미합니다. 2 또는 3으로 시작하고요 다른 중요한 것은 아래 쪽에 있는 세 개의 화살표입니다. 화살표 옆에 깜박이는 커서가 표시 될 수 있지만 그렇지 않을 수도 있습니다. 우리는 이것을 '프롬프트'라고 부르며 여기서는 코드를 입력 할 곳입니다.
Idle은 또한 우리가 통역사라고 부르는 것입니다. 실생활에서 우리는 통역사가 무엇인지 알고 있습니다. 이것은 언어를 다른 언어로 번역하는 사람입니다. 컴퓨터에서 우리가 만든 Python 코드를 컴퓨터가 이해할 수있는 다른 언어로 번역하기 위해서는 Idle과 같은 프로그램이 필요합니다. 프롬프트에 뭔가를 입력하고 Enter를 누르면 Idle은 다음과 같습니다.
- 입력한 내용 번역하기
- 컴퓨터에게 이야기하기
- 컴퓨터에서 응답을 받고 우리가 이해할 수있는 언어로 다시 보내기
약간의 간단한 수학으로 시작해봅시다. 프롬프트에 이 식들을 써봅시다.
각각의 것들을 쓴 후에 엔터키를 눌러보세요. 어떤 일이 일어나나요
우리는 당신들이 이미 알고 있는 마이너스, 플러스 사인과 같은 기호들을 사용하고 있어요
우리는 프로그래밍에서 이런 기호들을 '연산자'라고 부릅니다.
여러분은 지금 파이썬을 쓰기 시작한거에요!
여기 몇 가지 기호, 연산자가 더 있어요.
나누기를 하려면 우리는 슬래시라고 불리는 경사 선을 사용합니다.
그리고 곱하기를 하려면 우리는 별표라고 불리는 기호를 사용하죠.
이 표현식들을 직접 사용해보고 어떤 일들이 일어나는지 한번 봅시다.
내가 이 예제들을 타이핑하는 동안 여러분들도 자유롭게 다른 숫자와 연산자들을 직접 사용해보세요.
나누기도 더 해볼까요
생각했던 결과가 나오나요?
결과가 10진수로 나오나요?
파이썬이 숫자로 어떻게 작동하는지 배워봅시다!
파이썬에서 그리고 많은 다양한 프로그래밍 언어에는 'float'라고 하는 10진수가 있어요
왼쪽에는 10진수 또는 소수점의 몇 가지 예가 있습니다.
그리고 오른쪽에서 정수 또는 정수의 몇 가지 예를 볼 수 있습니다.
나눗셈을 사용하여 수학 표현식을 타이핑하면 파이썬은 float, 10진수를 돌려 줍니다.
파이썬은 가능한 가장 정확한 것을 돌려주기 위해 기본적으로 소수점을 사용합니다.
대신에 정수를 원하면 파이썬 함수인 round()를 사용하면 됩니다. 'round'라는 단어를 입력하고 괄호 안쪽에 나누기 표현식 중 하나를 입력한 다음 Enter 키를 누릅니다.
다른 숫자를 사용하여 몇 가지 표현을 시도해보세요! 더 잘 이해가 되실거에요.
파이썬이 돌려주는 값들에 대해 이야기 해보았는데요, 프롬프트에서 무언가를 입력하고 'Enter'를 누르면
파이썬에게 질문을 하는 것이고, 답을 돌려 받을 수 있게 됩니다.
저는 이런 식을 '표현식'이라고 할건데, 앞으로 계속 배우게 될 것입니다.
우리가 수학 문제들을 표현식으로 사용했지만, 표현식을 훨씬 다양하게 활용되고, 앞으로 다양한 단어들과 기호들로 표현을 보게 될거에요.
파이썬에서 숫자로 더하거나 나누는 것 외에도 매우 많은 것을 할 수 있어요.
한 숫자가 다른 숫자보다 큰 지 알아 내야할 때 어떻게 할까요? 또는 하나의 숫자가 다른 숫자와 같을 때는?
파이썬으로 비디오게임을 만들고 있다고 가정해봅시다.
만약 두 선수 사이의 점수 비교를 하기 위해 이와 같은 어떤 것들을 하고 싶을 수도 있습니다.
음, 우리가 사용할 수 있는 더 많은 기호 (연산자)들이 여기 있어요.
이것들을 우리는 비교 연산자라고 합니다.
(목록을 하나씩 읽으며)
나중에 프로그래밍에서 이러한 요소를 사용하는 방법에 대한 몇 가지 예를 살펴 보겠습니다.
그러나 지금은 이러한 비교가 어떻게 작동하는지 살펴보겠습니다.
예로 연습을 해봅시다. 당신은 다양한 답을 얻게 될 수 있어요.
이 표현식들을 프롬프트에 각각 입력해보고, 엔터 키를 눌러 결과를 하나씩 보세요.
화면의 우측에 비교 연산자 각각의 의미가 무엇인지 기억할 수 있게 도움말로 가이드를 해두었어요.
시간을 가지고, 하나씩 해보세요.
float 를 사용하니 어떤가요? 차이가 느껴지나요?
(처음 몇 개의 표현식을 설명해주세요. 각 표현식에서 비교 연산자를 식별하고 '연산 순서'에 대해 이야기 하세요)
여기에 답들이 있어요. 아마도 여러분이 처음으로 발견한 것은 바로 돌아오는 답이 숫자가 아니라는 것입니다. 이해가 되시나요? 하나의 숫자가 다른 숫자보다 큰지 묻는다면, 답은 True 또는 False가 될 것입니다. 우리는 단 몇 분 안에 Boolean 에 대해 이야기한 것입니다.
제가 여기서 이야기 하고자 하는 또 다른 한 가지는 오퍼레이션의 순서 입니다.
첫 표현식을 살펴보겠습니다. 5는 4+3 보다 적다. 컴퓨터가 이 표현식을 읽을 때 여러분이 보는대로 이와 같이 생각할거에요 5는 4 보다 작을까? 그러면 3을 더해라. 다행스럽게도 아니에요. 왜냐하면 "5가 4보다 적나요?" 거짓이라면 거기에 3을 더할 수도 없겠죠.
대신 파이썬은 더하기를 먼저 합니다. 4 더하기 3. 그리고 4 더하기 3은 7이어서 표현식은 5는 7보다 작은지를 묻는거지요. 파이썬으로 수학을 하는 것에 있어 또 다른 규칙이 있어요. 간단한 예로, 더하기 또는 나누기는 항상 비교연산을 하기 전에 계산을 한다는 사실이지요.
우리는 방금 Python에서 수학을 사용하는 기초를 다뤘습니다. 이제는 STRINGS 라고 하는 새로운 종류의 데이터에 대해 이야기 할 시간입니다.
우리가 프로그래밍에서 'string'이라는 단어를 사용할 때, 우리는 글자나 기호와 같은 글자, 또는 글자들이 단어처럼 함께 쓰이는 것을 말합니다.
그러나 문자열이 무엇인지 설명하는 가장 좋은 방법은 몇 가지 예를 보여주는 것입니다.