학습 목표

  • 컴퓨터 서버가 네트워크에 있는 다른 컴퓨터에 데이터를 전송할 수 있다는 것을 알게 된다.
  • 네트워크로 전송된 데이터가 (컴퓨터) 화면에 메시지를 출력하는 것 이상으로 클라이언트 컴퓨터에 무언가를 일으킬 수 있다는 것을 알게 된다.

2020년 까지 인터넷에 소에서 냉장고 자동차까지 50조개 사물이 연결될 것으로 예측된다. 이것이 사물 인터넷(Internet of Things)로 알려져 있다. 이번 학습단원에서 학생들이 가장 간단한 사물- 네트워크를 타고 LED 전구를 켜는 버튼 -을 만든다.

이전 학습단원에서 네트워크가 중요하며 광범위하게 퍼져있다는 것을 인지했다. IP 주소, 서버, 클라이언트 같은 용어에 불편함이 없어야 한다. 이전 단원의 용어정의를 재충전 기회로 사용할 수도 있다.

학습 결과

모든 학생이 수행할 수 있는 것

  • 네트워크에 있는 컴퓨터는 서로에게 데이터를 전송할 수 있고, 그 데이터가 수신한 컴퓨터에게 무언가를 수행하게도 할 수 있다.
  • 간단한 프로그램을 사용해서 네트워크로 하드웨어를 제어한다.

대부분 학생이 수행할 수 있는 것

  • 프로그램을 작성(hacking)해서 유용하게 다른 것을 만들 수 있다.

일부 학생이 수행할 수 있는 것

  • 프로그램을 개작해서 라즈베리 파이가 또다른 라즈베리 파이 하드웨어를 특정한 방식으로 동작하도록 만든다.

학습 정리

  • 피지컬, 네트워크 컴퓨팅에 대한 소개
  • 이전 학습 내용을 확장해서 화면에 메시지를 주고받는 것 대신에 클라이언트 컴퓨터에 붙어있는 하드웨어를 제어한다.
  • 네트워크로 또다른 라즈베리 파이 GPIO 핀을 제어한다.

시작

종이나 인터랙트브 화이트보드에 끌어다 놓기(drag and drop) 방식으로 수행할 수 있다.

  • 1분 내에 학생들이 올바른 순서로 코드 리뷰에 있는 파이썬 코드를 재정렬한다.
  • 프로그램이 실행되는 것을 보여준다. 무엇이 어디서 왜 동작하는 토론한다; 예, 모듈 가져오기(import module), 함수, while 루프 등.
  • PA 주관 라즈베리 파이 경진대회 동영상을 시청하고, 모든 프로젝트가 라즈베리 파이 물리적인 측면을 제어하는 서버에 의존한다는 것을 설명한다. (예, 센서, 화면, 펌프, 카메라 등)

주요 핵심 활동

  1. 첫번째 학습과목과 유사하게 라즈베리 파이 두대를 연결한다. 하지만, 이번에는 텍스트를 전송하는 대신에 하드웨어를 제어한다.
  2. 네트워크를 설정하고 안내 참고서에 맞춰서 또 다른 라즈베리 파이에 있는 LED를 제어한다.
  3. 아이디어 확장(즉, 코딩시작): 피드백을 화면에 메시지로 추가, LED 점멸 방식을 제어, 물리적 버튼 변경(예, 알루미늄 호일로 만든 “압력 패드”), 또다른 LED 추가 (고급과정)
  4. 여기 추가

모든 학생이 모인 총회

각 그룹이 일어나서 프로그램에 무슨 변경을 수행했고, 어떻게 변경했는지 설명한다. 만약 빔프로젝터나 TV 화면이 있다면 코드를 화면에 출력한다. 로직과 소프트웨어 코드 구문을 설명하게 한다.

숙제

  1. 학생들에게 50조개 사물이 나온 원문을 출처를 알려준다.
  2. 다음 학습을 준비로 사전 연구를 하고, IoT가 좋은 것인지 혹은 나쁜 것인지에 대해 1분 발표를 준비시킨다. 만약 슬라이드를 사용한다면, 글 없이 오직 그림만 가능한다.
  3. 다음 수업에서 무작위로 학생 몇명을 일으켜 세워 각자의 주장에 동일한 시간을 주어 짧게 발표를 하게 한다. 학급 전원이 누가 가장 잘했는지 선정한다.