학습 목표
- 컴퓨터 서버가 네트워크에 있는 다른 컴퓨터에 데이터를 전송할 수 있다는 것을 알게 된다.
- 네트워크로 전송된 데이터가 (컴퓨터) 화면에 메시지를 출력하는 것 이상으로 클라이언트 컴퓨터에 무언가를 일으킬 수 있다는 것을 알게 된다.
2020년 까지 인터넷에 소에서 냉장고 자동차까지 50조개 사물이 연결될 것으로 예측된다. 이것이 사물 인터넷(Internet of Things)로 알려져 있다. 이번 학습단원에서 학생들이 가장 간단한 사물- 네트워크를 타고 LED 전구를 켜는 버튼 -을 만든다.
이전 학습단원에서 네트워크가 중요하며 광범위하게 퍼져있다는 것을 인지했다. IP 주소, 서버, 클라이언트 같은 용어에 불편함이 없어야 한다. 이전 단원의 용어정의를 재충전 기회로 사용할 수도 있다.
학습 결과
모든 학생이 수행할 수 있는 것
- 네트워크에 있는 컴퓨터는 서로에게 데이터를 전송할 수 있고, 그 데이터가 수신한 컴퓨터에게 무언가를 수행하게도 할 수 있다.
- 간단한 프로그램을 사용해서 네트워크로 하드웨어를 제어한다.
대부분 학생이 수행할 수 있는 것
- 프로그램을 작성(hacking)해서 유용하게 다른 것을 만들 수 있다.
일부 학생이 수행할 수 있는 것
- 프로그램을 개작해서 라즈베리 파이가 또다른 라즈베리 파이 하드웨어를 특정한 방식으로 동작하도록 만든다.
학습 정리
- 피지컬, 네트워크 컴퓨팅에 대한 소개
- 이전 학습 내용을 확장해서 화면에 메시지를 주고받는 것 대신에 클라이언트 컴퓨터에 붙어있는 하드웨어를 제어한다.
- 네트워크로 또다른 라즈베리 파이 GPIO 핀을 제어한다.
시작
종이나 인터랙트브 화이트보드에 끌어다 놓기(drag and drop) 방식으로 수행할 수 있다.
- 1분 내에 학생들이 올바른 순서로 코드 리뷰에 있는 파이썬 코드를 재정렬한다.
- 프로그램이 실행되는 것을 보여준다. 무엇이 어디서 왜 동작하는 토론한다; 예, 모듈 가져오기(import module), 함수, while 루프 등.
- PA 주관 라즈베리 파이 경진대회 동영상을 시청하고, 모든 프로젝트가 라즈베리 파이 물리적인 측면을 제어하는 서버에 의존한다는 것을 설명한다. (예, 센서, 화면, 펌프, 카메라 등)
주요 핵심 활동
- 첫번째 학습과목과 유사하게 라즈베리 파이 두대를 연결한다. 하지만, 이번에는 텍스트를 전송하는 대신에 하드웨어를 제어한다.
- 네트워크를 설정하고 안내 참고서에 맞춰서 또 다른 라즈베리 파이에 있는 LED를 제어한다.
- 아이디어 확장(즉, 코딩시작): 피드백을 화면에 메시지로 추가, LED 점멸 방식을 제어, 물리적 버튼 변경(예, 알루미늄 호일로 만든 “압력 패드”), 또다른 LED 추가 (고급과정)
- 여기 추가
모든 학생이 모인 총회
각 그룹이 일어나서 프로그램에 무슨 변경을 수행했고, 어떻게 변경했는지 설명한다. 만약 빔프로젝터나 TV 화면이 있다면 코드를 화면에 출력한다. 로직과 소프트웨어 코드 구문을 설명하게 한다.
숙제
- 학생들에게 50조개 사물이 나온 원문을 출처를 알려준다.
- 다음 학습을 준비로 사전 연구를 하고, IoT가 좋은 것인지 혹은 나쁜 것인지에 대해 1분 발표를 준비시킨다. 만약 슬라이드를 사용한다면, 글 없이 오직 그림만 가능한다.
- 다음 수업에서 무작위로 학생 몇명을 일으켜 세워 각자의 주장에 동일한 시간을 주어 짧게 발표를 하게 한다. 학급 전원이 누가 가장 잘했는지 선정한다.