xwMOOC 라즈베리 파이

컴퓨터는 스스로 생각할 수 있나?

학습 목표

  • 파이썬 코드를 디버그하는 방법을 익힌다.
  • 사람과 말을 하는 것과 컴퓨터 프로그램과 대화하는 차이를 이해한다.
  • print 함수와 input 함수을 사용해서 파이썬으로 단순한 컴퓨터 프로그램을 생성하고 디버깅할 수 있다.

시작

Elbot 같은 챗봇이 포함된 웹사이트를 안내하거나, 스크린에 챗봇 웹사이트를 띄운다. 애플 아이폰에 탐재된 시리를 사용할 수도 있다.

학생들이 챗본에 질문을 한다. 질문과 매칭이 잘 되지않는 어떤 질문이든 하게 한다; 예를 들어, “누가 가장 최고의 축구선수인가?”. 몇분 시간을 갖고, 학급전체가 피드백을 받는다. 선생님이 챗봇을 혼란에 빠뜨리는 질문 몇개를 적어 정리힌다. 기대했던 질문에 대답을 왜 챗봇이 하지 못한 이유를 학생들로부터 도출한다.

사람과 상호작용하고 이해하는데, 챗봇같은 프로그램이 왜 힘들어 할지 물어본다. 이런 질문이 왜 그토록 쉽게 챗봇같은 프로그램을 혼란에 빠뜨릴까? 질문을 통해서 컴퓨터는 일련의 명령문을 순서대로 실행하거나 순서를 따르기만 한다는 결론을 도출한다.

튜링 테스트와 인공지능 개념을 설명한다. 이번 학습을 통해서 학생들이 라즈베리파이에 파이썬 프로그램을 작성해서 챗팅로봇으로 변환시키게 된다고 일러준다.

주요활동

  1. 학생들에게 라즈베리파이 장비를 켜고, 사용자명으로 pi를 입력하고, 비밀번호로 raspberry를 입력시켜 로그인한다.

비밀번호를 타이핑할 때 어떤 텍스트도 볼 수 없지만, 정상적으로 비밀번호가 입력되고 있다는 것에 주목한다. 왜 비밀번호 입력할 때 그런 일이 일어난다고 생각되는가? 힌트: 만약 어깨 너머 누군가 비밀번호를 보게 되면 어떤 일이 일어날까?

  1. 다음으로 그래픽 사용자 환경을 startx를 타이핑해서 활성화시킨다. 데스크톱이 올라여면, Main Menu 다음에 Programming 을 클릭하고 Python 3 를 선택해서 Python 3 혹은 IDLE3 를 어떻게 여는지 보여준다.

파이썬 IDLE3

  1. IDLE 인터프리터 윈도우를 학생들에게 시연한다. 갈매기 세마리가 떠있는 >>> 프롬프트 다음에 명령어를 직접 입력한다고 설명한다. 이 윈도우를 인터프리터 혹은 쉘이라고 부른다. 프롬프트 다음에 명령문 한줄을 타이핑하고 엔터키를 누른다; 엔터키를 누르게 되면 해당 명령문 한줄이 실행된다. print("Hello World!") 명령문을 타이핑해서 시연한다. “Hello World!”를 다른 것으로 치환해서 돌려보도록 학생들에게 제시한다. 몇분동안 인터프리터 윈도우를 사용해서 이것저것 실험을 수행하도록 유도한다. 컴퓨터는 한번에 명령어 하나를 순서 대로 수행한다고 설명한다.

  2. 프로그램에 코드가 여러 행으로 작성되는 경우, 인터프리터를 사용해서 코드를 작성하는 것이 번거럽다는 것을 설명한다; 코드를 저장하는 경우, 텍스트 편집기를 사용하는 것이 더 낫다. IDLE3 윈도우 상단에 위치한 메뉴에서 File>New Window 를 클릭해서 새로운 텍스트 편집기 파일을 생성하는 방법을 보여준다. File>Save As 를 클릭하고 나서 name1.py로 지정하고 해당 파일을 저장하는 방법을 시연한다.

  3. 텍스트 편집기 윈도우에 다음 코드를 타이핑하도록 유도한다. 주석과 프로그램 코드 행 간의 차이를 지적한다. 주석은 컴퓨터가 무시하는 프로그램 일부로, 프로그램에서 어떤 일이 진행되는지 주석을 달아 적어두는 곳이다.

# My Python Program by ...

name = input('what is your name: '),
print("Nice to meet you ", name)

문자열 " 앞에 공백이 있다는 것이 중요함에 주목한다.

File 다음에, Save As 를 클릭해서 명칭을 robot으로 지정하고 파이썬 파일로 저장한다.

그리고 나서, Run 을 선택하고 나서 Run Module을 클릭해서 파일을 실행시킨다.

파이썬 프로그램 실행

  1. 그리고 나면 학생들이 자율적으로 스스로 입력 input, print문을 사용해서 사용자 나이 혹은 좋아하는 색상을 묻는 코드를 작성한다. 예를 들어, 다음과 같이 코드를 추가한다:
age = input('How old are you: ')
print("You do not look like you are aged ", age)

작성한 코드를 저장하고 나서 앞과 동일하게 코드를 실행시킨다.

파이썬 프로그램 실행2

  1. 학생들이 다수 질문을 갖는 프로그램을 작성하게 되면, 틈을 갖고 질문을 하는 생각을 도입한다. 대화할 때, 질문에 답을 하고, 다음 질문을 하는 과정에 잠시 쉬는 시간을 갖는다. 목적이 실제 사람과 혼동될 수 있는 채팅로봇을 생성하는 것이라… 이를 위해서 질문 사이에 잠시 멈추는 시간을 둘 필요가 있다. time 모듈을 사용해서 이 작업을 수행한다. 모듈을 추가하려면, 주석 바로 밑에, 질문 위에 import time 행을 추가한다. 그리고 나서, time.sleep(1) 을 사용할 질문 사이에 다음과 같이 위치시킨다; time.sleep(1)에서 1은 1초를 나타낸다.

파이썬 프로그램 실행3

  1. 학생들로 하여금 사용자 입력을 받아 화면에 출력하는 코드 작성을 계속하게 만든다. 그리고 나서, 작업한 결과를 저장하고 Shutdown 버튼을 클릭해서 라즈베리파이를 끈다.