4과: 스레드(Threads)

Overview

Lesson Objectives

학생들은 다음을 학습합니다:
  • 스레드가 무엇인지 이해합니다.
  • 컴퓨터 프로그램이 여러 스레드를 사용하여 생성된다는 것을 이해합니다.
  • 여러 스레드가 포함된 프로그램을 만드는 방법 이해합니다.

Expected Outcomes

  • 모든 학생 스레딩이 무엇인지 설명하고 기존 프로그램에서 스레드를 식별합니다.
  • 대부분의 학생: 샘플을 모델로 사용하여 두 개의 스레드가 있는 프로그램을 다시 생성합니다.
  • 일부 학생 스레딩과 시퀀싱을 결합한 독창적인 프로그램 만듭니다.

Lesson Plan Structure

  • 언플러그드 활동
  • 가이드 코드 점퍼 활동
  • 탐구
  • 표준 및 이해도 점검

Resource

 

Key Vocabulary

  • 스레드(Thread): 스레드는 다른 명령 세트와 동시에 수행할 수 있는 하나의 명령 또는 작업 세트입니다.

Unplugged Activity: Introduction to Threads

Objective

스레드의 개념과 코드 점퍼를 사용할 때 두 개의 개별 시퀀스를 동시에 재생할 수 있는 방법을 소개합니다.

Materials

  • 스레드 사운드 카드
  • 11명 이상의 학생 참가자(학생 허브 1개, 학생 5명씩 두 개의 스레드)

Instruction

이 활동은 소규모 학급에서는 전체 그룹으로, 대규모 학급에서는 각각 두 개의 스레드가 있는 두 개 이상의 서로 다른 허브 그룹으로 진행할 수 있습니다.
 
  1. 스레드(Thread)는 한 줄의 명령어이며, 이 활동에서는 학생들이 동시에 두 개의 개별 스레드를 수행하게 될 것이라고 설명합니다.
  1. 허브를 대표할 학생 한 명을 선택합니다.
  1. 이 학생의 임무는 두 스레드가 동시에 시퀀스를 제시할 준비가 되면 "실행"이라고 말하는 것이라고 설명합니다.
  1. 스레드 그룹 #1을 대표할 학생 5명과 스레드 그룹 #2를 대표할 학생 5명을 선택합니다. (필요한 경우 각 그룹에 같은 수의 학생이 있는 한 각 스레드의 학생 수를 늘릴 수 있습니다.)
  1. 스레드 그룹 #1의 각 학생에게 사운드 카드를 제공합니다.
  1. 스레드 그룹 #2의 각 학생에게 사운드 카드를 제공합니다.
  1. 각 스레드 그룹은 사운드 카드와 함께 순차적으로 연습해야 한다고 설명합니다. 각 그룹에게 5분의 시간을 주어 실을 완성하기 위해 자신에게 할당된 소리를 내는 연습을 하도록 합니다.
  1. 각 스레드 그룹에게 나머지 그룹 앞에서 개별 스레드 그룹 순서를 발표할 것이라고 설명합니다.
  • 스레드 그룹 1번의 모든 학생이 나란히 서서 팔꿈치에서 팔을 연결하도록 하는 것으로 시작합니다.
  • 스레드 그룹 1번의 첫 번째 학생에게 허브를 대표하는 학생과 팔꿈치를 연결하도록 지시합니다.
  • 허브 역할을 맡은 학생이 "뛰어요"라고 말하면 스레드 그룹 1번이 순차적으로 소리를 냅니다.
  • 다음으로, 스레드 그룹 2의 모든 학생이 나란히 서서 팔꿈치에서 팔을 연결하도록 합니다.
  • 스레드 그룹 2의 첫 번째 학생은 허브를 대표하는 학생과 팔꿈치를 연결합니다.
  • 허브 역할을 맡은 학생이 "실행"이라고 말하면, 스레드 그룹 2는 순차적으로 소리를 냅니다.
  1. 코드 점퍼에서는 두 개의 개별 시퀀스가 모두 허브에 연결되거나 허브와 연결되어 있을 때 동시에 재생될 수 있다고 학생들에게 설명합니다.
  1. 이제 각 스레드 그룹은 허브에 연결되고 연결된 상태로 유지되며 각 허브를 대표하는 학생이 "실행"이라고 말하면 동시에 시퀀스를 수행하게 된다고 설명합니다.
  • 전체 그룹을 대상으로 몇 번 시도할 수 있습니다. 학생들이 동시에 스레드 시퀀스를 실행할 수 있다고 느낄 때까지 이 과정을 반복합니다.

Closure

코드 스레드의 개념을 검토하고 학생들과 함께 스레드를 어떻게 함께 사용할 수 있다고 생각하는지 토론합니다. 예를 들어 두 개의 스레드가 단순히 동시에 실행되는 대신 비트, 소리, 멜로디를 번갈아 가며 재생하거나 단어와 음악 또는 멜로디와 하모니처럼 소리를 동시에 재생하여 서로를 보완할 수 있습니다.)
 
 

Guided Activity: Creating Threads with Code Jumper

이 활동에서 학생들은 여러 스레드를 사용하여 코드 점퍼를 사용하여 프로그램을 생성합니다.

Objective

  • 학생들에게 일시 중지 팟에 대해 소개합니다.
  • 학생들은 두 개의 스레드를 사용하는 간단한 프로그램을 생성합니다.
  • 학생들은 프로그램을 만든 다음 코드 점퍼로 보냅니다.

Vocabulary

  • 스레드(Thread): 스레드는 다른 명령 세트와 동시에 수행할 수 있는 하나의 명령 또는 작업 세트입니다.

Materials

  • 코드점퍼 킷:
    • 허브
    • 플레이팟 8개
    • 일시정지팟 2개
    •  
이 사진은 포트 1에 연결된 플레이 포드와 포트 2에 연결된 다른 플레이 포드가 있는 코드 점퍼 허브의 모습입니다.이 사진은 포트 1에 연결된 플레이 포드와 포트 2에 연결된 다른 플레이 포드가 있는 코드 점퍼 허브의 모습입니다.
이 사진은 포트 1에 연결된 플레이 포드와 포트 2에 연결된 다른 플레이 포드가 있는 코드 점퍼 허브의 모습입니다.
  1. 학생들을 두세 명씩 그룹으로 나눕니다.
  1. 허브의 포트가 왼쪽에서 오른쪽으로 1~4번까지 번호가 매겨진 앱의 스레드에 해당하는지 살펴봅니다.
  1. 일시 정지 및 플레이팟의 기능을 검토합니다. 학생들에게 기능이 각 특정 유형의 포드가 하는 일이라는 것을 상기시킵니다(예시: 플레이팟은 소리를 내고, 일시 정지 팟은 일시 정지를 생성하며, 매개변수는 특정 사운드 세트 내에서 팟 어떤 소리로 설정되어 있는지입니다.
  1. 두 개의 명령 시퀀스를 생성하는 모델링. 두 개의 플레이 팟을 허브의 팟에 연결한 다음, 두 개의 플레이 팟을 허브의 다른 팟에 추가로 연결합니다. (참고: 허브의 포트 두 개를 사용할 수 있으며, 포트가 서로 인접할 필요는 없습니다.)
  1. 각 스레드를 다른 사운드 세트로 변경합니다. 이때 프로그램을 실행하지 마십시오.
  1. 학생들에게 컴퓨터 과학 노트에 코드를 물리적으로 만들었으므로 이제 코드를 실행하면 어떤 일이 일어날지 예측해 보라고 합니다.
  1. 3명씩 짝을 이루거나 그룹을 이루어 학생들에게 최대 8개의 재생 포드 및 3개의 일시 중지 포드를 사용하여 2개의 스레드가 있는 프로그램을 매핑하도록 요청합니다. 프로그램을 만들기 위한 전략:
      • 과학 노트에 행렬을 만듭니다(예):
Thread 1: Animal Sounds
Thread 2: Nature
Command: Play Parameter: Sound Rooster Speed: 0.5
Command: Pause Parameter: 1 beat
Command: Play Parameter: Horse Speed: 0.5
Command: Play Parameter: Rainfall, Speed: 2 times
 
  • 과학토트에 각 스레드의 행렬을 기록합니다.
    • 위쪽은 포트 1의 허브에 두 개의 플레이팟이 연결되어 있고 포트 2의 허브에 일시 중지 팟 1개와 플레이팟 1개(순서대로)가 연결되어 있는 코드 점퍼 프로그램의 사진입니다. 이 사진 아래는 두 개의 스레드가 있는 코드 점퍼 프로그램의 스크린샷입니다. 스레드 1 동물 아래에는 1배속으로 PLAY 수탉, 0.5배속으로 PLAY 말 명령이 있고, 그 뒤에 End Thread 명령이 있습니다. 스레드 2 자연에서 명령은 1비트 동안 PAUSE, 2배속으로 PLAY Rainfall이라고 표시되고, 명령 뒤에 End Thread가 표시됩니다.위쪽은 포트 1의 허브에 두 개의 플레이팟이 연결되어 있고 포트 2의 허브에 일시 중지 팟 1개와 플레이팟 1개(순서대로)가 연결되어 있는 코드 점퍼 프로그램의 사진입니다. 이 사진 아래는 두 개의 스레드가 있는 코드 점퍼 프로그램의 스크린샷입니다. 스레드 1 동물 아래에는 1배속으로 PLAY 수탉, 0.5배속으로 PLAY 말 명령이 있고, 그 뒤에 End Thread 명령이 있습니다. 스레드 2 자연에서 명령은 1비트 동안 PAUSE, 2배속으로 PLAY Rainfall이라고 표시되고, 명령 뒤에 End Thread가 표시됩니다.
      위쪽은 포트 1의 허브에 두 개의 플레이팟이 연결되어 있고 포트 2의 허브에 일시 중지 팟 1개와 플레이팟 1개(순서대로)가 연결되어 있는 코드 점퍼 프로그램의 사진입니다. 이 사진 아래는 두 개의 스레드가 있는 코드 점퍼 프로그램의 스크린샷입니다. 스레드 1 동물 아래에는 1배속으로 PLAY 수탉, 0.5배속으로 PLAY 말 명령이 있고, 그 뒤에 End Thread 명령이 있습니다. 스레드 2 자연에서 명령은 1비트 동안 PAUSE, 2배속으로 PLAY Rainfall이라고 표시되고, 명령 뒤에 End Thread가 표시됩니다.
      notion imagenotion image
 
  1. 학생들이 과학 노트에 코드를 생성한 후에는 코드 점퍼를 사용하여 코드를 생성하도록 요청합니다. 코드를 실행하지 말고(재생을 누름) 모든 올바른 기능과 매개변수가 설정될 때까지 기다리라고 합니다.
  1. 학생에게 코드를 실행하고 손으로 프로그램을 추적해 보라고 합니다. 학생들은 순서를 따르기 위해 두 손을 사용해야 한다는 것을 알 수 있습니다. (팁! 코드를 추적하는 동안 다이얼이 아닌 측면의 포드를 터치하도록 학생들에게 상기시킵니다. 프로그램을 여러 번 재생하고 그룹과 토론하게 합니다. 그룹 구성원이 여러 명인 경우, 한 학생에게 과학노트를 통해 자신이 만든 것이 원래 시퀀스와 일치하는지 확인하도록 요청합니다.)
  1. 학생들에게 재생을 누르고 코드를 추적했을 때 어떤 일이 일어났는지 관찰하도록 요청합니다. 무슨 소리가 들렸나요? 소리가 겹쳤나요? 어떤 순서로 소리가 들렸나요?
  1. 방금 만든 각 명령어 집합을 스레드라고 설명합니다. 스레드를 사용하면 여러 명령 집합을 동시에 실행할 수 있다고 설명합니다. 이것은 두 가지 이상의 작업을 동시에 수행하는 것과 같다고 설명합니다.
  1. 학생들에게 사운드 다이얼과 지속 시간 다이얼을 변경할 때 한 스레드의 변경 사항이 다른 스레드에 영향을 미치지 않는지 확인하기 위해 몇 분 동안 탐색하고 관찰한 내용을 기록할 시간을 줍니다. 학생들에게 질문합니다: 한 스레드의 플러그를 뽑고 재생을 누르면 어떻게 되나요? 소리 지속 시간이나 소리를 변경하면 어떻게 되나요? 변경할 때 소리가 어떻게 정렬되나요? 한 스레드가 다른 스레드보다 먼저 끝나나요? 특정 소리를 동시에 재생하기 위해 사용할 수 있는 전략에는 어떤 것이 있나요?
  1. 학생들에게 컴퓨터 과학 노트에 스레드(Thread) 정의를 쓰게 합니다. (정의: 스레드는 다른 명령 집합과 동시에 수행될 수 있는 하나의 명령 또는 작업 집합입니다.)
 
 

Closure

  1. 학생들에게 스레딩이 무엇인지 설명하고 이 단원에서 스레딩을 어떻게 사용했는지 예를 들어 설명해 보라고 합니다. (스레딩은 두 개 이상의 개별 명령 시퀀스가 동시에 재생되거나 수행되는 것을 말합니다. 학생들은 허브의 개별 포트에 파드를 연결할 때 스레드를 생성했습니다.)
  1. 학생들에게 일상 생활에서 스레딩의 예를 찾아볼 수 있는지 물어봅니다. (예시: 부엌에서 사람들이 식사의 여러 부분을 준비하기 위해 일할 때, 밴드의 한 멤버가 드럼을 연주하는 동안 다른 멤버가 피아노를 연주할 때 등).
 
 

Exploration

Objective

이 활동에서 학생들은 8개의 플레이팟으로 프로그램을 만들고, 각 팟에서 소리를 설정하고, 프로그램을 실행하고 추적합니다.

Vocabulary

  • 스레드(Thread): 스레드는 다른 명령 세트와 동시에 수행할 수 있는 하나의 명령 또는 작업 세트입니다.

Materials

  • 코드점퍼 킷
    • 플레이팟 8개
    • 일시정지팟 3개

Instruction

  1. 학생들에게 여러 개의 스레드를 사용하여 자신만의 스토리를 만들어 보라고 합니다. 학생들에게 여러 개의 스레드를 사용하여 스토리에 음향 효과를 추가할 수 있다고 말합니다.
  1. 학생들에게 컴퓨터 과학 노트에 스토리에 대한 코드를 작성하고 완성된 프로그램을 작성한 코드와 비교하도록 지시합니다.
  1. 학생들에게 멀티 스레드 프로그램의 예를 보여줍니다. (예: 시에 배경 사운드를 추가하거나 두 개의 다른 사운드 세트가 있는 일시 정지 포드를 사용하여 폭발 카운트다운을 합니다.
  1. 예시:
notion imagenotion image
위쪽에는 두 개의 스레드가 있는 프로그램을 보여주는 코드 점퍼 앱의 스크린샷이 있습니다. 스레드 1 폭발 아래에는 PLAY 1을 1배속으로, PLAY 2를 1배속으로, PLAY 3을 1배속으로, PLAY 유리 깨기를 1배속으로, PLAY 폭발을 1배속으로 명령하고, 그 뒤에 스레드 종료 명령이 표시됩니다. '두 사람 소리' 스레드 아래에는 'PLAY 응원' 1배속, 'PLAY 오' 1배속, '일시 정지' 2비트, 'PLAY 깜짝!' 1배속, '스레드 종료'라는 명령이 표시되고 그 뒤에 스레드 종료가 표시됩니다. 아래 스크린샷은 포트 1의 허브에 5개의 Play 포드가 연결되어 있고 포트 2의 허브에 2개의 Play 포드, 1개의 일시 중지 포드, 또 다른 Play 포드(순서대로)가 연결되어 있는 코드 점퍼 프로그램의 사진입니다.위쪽에는 두 개의 스레드가 있는 프로그램을 보여주는 코드 점퍼 앱의 스크린샷이 있습니다. 스레드 1 폭발 아래에는 PLAY 1을 1배속으로, PLAY 2를 1배속으로, PLAY 3을 1배속으로, PLAY 유리 깨기를 1배속으로, PLAY 폭발을 1배속으로 명령하고, 그 뒤에 스레드 종료 명령이 표시됩니다. '두 사람 소리' 스레드 아래에는 'PLAY 응원' 1배속, 'PLAY 오' 1배속, '일시 정지' 2비트, 'PLAY 깜짝!' 1배속, '스레드 종료'라는 명령이 표시되고 그 뒤에 스레드 종료가 표시됩니다. 아래 스크린샷은 포트 1의 허브에 5개의 Play 포드가 연결되어 있고 포트 2의 허브에 2개의 Play 포드, 1개의 일시 중지 포드, 또 다른 Play 포드(순서대로)가 연결되어 있는 코드 점퍼 프로그램의 사진입니다.
위쪽에는 두 개의 스레드가 있는 프로그램을 보여주는 코드 점퍼 앱의 스크린샷이 있습니다. 스레드 1 폭발 아래에는 PLAY 1을 1배속으로, PLAY 2를 1배속으로, PLAY 3을 1배속으로, PLAY 유리 깨기를 1배속으로, PLAY 폭발을 1배속으로 명령하고, 그 뒤에 스레드 종료 명령이 표시됩니다. '두 사람 소리' 스레드 아래에는 'PLAY 응원' 1배속, 'PLAY 오' 1배속, '일시 정지' 2비트, 'PLAY 깜짝!' 1배속, '스레드 종료'라는 명령이 표시되고 그 뒤에 스레드 종료가 표시됩니다. 아래 스크린샷은 포트 1의 허브에 5개의 Play 포드가 연결되어 있고 포트 2의 허브에 2개의 Play 포드, 1개의 일시 중지 포드, 또 다른 Play 포드(순서대로)가 연결되어 있는 코드 점퍼 프로그램의 사진입니다.
 

Closure

학생들에게 과학 노트에 스레딩이 프로그램을 만드는 데 어떻게 유용할 수 있는지 쓰게 합니다.

Standards and Check for Understanding

CSTA K-12 Computer Science Standards

  • 1A-AP-12: 프로그램의 이벤트 순서, 목표 및 예상 결과를 설명하는 계획을 개발합니다.
  • 1B-AP-11: 프로그램 개발 과정을 용이하게 하기 위해 문제를 더 작고 관리 가능한 하위 문제로 분해(세분화)합니다.

National Curriculum of England:

 
핵심 1단계:
  • 알고리즘이 무엇인지, 알고리즘이 디지털 장치에서 프로그램으로 어떻게 구현되는지, 프로그램이 정확하고 명확한 지침에 따라 실행되는지 이해합니다.
  • 논리적 추론을 사용하여 간단한 프로그램의 동작을 예측합니다.
  • 디지털 콘텐츠를 생성, 구성, 저장, 조작 및 검색하기 위해 의도적으로 기술을 사용합니다.
  • 학교 밖에서 정보 기술의 일반적인 사용을 인식합니다.
  • 개인 정보를 비공개로 유지하면서 안전하고 정중하게 기술을 사용하고, 인터넷 또는 기타 온라인 기술의 콘텐츠나 접촉에 대한 우려 사항이 있을 때 도움과 지원을 받을 수 있는 곳을 파악합니다.
 
핵심 2단계:
  • 프로그램에서 순서, 선택, 반복을 사용하고 변수와 다양한 형태의 입력 및 출력으로 작업합니다.
  • 논리적 추론을 사용하여 몇 가지 간단한 알고리즘의 작동 방식을 설명하고 알고리즘과 프로그램의 오류를 감지하고 수정합니다.
  • 검색 기술을 효과적으로 사용하고, 결과가 선택되고 순위가 매겨지는 방식을 이해하고, 디지털 콘텐츠를 평가할 때 분별력을 갖출 수 있습니다.
  • 안전하고 정중하며 책임감 있게 기술을 사용하고, 허용되는 행동과 허용되지 않는 행동을 인식하며, 콘텐츠 및 연락처에 대한 우려 사항을 보고하는 다양한 방법을 파악합니다.

    Closing Activities and Check for Understanding

    학생들에게 과학 노트에 적거나 터치 타이핑을 하게 하거나, 일상적인 활동에 대한 일련의 지침을 스레드(Thread)로 나누어 구두로 알려줍니다.
     

    Possible examples:

    • 밴드에서 연주하는 음악가
    • 주방에서 식사 재료를 준비하는 요리사
    • 건물의 여러 부분을 짓는 인부들
    • 집을 나설 준비를 하기 위해 각자 아침 일과를 하는 가족.
     
    Check for Understanding
    Completed
    학생은 동시에 수행되는 개별 작업으로 구성된 작업을 식별할 수 있습니다.
    예 / 아니오
    학생이 작업을 별도의 순서와 스레드로 나눌 수 있음
    예 / 아니오
    학생이 개별 스레드를 동시에 수행할 수 있을 때의 이점을 설명할 수 있습니다.
    예 / 아니오

    Unplugged Activity Sound Cards

    Thread Card #1:
    Sound: Snap fingers
    Thread Card #2:
    Sound: Clap hands slowly
    Thread Card #3:
    Sound: Tweet
    Thread Card #4:
    Sound: Buzz, buzz
    Thread Card #5:
    Sound: Stomp feet
    Thread Card #6:
    Sound: Meow
    Thread Card #7:
    Sound: Clap hands quickly
    Thread Card #8:
    Sound: Shh, shh
    Thread Card #9:
    Sound: Rub hands together
    Thread Card #10:
    Sound: Snap then clap

    Unplugged Sound Cards Text Only:

    Thread Card #1:
    Sound: Snap fingers
    Thread Card #2:
    Sound: Clap hands slowly
    Thread Card #3:
    Sound: Tweet
    Thread Card #4:
    Sound: Buzz, buzz
    Thread Card #5:
    Sound: Stomp feet
    Thread Card #6:
    Sound: Meow
    Thread Card #7:
    Sound: Clap hands quickly
    Thread Card #8:
    Sound: Shh, shh
    Thread Card #9:
    Sound: Rub hands together
    Thread Card #10:
    Sound: Snap then clap

    Unplugged Activity Code Cards

    • Thread Code Cards for Unplugged activity
    • These cards can be printed to use with students
    • Code Card: Dr. Foster
      • THREAD 2 Dr Foster
        PLAY Doctor Foster at 1 times speed
        PLAY Went to Gloucester at 1 times speed
        PLAY In a shower of rain at 1 times speed
        PLAY He stepped in a puddle at 1 times speed
        PLAY Right up to his middle at 1 times speed
        PLAY And never went there again! at 1 times speed
        END THREAD
        THREAD 4 Nature
        PAUSE for 1 beat
        PAUSE for 1 beat
        PLAY Rainfall at 2 times speed
        PAUSE for 1/2 a beat
        PLAY Splash at 1 times speed
        END THREAD

    Sample program set up and run by the teacher: Twinkle, Twinkle with Vocals

    • Sound Sets: MIDI Instruments: Piano at Thread 1; Sample Sounds: Twinkle, Twinkle at Thread 2
      • THREAD 1 Piano
        PLAY C5 for 1/2 a beat
        PLAY C5 for 1/2 a beat
        PLAY G5 for 1/2 a beat
        PLAY G5 for 1/2 a beat
        END THREAD
        THREAD 2 Twinkle, Twinkle
        PLAY Twinkle 1 for 1 times speed
        PLAY Twinkle 2 for 1 times speed
        END THREAD