• 검색 결과가 없습니다.

2021년 STEAM 교사연구회 결과보고서

N/A
N/A
Protected

Academic year: 2022

Share "2021년 STEAM 교사연구회 결과보고서"

Copied!
97
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

2021년 STEAM 교사연구회 결과보고서

2021. 11.

인천과학예술영재학교

(2)
(3)

“이 보고서는 2021년도 정부의 재원으로

한국과학창의재단의 지원을 받아 수행된 성과물임 ”

(4)

목 차

1. 요약문··· 1

2. 서론··· 2

3. 연구 수행 내용 및 결과··· 4

가. STEAM 프로그램 개발‧적용 ··· 5

(1) 프로그램 개발 내용 ··· 5

(2) 프로그램 개발‧적용 결과 ··· 5

나. 성과 확산 및 실천 ··· 5

(1) 교사연구회 STEAM 행사 개최 ··· 5

(2) STEAM 교사연구회 간 상호 네트워크 컨설팅 결과 ··· 6

다. STEAM 프로그램 적용 성과 분석 및 조사 ··· 6

(1) 사전조사 ··· 6

(2) 사후조사 ··· 6

4. 결론 및 제언··· 9

[부록]

부록1. STEAM 프로그램 개발 내용 및 결과물 부록2. 회의록

(5)

1. 요약문

프로그램 명: We Are A.I & Data Science Entrepreneurs!

차시 주요내용

1-8 /25

주제(단원)명 프로세싱으로 만나는 수학

학생들은 실세계 및 다양한 학문 분야의 복잡한 문제들을 해결하기 위해 컴퓨팅 시스템의 계산 능력에 기반한 시뮬레이션 방법을 이해할 수 있어야 한다. 이에 재귀, 난수, 시각화의 개념을 이해하고 이를 활용하여 시뮬레이션 알고리즘을 설계 및 구현함으로써 수학과 정보 과학의 융합 경험을 제시하려 한다.

9-13 /25

주제(단원)명 컴퓨팅 사고로 만나는 화학

화학 교과에서 수행하는 실험의 상당 부분은 학습자가 실험의 초보자임을 가정하여 요리책 을 보고 따라하는 것과 같은 형식의 실험이 많다. 본 프로그램은 적정을 주제로 학습자가 스스로 설계하고 방법을 찾아나가며 결과를 얻어내고, 결과를 효과적으로 분석하기 위하여 어떤 기술을 활용해야 할 것인가에 대하여 스스로 해답을 찾도록 하기 위한 목적으로 개발 되었다. 실험의 초보자인 학생들은 적정 실험을 설계하여 계획서를 작성한다. 그러나 1 차 계획서의 문제점을 발견하게 되며 이를 수정할 필요가 있다. 수정하여 새롭게 설계한 계획 서를 토대로 직접 실험을 준비하여 수행한다. 실험 결과를 얻은 후 결과를 시각화하기 위한 프로그래밍을 실시한다. 또는 첨단 장비를 활용하여 실험을 설계한다면 장비에 의하여 처리 되는 실험 데이터를 자동으로 시각화하여 얻을 수 있다.

14-19 /25

주제(단원)명 첨단으로 만나는 화학 - 전자혀

• 센서의 원리에 대해 설명할 수 있다.

• 센서에 나노물질을 활용했을 때의 장점을 설명할 수 있다.

• 논문을 읽고, 필요한 정보를 선별하여 얻어낼 수 있다.

• 센서의 원리를 이용해 최적의 센서를 제작하고, 그 결과를 논문으로 작성할 수 있다.

20-25 /25

주제(단원)명 Shark Tank [We Are A.I & Data Science Entrepreneurs!]

미래 사회는 초연결성, 초지능화의 특징을 지니며, 인공지능, 사물 인터넷, 모바일 인터넷, 클 라우드 기술, 빅데이터, 블록체인 등으로 대표되는 4 차 산업혁명은 이미 전 세계의 사회 및 산업 구조에 커다란 영향을 미치고 있으며, 2016 년 다보스 포럼을 기점으로 수많은 연구기 관과 미래학자들은 미래 사회의 전망을 논의하며 선제적으로 대응하고 미래 사회를 주도하 기 위해 다양한 전략과 정책을 수립하고 있다. 이와 같은 시기에, 미래 사회에 대한 전략적 대응 방안을 모색하여 미래 사회를 준비할 필요가 있다.

본 단원은 이처럼 미래 사회의 기술에 대한 이해를 바탕으로 다양한 각도에서 변화하는 미 래 사회를 예측하고 인공지능 및 데이터 사이언스의 가능성과 현재 기술 수준에 대한 탐구 를 통해 미래를 준비할 수 있는 역량을 기르고자 한다. 미래의 핵심기술인 인공지능 기술 및 데이터 활용기술에 대한 내용을 정확히 이해하고 요약한 뒤, 데이터 사이언스의 전망과 도전과제에 대한 비교대조 에세이를 작성하며, 인공지능 스타트업 사업계획서를 작성하는 과제를 통해 자기관리역량, 지식정보처리역량, 융합적 문제해결능력, 의사소통 역량을 기를 수 있도록 구성하였다.

(6)

2. 서론

1998년 컴퓨터를 이용하여 양자역학적 계산을 한 노벨 수상자 2인, 2013년 분자동역학을 확립하는데 계산화학을 사용한 노벨 수상자 3인 이후로 과학 분야에서도 컴퓨터를 이용한 접근 방법이 급속히 발전하였다. 또한 양자역학적 계산, 통계열역학적 계산, 실험방법의 한 계점을 극복하기 위한 컴퓨터 사용이 보편화되고 있다. 유기분자 구조를 결정하기 위한 NMR, 고체 결정구조를 이해하기 위한 X-ray 결정학, 원자의 2차원적 고해상도 관찰로서 STM, 수용액상에서의 단백질 관찰을 가능하게 하는 Cryo-EM 등에 컴퓨터 기반 과학이 사 용되고 있다. 또한 실험으로 밝힐 수 없는 분자의 구조와 성질, 메커니즘을 이론과 계산을 통해 예측하고 있으며, 화학 데이터베이스 구축 및 빅데이터 분석, 분자의 구조와 성질 사 이의 상관관계를 통계적으로 분석(QSAR), 새로운 물질의 탐색 및 합성 방법 개발에도 사용 되고 있다. 기초과학과 소프트웨어의 융합이 이루어진 결과이다 . 이외에도 21세기의 연 구를 살펴보면 기초 과학과 소프트웨어를 융합한 사례가 많다 . 즉, 소프트웨어 관련 역 량을 갖춘 인재가 필요한 사회가 되었다 . 소프트웨어 역량의 근간이 되는 것이 컴퓨팅 사고이다 .

대학 교육에서도 소프트웨어 교육을 통한 변화가 일어나고 있다 . KAIST의 경우 1학 년은 무학과로 선발되어 수업을 받다가 2학년에 학부를 선택한다. 2016년에는 전공자 800여명 중 160명의 학생이 소프트웨어 교육을 배우는 학부를 선택하였다(한국경제신 문 , 2016). 과거 2008년에는 전공자가 30여명이었던 것에 비하면 8년 만에 5배 이상 급 증한 것이다 . 과학기술정보통신부(2018)은 2020년 소프트웨어 중점적으로 교육할 대학 을 수십개 선정하여 많은 예산을 투입했다 . 이러한 교육계의 변화는 디지털 사회의 변 화를 대변하는 것이다 . 이런 흐름에 맞춰 영재교육계에서도 소프트웨어 교육을 위한 변화가 일어나고 있다 . 과학기술정보통신부(2018)에서 제시한 제3차 과학영재 발굴 · 육성 종합계획에서 초지능 , 초연결 사회의 우수 인재에게는 창의성(Creativity), 비판적 사고 (Critical Thinking), 의사소통력(Com�munication), 협력(Collaboration)이라는 기존 에 강조하던 역량에 더하여 컴퓨팅 사고력 (Com�putational Thinking) 기반 소프트웨어 역량이 주요 역량으로 제시되었다는 것을 알 수 있다 . 영재교육 국가통계 자료에 따르 면 2018년 기준 소프트웨어 교육계열 분야(정보과학, 소프트웨어 융합과정)의 학생이 2016년과 비교했을 때 2년 사이 67.8%로 증가하였다(영재교육종합데이터베이스, 2019).

영재 교육에서도 소프트웨어 교육이 확대 · 강화되고 있는 추세이다.

앞으로 우리가 살아갈 미래는 어떨까 ? 2016년 세계경제포럼에서는 10년 이내 급격한

사회적 변화가 일어날 것으로 보았으며 그 변곡점 (Tipping Point)으로 2021년에 로봇

약사 , 2025년 인공회계감사, 2026년 인공지능 이사, 도로 위에 상용화된 자율주행자동

차가 등장할 것으로 내다보았다 (WEF, 2016). 불과 10년 전까지만 해도 예측하기 힘들

었던 상상 속의 일들이 현실이 되고 있고 , 2021년 현재 이 변화는 흐름을 따라가기 어

려울 정도로 빠르게 진행되고 있다 . 이러한 4차 산업혁명으로 인한 변화는 현재 진행

(7)

이다 . 소프트웨어가 세상을 집어삼킨다고 했던 앤더슨(2011)의 예측이 실현되고 있다.

이런 현재를 살고 있고 , 미래를 앞두고 있는 상황에서 영재교육이 지향해야 할 방향 은 무엇일까 ?

앞으로 이런 미래를 살아가기 위해 영재학생들이 가져야 할 역량은 단순한 기술 수 준이 아닌 융합적 문제 해결을 위한 컴퓨팅 사고 역량일 것이다 . 현재 우리 학교에서 는 이런 변화의 흐름에 발 빠르게 대응하며 정보 과학 (소프트웨어, 프로그래밍, 인공지 능 등 )과 관련된 교육에 모든 교육력을 집중시킨 상황이다. 이에 우리는 학교의 교육력 과 갖춰진 최적의 환경에서 학생들의 융합적 문제 해결력 함양을 위한 컴퓨팅 사고 역 량을 강화시킬 수 있는 STEAM 수업 프로그램 개발하고자 했다. 우리의 목표는 다음 과 같다 .

융합적 문제 해결력 함양을 위한 컴퓨팅 사고 역량을 강화시킬 수 있는

STEAM 수업 프로그램 개발 및 적용

(8)

3. 연구 수행 내용 및 결과

STEAM 프로그램

구분

프로그램명 We Are A.I & Data Science Entrepreneurs!

선행

프로그램명 해당 없음

학교급 고등학교

대상 학년(군) 1-2학년

목표 수혜학생 수 159명

중심과목 정보 중심과목

성취기준 영역

[정보]

(2) 자료와정보

(3) 문제 해결과 프로그래밍 (4) 컴퓨팅 시스템

연계과목

화학 영어 수학

연계과목 성취기준 영역

[심화수학Ⅰ] (2) 해석 [심화수학Ⅱ] (3) 확률과 통계

[화학 I] (1) 물질의 구조 (2) 물질의 변화 [화학 II] (1) 물질의 성질 (2) 물질의 변화 [융합과학] (4) 정보 통신과 신소재

[심화영어 I] (1) 듣기 (2) 말하기 (3) 읽기 (4) 쓰기 [창의경영] (4) 기업가 정신과 창업

개발계획

주제 연번 차시

(시수) 과목 연계(안)

1 8 정보과학+수학

2 5 정보과학+화학

3 6 정보과학+화학

4 6 정보과학+화학+영어

구분 수행 결과

교수학습지도안 개발 차시 총 25차시

수업 적용 기간 2021.3. ~ 2021.10

(STEAM 수업) 수혜학생 수 인천과학예술영재학교 159명(고등학교 1-2학년)

학생 태도검사

1차(사전) 검사 7월, 10개 학급(159명) 실시완료 2차(사후) 검사 10월, 10개 학급(159명) 실시완료

학생 및 교사 만족도조사 10월 실시 완료

(9)

가. STEAM 프로그램 개발‧적용

(1) 프로그램 개발 내용

1) 컴퓨팅 사고를 위한 [STEP 1. 학생으로서 기초 다지기] - [STEP 2. 연구자로서 기술 적용 ] - [STEP 3. 기업가로서 기술 보편화] 과정으로 프로그램을 구성

2) 교육과정 성취기준을 바탕으로 [STEP 1~3] 프로그램 구성을 위한 정보과학, 수 학 , 화학, 영어 교과와 관련된 내용 요소를 선정하고, 이를 바탕으로 주제를 통합 하여 교육과정 구성

3) 미래 사회의 기술에 대한 이해를 바탕으로 다양한 각도에서 변화하는 미래 사회 를 예측하고 인공지능 , 데이터 사이언스 등의 현재 기술 수준에 대한 탐구를 통 해 미래를 준비할 수 있는 역량을 기를 수 있도록 내용 구성

4) 연구자, 기업가 등 진로에 대해 탐구해 볼 수 있는 내용으로 프로그램 구성

(2) 프로그램 개발‧적용 결과

교수학습 지도안 개발

차시(시수)

프로그램명 프로그램 주제 운영

대상(학년)

완료 여부

개발 수업적용 학생수

8 학생으로서 기초

다지기 프로세싱으로 만나는

수학 1,2학년 완료 완료 135

5 연구자로서 기술 적용

컴퓨팅 사고로 만나는

화학 1,2학년 완료 완료 123

6 첨단으로 만나는 화학 -

전자혀 1,2학년 예정 완료 134

6 기업가로서 기술 보편화

Shark Tank [We Are A.I

& Data Science

Entrepreneurs! 1,2학년 완료 완료 111

합계 총 159

나. 성과 확산 및 실천

(1) 교사연구회 STEAM 행사 개최

회차 일시 장소 참석대상 주요내용

1차 21.5.22. 화학교사연구실 화학실험실

연구회 회원 및 화학교사

AI cheminication

온라인 지역 사회 재능기부 활동 2차 21.7.7. 화학교사연구실 연구회 회원 독서토론

(3분 딥러닝(케라스맛, 텐서플로맛))

3차 21.7.7. 대강당

1, 2 학년 학생 중 행사 참가

신청학생

sw교육 활성화를위해 동아리 부서별 프로그램을 기획 및 운영함. (짝 프로그래밍, vr보물찾기, 파이게임, 이진수 스피드 퀴즈, 정보과학 퀴즈 등) 인천로얄호텔 동아시아시민 Shark Tank 프로젝트 및 SDGs 17

(10)

(2) STEAM 교사연구회 간 상호 네트워크 컨설팅 결과

회차 일시 장소 참석자 상호 컨설팅 결과

1차 ’21.5.31.(월)

16:30~18:00 온라인 김은경 교사(연구책임자) - 계획에 대한 공유

- 예산 사용에 대한 컨설팅 2차 ’21.7.15.(목)

16:30~18:00 온라인 김은경 교사(연구책임자) 김금희 교사(참여연구원)

- 예산 사용에 대한 컨설팅 - 적용 결과에 대한 공유 3차 ’21.9.14.(화)

16:30~18:00 온라인 김금희 교사(참여연구원) - 적용 결과에 대한 공유

다. STEAM 프로그램 적용 성과 분석 및 조사

(1) 사전・사후 공통 질문

연번 질문

사전 사후

평균 표준

편차 평균 표준

편차

1 나는 과학 수업 내용이 재미있다. 3.55 0.57 3.38 0.60

2 나는 수학 내용을 이해할 자신이 있다. 3.47 0.57 3.35 0.58

3 나는 수학 관련 활동(수학 체험 활동, 수학 퀴즈 풀이 또는 수학 관

련 글읽기)이 재미있다. 3.44 0.61 3.23 0.67

4 과학 관련 직업을 갖는 것은 멋진 일이다. 3.60 0.56 3.49 0.53

5 나는 과학 공부하는 것이 즐겁다. 3.46 0.59 3.35 0.64

6 과학 내용을 이해할 자신이 있다. 3.52 0.61 3.43 0.59

7 나는 과학 관련 정보나 책을 찾아 읽는 것을 즐긴다. 3.34 0.66 3.21 0.70

8 나는 과학을 좋아한다. 3.53 0.59 3.41 0.63

9 수학과 관련된 직업에 관심이 있다 3.19 0.69 3.16 0.69

10 나는 과학 관련 활동(과학관 견학, 과학 행사 참여, 과학 관련 글읽기)이

재미있다. 3.51 0.59 3.34 0.62

11 나는 과학 실험 기자재를 다른 친구와 사이좋게 나누어 사용한다. 3.58 0.51 3.52 0.52

12 과학 시간에 모둠 활동을 할 때 친구들과 의견을 교환하는 것은 중

요하다. 3.66 0.49 3.60 0.51

13 과학 공부를 하는 것은 고등학교나 대학교에서 공부하는데 도움이 된다. 3.70 0.48 3.68 0.47

14 나는 수학 수업 내용이 재미있다. 3.47 0.61 3.28 0.64

15 나는 수학 시간에 친구의 발표를 주의 깊게 듣는다. 3.55 0.57 3.43 0.58

16 나는 수학 관련 정보나 책을 찾아 읽는 것을 즐긴다. 3.27 0.69 3.14 0.72

17 수학은 다른 교과를 공부하는 데 도움이 된다. 3.69 0.48 3.66 0.51

18 나는 수학 시간에 나와 의견이 다른 친구의 의견을 존중한다. 3.62 0.50 3.59 0.51

19 수학 관련 직업을 갖는 것은 멋진 일이다. 3.42 0.61 3.35 0.58

(11)

설문조사에 참여한 학생들은 영재학교 학생들로서 과학・수학에 관심이 많고, 비교적 지능 수준과 성취도가 높은 학생들의 집합이다. 하지만 이 학생들의 설문 결과를 보면, 과학・수 학에 대한 자신감이 없고, 부담스러워한다는 것이 보인다.

또한, 수학의 경우 수학에 대한 재미와 관심도에 비해서는 직업과 연결시켜 생각하는 정 도는 낮다. 이는 수학이 대입에서의 도구적인 성격을 띄고 있음을 의미한다.

사전・사후 결과 비교 역시 크게 유의미하지 않다. 오히려 2학기가 되면서 내용의 수준이 더 깊어지면서 부담감이 더 커진 것을 확인할 수가 있다.

21 나는 수학 공부 하는 것이 즐겁다. 3.41 0.64 3.21 0.66

22 나는 수학 시간에 친구들과 적극적으로 의견을 교환한다. 3.48 0.58 3.43 0.55

23 나는 과학 시간에 친구들과 적극적으로 의견을 교환한다. 3.55 0.54 3.44 0.53

24 나는 과학이 쉽다고 생각한다. 2.64 0.87 2.87 0.87

25 나는 수학 시간에 내 생각을 적극적으로 표현한다. 3.31 0.65 3.29 0.62

26 나는 과학 시간에 친구의 발표를 주의 깊게 듣는다. 3.61 0.51 3.42 0.56

27 나는 수학 문제를 잘 풀 수 있다는 자신이 있다. 3.13 0.75 3.17 0.72

28 나는 수학 내용에 대한 이해가 빠르다. 3.21 0.70 3.20 0.61

29 과학은 다른 교과를 공부하는데 도움이 된다. 3.57 0.64 3.50 0.58

30 나는 과학 내용에 대한 이해가 빠르다. 3.30 0.69 3.27 0.67

31 과학 지식은 일상생활에 도움이 된다. 3.60 0.60 3.52 0.60

32 수학 시간에 모둠 활동을 할 때 친구들과 의견을 교환하는 것은 중요하다. 3.56 0.54 3.55 0.50

33 수학 공부를 하는 것은 고등학교나 대학교에서 공부하는데 도움이 된다. 3.71 0.46 3.64 0.48

34 나는 수학을 좋아한다. 3.40 0.66 3.23 0.64

35 과학 문제를 잘 풀 수 있다는 자신이 있다. 3.20 0.74 3.30 0.65

36 과학과 관련된 직업에 관심이 있다. 3.62 0.55 3.44 0.59

37 나는 과학 시간에 내 생각을 적극적으로 표현한다. 3.39 0.63 3.37 0.60

38 나는 수학이 쉽다고 생각한다. 2.60 0.92 2.82 0.87

39 나는 수학 시간에 의견을 주장할 때 다른 친구의 입장도 고려한다. 3.56 0.55 3.46 0.53

40 수학 지식은 일상생활에 도움이 된다. 3.44 0.67 3.40 0.62

(12)

(2) 사후조사 추가 질문

연번 질문 평균 표준편차

1 나는 과학 수업이 재미있어졌다. 4.09 0.76

2 나는 과학‧수학 학습 내용에 대해 많이 이해하게 되었다. 4.09 0.79

3 나는 과학·수학 학습에 대한 흥미가 생겼다. 4.20 0.72

4 나는 과학기술에 대한 관심이 생겼다. 4.23 0.69

5 나는 과학 관련 책이나 글을 읽는 것이 좋아졌다. 4.13 0.77

6 나는 문제해결을 위해 스스로 생각을 하게 되었다. 4.29 0.73

7 나는 다양한 학습 활동을 끝까지 해내게 되었다. 4.21 0.70

8 나는 한 가지 문제를 다양하게 생각해보았다. 4.29 0.71

9 나는 배운 내용을 실생활과 연관 지으려고 노력하였다. 4.16 0.82

10 나는 문제해결에 여러 과목에서 배운 지식을 동시에 적용하려고 노력하였다. 4.24 0.73

11 나는 적극적이고 활발하게 수업에 참여하였다. 4.29 0.66

12 나는 친구들과 논리적으로 토론하였다. 4.29 0.66

13 나는 다른 친구들에게 나의 아이디어를 표현하였다. 4.32 0.68

14 나는 다른 친구들의 의견을 경청하고 존중하였다. 4.39 0.60

15 나는 다른 친구들과 협력하는 것의 중요성을 생각하는 마음이 생겼다. 4.33 0.66

16 나는 다른 친구들을 배려하는 마음이 생겼다. 4.35 0.64

17 나는 실패하는 것을 두려워하지 않고, 도전의식이 생겼다. 4.26 0.70

18 나는 과학기술 분야와 관련된 직업에 대한 관심이 생겼다. 4.23 0.76

추가 질문 결과를 보면 학생들은 여전히 과학・수학을 부담스러워하고 있지만, 어려운 과정 에서 본인의 성장에 대해서는 인지하고 있는 것이 확인된다. 성장을 스스로 인지하고, 관심 이 확대되었다는 것만으로도 큰 의미가 있을 것이다.

(13)

4. 결론 및 제언

※ 교사연구회 참여를 통한 STEAM 프로그램 개발을 하는 과정에서 시대의 흐름에 맞춰 정 보 교과를 증심 교과로 하여 영어, 정보, 화학교사가 만나 전체적인 흐름에 대한 교사 간 협의를 하는 과정이 굉장히 가치 있는 활동이었음. 이 때, 교사별로 잘하는 수업 방식이 있 어서 서로 배우는 기회가 되었고, 어떤 식으로 산출물과 관련된 수업을 기획하는지에 대한 고민도 혼자서는 힘들었을 부분이 교사끼리 머리를 맞대니 시너지 효과를 일으킬 수 있어서 교사 스스로가 성장의 경험을 하게 됨.

※ AI는 정보교사의 문제로만 생각하고 있었는데, 타교과 교사들이 AI에 관심을 갖고, 각 교 과의 방식으로 다양하게 적용시킬 수 있는 방법을 찾는 과정에서 교사 간 서로 배울 수 있 는 소중한 경험이었음.

※ 논문이나 학술대회에 참가하기 위한 구체적인 계획이 없이 막연하게 시작을 하다보니, 정 작 학술대회에 참여할 기회가 생겨도 산출물을 학술대회의 방향성에 맞게 구성해나가기 어 려운 점이 있었음. 학술대회 참가를 고려해 개발 단계 초기부터 치밀한 계획이 필요할 것으 로 생각됨.

주 의 문

1. 본 연구의 주장이나 제언은 연구진의 견해이며, 한국과학창의재단의 공식 입장이 아닙니다.

2. 이 보고서 내용을 대외적으로 공개하거나 발표할 때에는 반드시 한국

과학창의재단과 사전에 상의하여야 합니다.

(14)

[부록1] STEAM 프로그램 개발 내용 및 결과물

프로그램 명: We Are A.I & Data Science Entrepreneurs!

1. STEAM 프로그램 개발·적용 교육과정

연번 차시 2015 개정 교육과정 성취기준 (연계과목)

성취기준 영역

1 1-8

/25

[12정과Ⅰ04-01] 문제 해결을 위한 시뮬레이션 프로그램을 설계한다. [12정과Ⅰ04-02] 문제 해결을 위한 시뮬레이션 프로그램을 구현한다.

[정보]

(4) 컴퓨팅 시스템

2 9-13 /25

[12화학Ⅰ04-03] 산・염기 중화 반응을 이해하고, 산・염기 중화 반응에서의 양적 관계를 설명할 수 있다.

[12화학Ⅰ04-04] 중화 적정 실험을 계획하고 수행할 수 있다.

[12화학Ⅰ04-05] 산화・환원을 전자의 이동과 산화수의 변화로 설명하고, 산화수 를 이용하여 산화・환원 반응식을 완성할 수 있다.

[정보]

(4) 컴퓨팅 시스템

3 14-19 /25

[12융과04-07] 고분자 물질의 구조와 이에 따른 특성을 이해하고, 고분자 물질의 특성을 활용한 합성섬유, 합성수지, 나노 물질 등 다양한 첨단 소재를 조사하여 발표할 수 있다.

[정보]

(4) 컴퓨팅 시스템

4 20-25 /25

[12심영Ⅰ01-05] 다양한 일반적 주제에 관한 말이나 대화를 듣고 주제나 요지를 파악한다.

[12심영Ⅰ02-05] 일반적 주제에 관한 준비된 보고나 발표를 한다.

[12심영Ⅰ02-02] 일반적 주제에 관한 글을 읽고 근거를 토대로 생각이나 의견을 말한다.

[12심영Ⅰ02-02] 일반적 주제에 관한 글을 읽고 근거를 토대로 생각이나 의견을 말한다.

[12심영Ⅰ02-04] 일반적 주제에 관한 글을 읽고 요약하여 말한다.

[12심영Ⅰ03-01] 다양한 일반적 주제에 관한 글을 속독하여 세부 정보를 찾는다. [12심영Ⅰ04-01] 친숙한 일반적 주제에 관한 강의나 강연을 듣고 필요한 정보를

기록한다.

[정보]

(4) 컴퓨팅 시스템

(15)

2. STEAM 프로그램 총괄표(총 25차시)

차시 주요내용

1-8 /25

주제(단원)명 프로세싱으로 만나는 수학

학생들은 실세계 및 다양한 학문 분야의 복잡한 문제들을 해결하기 위해 컴퓨팅 시스템의 계산 능력에 기반한 시뮬레이션 방법을 이해할 수 있어야 한다. 이에 재귀, 난수, 시각화의 개념을 이해하고 이를 활용하여 시뮬레이션 알고리즘을 설계 및 구현함으로써 수학과 정보 과학의 융합 경험을 제시하려 한다.

9-13 /25

주제(단원)명 컴퓨팅 사고로 만나는 화학

화학 교과에서 수행하는 실험의 상당 부분은 학습자가 실험의 초보자임을 가정하여 요리책 을 보고 따라하는 것과 같은 형식의 실험이 많다. 본 프로그램은 적정을 주제로 학습자가 스스로 설계하고 방법을 찾아나가며 결과를 얻어내고, 결과를 효과적으로 분석하기 위하여 어떤 기술을 활용해야 할 것인가에 대하여 스스로 해답을 찾도록 하기 위한 목적으로 개발 되었다. 실험의 초보자인 학생들은 적정 실험을 설계하여 계획서를 작성한다. 그러나 1 차 계획서의 문제점을 발견하게 되며 이를 수정할 필요가 있다. 수정하여 새롭게 설계한 계획 서를 토대로 직접 실험을 준비하여 수행한다. 실험 결과를 얻은 후 결과를 시각화하기 위한 프로그래밍을 실시한다. 또는 첨단 장비를 활용하여 실험을 설계한다면 장비에 의하여 처리 되는 실험 데이터를 자동으로 시각화하여 얻을 수 있다.

14-19 /25

주제(단원)명 첨단으로 만나는 화학 - 전자혀

• 센서의 원리에 대해 설명할 수 있다.

• 센서에 나노물질을 활용했을 때의 장점을 설명할 수 있다.

• 논문을 읽고, 필요한 정보를 선별하여 얻어낼 수 있다.

• 센서의 원리를 이용해 최적의 센서를 제작하고, 그 결과를 논문으로 작성할 수 있다.

20-25 /25

주제(단원)명 Shark Tank [We Are A.I & Data Science Entrepreneurs!]

미래 사회는 초연결성, 초지능화의 특징을 지니며, 인공지능, 사물 인터넷, 모바일 인터넷, 클 라우드 기술, 빅데이터, 블록체인 등으로 대표되는 4 차 산업혁명은 이미 전 세계의 사회 및 산업 구조에 커다란 영향을 미치고 있으며, 2016 년 다보스 포럼을 기점으로 수많은 연구기 관과 미래학자들은 미래 사회의 전망을 논의하며 선제적으로 대응하고 미래 사회를 주도하 기 위해 다양한 전략과 정책을 수립하고 있다. 이와 같은 시기에, 미래 사회에 대한 전략적 대응 방안을 모색하여 미래 사회를 준비할 필요가 있다.

본 단원은 이처럼 미래 사회의 기술에 대한 이해를 바탕으로 다양한 각도에서 변화하는 미 래 사회를 예측하고 인공지능 및 데이터 사이언스의 가능성과 현재 기술 수준에 대한 탐구 를 통해 미래를 준비할 수 있는 역량을 기르고자 한다. 미래의 핵심기술인 인공지능 기술 및 데이터 활용기술에 대한 내용을 정확히 이해하고 요약한 뒤, 데이터 사이언스의 전망과 도전과제에 대한 비교대조 에세이를 작성하며, 인공지능 스타트업 사업계획서를 작성하는 과제를 통해 자기관리역량, 지식정보처리역량, 융합적 문제해결능력, 의사소통 역량을 기를 수 있도록 구성하였다.

(16)

3. STEAM 프로그램 차시별 수업지도안

1) 프로세싱으로 만나는 수학

중심과목 정보 학교급/학년(군) 고등학교/1~2 학년

중심과목 성취기준

영역

[정보]

(4) 컴퓨팅 시스템

중심과목 성취기준

[12정과Ⅰ04-01] 문제 해결을 위한 시뮬레이션

프로그램을 설계한다.

[12정과Ⅰ04-02] 문제 해결을 위한 시뮬레이션

프로그램을 구현한다.

주제(단원)명 프로세싱으로 만나는 수학 차시 1~8/25

학습목표

• 프랙탈의 원리에 대해 설명할 수 있다.

• 프랙탈 트리를 프로그래밍으로 구현할 수 있다.

• 컴퓨터의 난수 생성 방법에 대해 설명할 수 있다.

• 몬테카를로 기법을 구체적인 예를 들어 설명하고 프로그래밍으로 구현할 수 있다.

연계과목 수학 연계과목

성취기준 영역

[심화수학Ⅰ]

(2) 해석 [심화수학Ⅱ]

(3) 확률과 통계

STEAM 요소

S 알고리즘 T 인공지능(AI)

E 프로그래밍, 시뮬레이션 A 데이터 시각화

M 점화식, 함수의 확률적 계산

개발 의도

학생들은 실세계 및 다양한 학문 분야의 복잡한 문제들을 해결하기 위해 컴퓨팅 시스템의 계산 능력에 기반한 시뮬레이션 방법을 이해할 수 있어야 한다. 이에 재귀, 난수, 시각화 의 개념을 이해하고 이를 활용하여 시뮬레이션 알고리즘을 설계 및 구현함으로써 수학과 정보과학의 융합 경험을 제시하려 한다.

차시 탐구 활동

1 차시 [ 활동 1 ] 프로세싱 언어 소개 및 시각적 프로그래밍의 이해 2 차시 [ 활동 2 ] 프로세싱의 상호작용

3 차시 [ 활동 3 ] 함수와 배열

4 차시 [ 활동 4 ] 사상, 각, 좌표, 행렬에 대한 프로그래밍 표현 5 차시 [ 활동 5 ] 프랙탈과 재귀의 관계

6 차시 [ 활동 6 ] 프랙탈 트리의 프로그래밍 구현과 새로운 문제 탐색 7 차시 [ 활동 7 ] 난수, 확률에 대한 프로그래밍 표현

8 차시 [ 활동 8 ] 몬테카를로 기법을 활용한 근사치 추정 및 새로운 문제 탐색

Ⅰ. 학생으로서 기초 다지기

(17)

Co – 상황제시 CD - 창의적 설계 ET – 감성적 체험 STEAM

학습 준거

상황 제시

상 황 제 시

*자연현상의 데이터화 와 시각적 표현이 가 능한 상황 찾기

*알고리즘의 반복과

큰 수의 계산이 관련 된 문제 찾기

창의적 설계 *재귀적 성질의 프랙

탈 자연현상을 찾고 프로그램으로 구현하 기

*몬테카를로 방법을

적용해 계산해 낼 수 있는 수학·과학 분야 의 문제 탐색 및 프 로그래밍 구현

감 성 적 체 험

*프랙탈 트리의 재귀적 규칙성을 알고리즘으로 설계하기

*몬테카를로 방법을 프로세싱으 로 프로그래밍하여 처리된 시각 화 데이터에서 원주율(π) 구하 기

감성적 체험

학습

과정 교수-학습 활동 학습자료

및 유의점

도입 (30 분)

Co 프로그래밍 언어에 대한 경험 나누기

‣ 텍스트 프로그래밍 언어별 특성 및 차이점 공유

ET processing.org 사이트에 접속하여 다른 사람이 만든 프로그램 관찰 ‣ 프로그래밍으로 만들어 낼 수 있는 프로그램 범위 확장

웹 사이트

전개 (150

분)

CD [활동 1] 프로세싱 언어 소개 및 시각적 프로그래밍의 이해

‣ 전통적 프로그래밍과의 차이점을 이해하고 시각적 프로그래밍으로서의 기본 요소를 사용하는 방법을 익힌다.

‣ 입력->출력, 출력->입력의 시각화 프로그래밍 예측 연습

CD [활동 2] 프로세싱의 상호작용

‣ setup(), draw()의 흐름을 이해하고 순간의 변화를 연속화하여 출력하는 예제 들을 직접 구현한다.

‣ [탐구하기1] 수행

CD [활동 3] 함수와 배열

‣ 출력창과 사용자의 움직임에 대한 정보를 지니고 있는 시스템 변수와 이벤트 함수를 문제에 적용하고, 함수와 배열을 사용하여 코드를 부분으로 분리시킨다.

‣ [탐구하기2], [탐구하기3] 수행

CD [활동 4] 재귀, 사상, 각, 좌표, 행렬에 대한 프로그래밍 표현

‣ 프랙탈 트리 구현에 필요한 수학적 개념을 프로그래밍으로 구현한다.

‣ [탐구하기5], [탐구하기6], [탐구하기7] 수행

프로그래밍 언어(sw)

(18)

[학생활동지 / 학생참고자료]

(학생 활동지)

프로세싱(processing)으로 만나는 수학

■ 프로세싱(processing) 이란?

프로세싱은 이미지, 애니메이션과 사운드를 프로그래밍하기 원하는 사람들을 위한 오픈 소스 프로그래밍 언어이자 환경이다. 학생, 예술가, 디자이너 건축가, 연구원과 취미로 접근하는 사람들이 배우고 시제품을 개발하며 제작하는데 사용된다. 자바 프로그래밍 언어 기반 위해서 개발되었기 때문에 Logo나 Design by Numbers가 지닌 제약에서 벗어나 완전한 기능을 수행할 수 있다.

[ 들어가기 ] 자신이 경험한 프로그래밍 언어를 나열해보기

‣ 프랙탈의 한 종류인 칸토어 집합을 프로그래밍으로 구현한다.

‣ [탐구하기4] 수행

CD [활동 6] 프랙탈 트리의 프로그래밍 구현과 새로운 문제 탐색

‣ 프랙탈 트리가 만들어지는 핵심 알고리즘을 제시하고 재귀, 사상, 좌표변환, 회전(행렬) 개념을 활용하여 프랙탈 트리를 구현한다.

ET [탐구하기8] 수행

CD [활동 7] 난수, 확률에 대한 프로그래밍 표현

‣ 몬테카를로 기법을 활용한 근사치 추정에 필요한 수학적 개념을 프로그래밍 으로 구현한다.

‣ [탐구하기9] 수행

CD [활동 8] 몬테카를로 기법을 활용한 근사치 추정 및 새로운 문제 탐색

‣ 원주율 π값을 계산하는 과정에 난수 데이터로 π값 근사치를 찾아가는 과정 을 시각적으로 시뮬레이션 한다.

ET [탐구하기10] 수행

정리 (20 분)

ET 프로그래밍의 확장

‣ 새로운 관점의 시각적 프로그래밍 경험으로 생각의 구현 범위를 확장할 수 있는 서로의 의견을 나누고, 인공지능에서의 활용 방안을 탐색한다.

(19)

■ 프로세싱의 출력(output)

화면의 각 픽셀은 어떤 공간의 한 지점의 위치를 결정하는 좌표이다. 프로세싱의 프로그래머가 할 일은 어떤 모양과 색상이 이런 픽셀 좌표에 나타나야 할 것인지를 구체적으로 명시하는 것이다.

[ 생각열기 ] 전통적 프로그래밍과 프로세싱 프로그래밍의 입·출력의 차이점 구분하기

( 전통적 프로그래밍 ) ( 프로세싱 프로그래밍 )

1. TEXT IN 2. TEXT OUT

3. TEXT INTERACTION

1. TEXT IN 2. VISUAL OUT

3. MOUSE INTERACTION

첫 번째 프로그램 첫 번째 프로그램

“Hello, World!”

■ 시각적 프로그래밍

점(point) 선 (line)

사각형 (rectangle) 타원형 (ellipse)

(20)

[ 활동하기 ] 코드에서 명시하고 있는 기본 도형 그리기

■ 프로세싱의 흐름(interaction)

색상 표현

① 그레이스케일(grayscale, 회색조) ② RGB 색상

(21)

[ 탐구하기1 ] 사각형이 지나가는 경로가 나타나는 이유 찾기

■ 시스템 변수와 이벤트 함수의 사용

pmouseX와 pmouseY의 사용

이벤트 함수(mousePressed() , keyPressed())

(22)

[ 탐구하기2 ] 의사코드(유사코드, pseudo)를 프로세싱으로 구현하기

1단계 : 빨강, 녹색, 파란색의 요소들을 수용할 변수들을 생성한다. 이들을 r, g, b 라고 부른다.

2단계 : 이 색상들을 근거로 배경을 칠한다.

3단계 : 만약 마우스가 화면의 오른쪽에 위치한다면 r의 값을 증가시킨다. 만약 화면의 왼쪽에 위 치한다면 r의 값을 감소시킨다.

4단계 : 만약 마우스가 화면의 위쪽에 위치한다면 b의 값을 증가시킨다. 만약 화면의 아래쪽에 위 치한다면 b의 값을 감소시킨다.

5단계 : 만약 마우스가 눌렸다면 g의 값을 증가시킨다. 그렇지 않으면 g의 값을 감소시킨다.

6단계 : r, g, b의 값이 0과 255 이내에서 선택되도록 제한한다.

(23)

■ 부분으로 분리하기의 시작 : 프로세싱과 함수(function)

거리 값을 반환하는 함수의 활용

[ 탐구하기3 ] 거리 값 반환 함수 구현하기

flo a t d is ta n c e (flo a t x1 , flo a t y 1 , flo a t x2 , flo a t y2 ) { float dx = x1 – x2;

float dy = y1 – y2;

float d = sqrt( dx*dx + dy*dy );

return d;

}

■ 반복되는 상황 : 프로세싱과 배열(array)

배열 값에 따른 데이터 시각화

int[] x; ---> ① 선언 void setup() {

size(200, 200);

x = new int[height/10]; ---> ② 생성 for (int i = 0; i < x.length; i++) {

x[i] = (int)random (1, 100); ---> ③ 할당 }

}

void draw() { background(200);

fill(0);

for (int i = 0; i < x.length; i++) { rect(0, i*10, x[i], 8);

} }

(24)

■ 수학과 프로그래밍1 : 프랙탈 트리 준비

ellipse(), rect(), line() 함수 등으로 이상적인 형태가 아닌 실제 자연 세계에 있는 모양들을 만들려면 자연 에 있는 모양을 모방할 수 있는 기술인 프랙탈(fractal)에 대해 알아야 한다. 1975년 Benoit Mandelbrot 는 자연적으로 발견되는 자가 유사 도형(self-similar shapes)을 표현하는데 프랙탈(fractal)이라는 용어를 만들어 냈다. 프랙탈은 자가 유사 도형들을 묘사하고 구현하기 위해 기하학을 제공하며, 이런 도형들이 생 성되는 과정을 재귀(recursion)라고 한다.

① 재귀의 프로그램 구현

[ 탐구하기4 ] 칸토어 집합(cantor set)을 프로세싱으로 구현하기

algorithm) 1. 직선에서 시작한다.

2. 중간 지점의 1/3을 제거한다.

3. 남은 선으로 2번 과정을 계속 반복한다.

vo id c a n to r(flo a t x , flo a t y , flo a t le n ) {

}

② 프랙탈 표현 도구1 : 사상 map( )

다른 범주로 값을 전환하는 계산을 수행하는 map() 함수는 다섯 개의 인수를 수용한다.

• 값 : 매핑하고 싶은 값

• 현재 최소값 : 값의 범주에서 최소값

• 현재 최대값 : 값의 범주에서 최대값

• 새로운 최소값 : 새로운 값의 범주에서 최소값

• 새로운 최대값 : 새로운 값의 범주에서 최대값

(25)

③ 프랙탈 표현 도구2 : 각 radians( ) 라디안(radians)으로 구성되는 각도의 개념

도를 라디안으로 전환하는 공식

극좌표와 삼각법

프로세싱에서 도형을 나타나게 할 때 (x, y) 좌표로 픽셀의 위치를 명시해야 한다. 이런 좌표는 데카르트 좌표(직각 좌표)라고 한다. 그 외 극 좌표(polar coordinates)라고 하는 또 다른 유용한 좌표 시스템이 있 는데, 이 좌표는 공간 속의 한 지점을 원점으로부터의 회전 각과 원점으로부터의 반지름으로 묘사하는 방 식이다. 프로세싱에서는 이 극 좌표를 함수에 대한 인수로 사용할 수 없지만, 삼각법 공식에 의해 이런 좌 표들을 도형을 그리는데 사용될 수 있는 직각 좌표로 변경해 준다.

[ 탐구하기5 ] 극 좌표의 직각 좌표로의 변환을 프로세싱으로 구현하기

float r = 75;

float theta = 0;

void setup() { size(200, 200);

background(255);

}

void draw() {

float x = r * cos(theta);

float y = r * sin(theta);

noStroke();

fill(0);

ellipse(x + width/2, y + height/2, 16, 16);

theta += 0.01;

}

(26)

④ 프랙탈 표현 도구3 : 회전 rotate( ), 행렬 push( ) + pop( ) 단순 회전

프로세싱에서의 회전은 언제나 원점을 기준으로 이루어진다. 원점은 기본적으로 왼쪽 상단의 모서리다. 사 각형을 회전시키려 할 때 원점을 사각형 중심으로 이동시키지 않으면 사각형은 자신의 중심점을 기준으로 회전하지 않고 왼쪽 상단의 모서리를 기준으로 회전을 하게 된다.

[ 탐구하기6 ] mouseX의 위치에 따라 중심을 기준으로 회전하는 사각형 프로세싱으로 구현하기

• mouseX의 최소값과 최대값 및 새로운 사상 범위는?

void setup() { size(200, 200);

}

void draw() {

background(255);

stroke(0);

fill(175);

translate(width/2, height/2);

float theta = map(mouseX, 0, width, 0, TWO_PI);

rotate(theta);

rectMode(CENTER);

rect(0, 0, 100, 100);

}

(27)

행렬

프로세싱은 회전과 이동 그리고 각기 다른 변환에 따라 도형이 나타나는 방식을 기록하기 위해 행렬을 활 용한다. 좌표 시스템과 관련된 정보가 변환 행렬 이라고 하는 것에 저장되며 이동이나 회전이 적용될 때 변환 행렬은 변경된다. 변환 행렬은 화면창의 방향, 즉 이동할 것인지 또는 회전할 것인지를 설명하는데 사용 된다.

[ 탐구하기7 ] 두 개의 사각형의 독립된 회전을 프로세싱으로 구현하기

float theta1 = 0;

float theta2 = 0;

void setup() { size(200, 200);

}

void draw() { background(255);

stroke(0);

fill(175);

rectMode(CENTER);

pushMatrix();

translate(50, 50);

rotate(theta1);

rect(0, 0, 60, 60);

popMatrix();

pushMatrix();

translate(150, 150);

rotate(theta2);

rect(0, 0, 60, 60);

popMatrix();

theta1 += 0.02;

theta2 += 0.02;

}

(28)

■ 수학과 프로그래밍1 : 프랙탈 트리 구현

수학자 브누아 망델브로(Benoit Mandelbrot)의 저서인 「The Fractal Geometry of Nature」에서는 프랙탈 을 ‘일부 작은 조각이 전체와 비슷한 기하학적 형태’라고 정의한다. 이는 프랙탈 구조 중에 하나인 프랙탈 트리로 설명된다. 나무의 뿌리에서 시작된 1개의 가지가 2개로 나누어지고, 그렇게 나누어진 가지는 또 2 개로 나누어지고 또 2개로 나누어 진다. 나누어진 가지 하나를 확대해서 보면 그 형태가 나무 전체와 비슷 하다는 것을 알 수 있는데 이는 ‘각각의 부분은 전체 형태와 비슷하다’는 관점의 자기유사성(self similarity)을 나타낸다.

[ 생각열기 ] 프랙탈 트리를 구현하기 위한 아이디어를 나열해보기

[ 탐구하기8 ] 프랙탈 트리 프로세싱으로 구현하기

float theta;

void setup() { size(800, 600);

}

void draw() { background(255);

theta = map(mouseX, 0, width, 0, PI/2);

translate(width/2, height);

stroke(0);

strokeWeight(2);

branch(200);

}

void branch(float len) { line(0, 0, 0, -len);

translate(0, -len);

len = len * 0.66;

if (len > 2) { // "right"

// "left"

} }

(29)

■ 수학과 프로그래밍2 : 몬테카를로 기법을 활용한 근사적 계산 준비

몬테카를로 기법(Monte Carlo method)은 반복된 무작위 추출을 이용하여 함수의 값을 확률적으로 계산 하는 알고리즘을 부르는 용어이다. 수학이나 물리학 등에 자주 사용되며, 계산하려는 값이 닫힌 형식으 로 표현되지 않거나 복잡한 경우에 근사적으로 계산할 때 사용된다. 알고리즘의 반복과 큰 수의 계산이 관련되기 때문에 몬테카를로는 다양한 컴퓨터 모의 실험 기술을 사용하여 컴퓨터로 계산하는 것이 적합 하다. 폴란드 출신 수학자 스타니스와프 울람이 모나코의 유명한 도박의 도시 몬테카를로(Monte-Carlo) 의 이름을 본따 명명하였다.

① 근사적 계산 도구1 : 난수 random( )

프로세싱의 난수 생성자 random()은 수의 “균일” 분포를 바탕으로 생성한다.

난수 분포를 기록하기 위한 배열 프로그램

② 근사적 계산 도구2 : 확률

random() 사용 방식을 변경하여 난수들이 균등하게 분포되지 않고 어떤 특정한 이벤트를 발생시킬 확률 을 만들어 낸다.

이벤트 확률에 관한 코드

float prob = 0.10; // 10%의 확률

float r = random(1); // 0과 1사이의 임의의 부동소수점 if ( r < prob ) { // 만약 난수가 0.1보다 작은 경우

// event zone

}

(30)

[ 탐구하기9 ] 원의 움직임을 10%, 20%, 70%의 확률로 나누어 구분한 프로그램 구현하기

float y = 100;

void setup() { size(200, 200);

}

void draw() { background(0);

float r = random(1);

ellipse(width/2, y, 16, 16);

}

■ 수학과 프로그래밍2 : 몬테카를로 기법을 활용한 π값 근사적 계산 구현

난수를 이용하여 함수의 값을 확률적으로 계산하는 알고리즘인 몬테카를로 방법을 절차화하여 시각적으 로 표현한다. 원주율 π값을 계산하는 과정에서 랜덤으로 생성되는 데이터들의 통계적 특성을 이용한다.

[ 생각열기 ] 몬테카를로 방법을 사용해서 π의 값을 근사치로 추정할 수 있는 절차 나열하기

1.

2.

3.

4.

(31)

[ 탐구하기10 ] π값 근사치 계산 시뮬레이션 프로그램 구현하기

int insideCount = 0;

int totalCount = 0;

float x, y;

void setup() { size(500, 500);

background(255);

}

void draw() {

arc(0, height, width * 2, height * 2, TWO_PI-PI/2, TWO_PI);

println(totalCount, 4.0 * insideCount / totalCount);

}

(32)

(교사용 참고자료)

프로세싱(processing)으로 만나는 수학

■ 프로그래밍 언어의 선정

문제해결을 위한 시뮬레이션 프로그램 설계 및 구현이라는 수업 의도를 충실히 반영할 수 있는 프로그 래밍 언어의 선정이 중요하여, 텍스트 기반의 프로그래밍 언어 중 학생들이 수학/과학/예술 분야의 다양 한 지식과 경험을 프로그래밍과 융합하여 시뮬레이션 하기에 적절한 프로세싱(processing.org) 언어를 문제 해결의 도구로 선정하였다. 프로세싱 언어의 활용은 현실 세계에서 일어나는 자연 현상을 프로그 래밍으로 모방해 보는 경험을 통해 컴퓨터 과학의 다양한 방향성을 제시해 볼 수 있다.

■ 프로그래밍 언어의 기본 이해와 응용

전통적 프로그래밍과 다른 구조를 가지고 있기 때문에 문제 해결을 위한 응용 단계에 이르기까지 언어 에 대한 기본 이해 과정이 선행되어야 한다. 이를 위해 시각적 프로그래밍을 위한 개체 표현과 명령의 흐름, 상호작용을 충분히 연습하여 융합 문제 해결을 위한 기반을 다진다. 언어에 대한 이해는 단편적인 일부의 명령에 대한 사용법을 일방적으로 전달하는 것을 지양하고, 학습자 스스로 언어를 응용해 나갈 수 있도록 공식 사이트에서 제공하는 문서(Documentation-Reference)를 참고하는 방법을 안내한다.

프랙탈 트리와 몬테카를로 기법을 활용한 근사적 계산을 구현하기 위해서는 해당 문제의 수학적 원리 를 이해하고, 수학적 지식을 프로그래밍 표현으로 연결할 수 있어야 한다. 이를 위해 수학에서의 재귀, 사상, 각, 회전, 행렬, 난수, 확률의 개념이 프로세싱에서 표현되는 방법을 학습하고 큰 규모의 문제 해결 시뮬레이션으로 확장한다.

(33)

■ 수업 구성

1단계 2단계 3단계 4단계

프로세싱 언어와 친해지기

수학과 프로그래밍 연결하기

프랙탈 트리 구현하기

몬테카를로 기법 기반의 근사적 계산 구현하기

[ 생각열기 ]

• 프로그래밍 언어에 대한 경험 나누기 - 자유로운 의견 교환

- 시각적 프로그래밍 언어인 프로세싱으로 만들 수 있는 프로그램 소개

Animation Motion

Simulate Web

Objects Cellular Automata

(https://processing.org/examples)

(34)

[ 탐구활동 진행하기]

① [탐구하기1] 출력 분석

- 프로세싱 명령의 기본 구조인 setup()과 draw()의 흐름을 이해하고 문제 상황을 디버깅 할 수 있도록 의도치 않는 출력을 제시한다.

② [탐구하기2] 의사코드 해석

- 알고리즘 표현 중에 한 가지인 의사코드를 프로세싱을 이용해 프로그램으로 구현하게 한 다. 마우스를 이용한 상호작용 과정을 조건에 맞게 코드화 하여야 한다.

③ [탐구하기3] 반환형 함수 구현

- 문제 해결 과정을 모듈화 할 수 있도록 프로세싱 내에서의 함수 사용법을 익혀, 함수의 입력에 해당하는 매개변수 정의와 출력에 해당하는 반환 값을 제어할 수 있게 한다.

④ [탐구하기4] 칸토어 집합 시각화

- 프랙탈 트리의 핵심 개념인 자기 유사성을 표현할 수 있는 재귀 구조를 코드화하는 과 정을 연습하기 위해 재귀적 성질을 가진 칸토어 집합을 시각화하여 구현한다.

⑤ [탐구하기5] 좌표의 변환

- 프랙탈 트리에서 가지가 분화되는 과정을 표현하기 위해서는 극 좌표를 구성하는 각도 와 길이 정보만으로 직각 좌표를 만들어내야 하기 때문에 극 좌표를 직각 좌표로 변환 하는 과정을 구현할 수 있는 능력이 선행되어야 한다.

⑥ [탐구하기6] 사상의 프로세싱 표현

- 시스템 내에서의 데이터와 문제 해결에 사용할 데이터의 범위는 다를 수 있기 때문에 대응(사상) 과정을 통해 프로그램 내에서 범위를 공유할 수 있어야 한다.

⑦ [탐구하기7] 변환행렬을 활용한 회전

- 프로세싱 내의 회전은 좌측 상단의 원점을 기준으로 대상(객체)이 회전되기 때문에 대상 에게 회전을 주기 전에 원점의 변환이 선행되어야 하며, 이는 translate() 명령으로 제어 한다.

⑧ [탐구하기8] 프랙탈 트리 구현

- 프랙탈 트리 구현을 위해 앞서 연습한 재귀, 사상, 각, 회전, 변환행렬 등의 수학적 개념 을 종합적으로 적용한다. 완성된 코드가 나오면 자유롭게 프랙탈 트리의 형태를 변형하 도록 하여 자신의 생각을 코드로 표현하는 능력을 기른다.

⑨ [탐구하기9] 확률 구현

- 몬테카를로 기법은 반복된 무작위 추출 데이터에서 확률적 계산을 이용하는 방법이므로, 컴퓨터에서 난수로 생성된 데이터에 확률을 반영해 처리할 수 있어야 한다. 문제에서 주어진 확률에 따라 원의 움직임을 시뮬레이션 할 수 있다.

⑩ [탐구하기10] 몬테카를로 기법을 활용한 π값 계산 프로그램 구현

- 원주율 π값을 계산하는 과정에 난수 데이터로 π값 근사치를 찾아가는 과정을 시각적으 로 시뮬레이션 한다. 사람이 반복적으로 오랜 시간동안 실제로 계산해내기 어려운 수학 적 모델을을 컴퓨터를 이용하여 해결하는 논리적 시뮬레이션 과정을 경험하게 한다.

(35)

■ 완성 코드

프 랙 탈 트 리 프 로 그 램

float theta;

void setup() { size(800, 600);

}

void draw() { background(255);

theta = map(mouseX, 0, width, 0, PI/2);

translate(width/2, height);

stroke(0);

strokeWeight(2);

branch(200);

}

void branch(float len) { line(0, 0, 0, -len);

translate(0, -len);

len = len * 0.66;

if (len > 2) { // "right“

pushMatrix();

rotate(theta);

branch(len);

popMatrix();

// "left“

pushMatrix();

rotate(-theta);

branch(len);

popMatrix();

} }

(36)

π값 근사치 계산 시뮬레이션 프로그램 int insideCount = 0;

int totalCount = 0;

float x, y;

void setup() { size(500, 500);

background(255);

}

void draw() {

x = random(width);

y = random(height);

stroke(0);

if (dist(0, height, x, y) <= width) { insideCount++;

fill(255, 0, 0);

} else {

fill(0, 0, 255);

}

ellipse(x, y, 4, 4);

totalCount++;

noFill();

stroke(0);

arc(0, height, width * 2, height * 2, TWO_PI-PI/2, TWO_PI);

println(totalCount, 4.0 * insideCount / totalCount);

}

※ 자료 출처

⦁Learning Processing(Daniel Shiffman), Nature of Code(Daniel Shiffman), processing.org

(37)

[평가 방법]

※ 자기 성찰평가(학생)

인적 사항 ( )학년 ( )반 ( )번 이름( ) 활동일

평가 영역 평가 항목 잘

함 보 통

미 흡

창의적 설계

내가 원하는 이미지를 시각적으로 프로그래밍 할 수 있는가?

내가 원하는 동적인 움직임을 시각적으로 프로그래밍 할 수 있는가?

재귀, 사상, 각, 회전, 행렬의 수학적 개념을 프로그래밍 할 수 있는 다 른 주제를 찾을 수 있는가?

완성된 프랙탈 트리를 자신만의 생각으로 변형시킬 수 있는가?

몬테카를로 방법을 적용하여 프로그래밍 할 수 있는 다른 예를 탐색할 수 있는가?

감성적 체험

즐거운 마음으로 프로그래밍 활동에 참여하였는가?

자신의 생각(아이디어)을 구현한 프로그램에 자긍심을 갖고 있는가?

프로그램 발표 및 공유 시간에 친구들의 설명을 경청하며 들었는가?

활동을 하면서 느꼈던 좋은 점과 더 노력해야 할 점을 적어보세요.

참조

관련 문서

이를 처음으로 명쾌하게 설명한 사람은 독일의 본대학교의 식물학자 빌헬름 바르트로트(Wilhelm Barthlott) 교수였다... 우선

1) 브레인스토밍(Brainstorming) : 학생의 자유발언을 통한 아이디어를 요구하여 발상을 찾아내려는 방법입니다. 많은 경우, 팀의 구성원들은 서로

학생 들이 프로그램을 진행하는 전 과정을 통해 다양한 교과 지식과 기술, 경험 등을 융합적으로 활용할 수 있는 능력을 기르고, 개인위생 관리의 중요성을

셋째, 경남영재교육연구회 프로그램 개발위원 역량을 강화하기 위하여 ‘정규교육과정과 연계한 재능계발 탐색 예비 영재교육 프로그램 평가방안 및 아이톡톡을 활용한

학생 태도 조사는 설문조사로 진행하기 때문에 아무래도 많은 모집단이 필요하 여 수혜 학생 전체를 학생 태도 조사 대상으로 선정하였으며, 수강 인원의 50%

STEAM 수업 시간에 우리나라의 기후 변화에 대해 서로 탐구한 내용을 소그룹 발표를 통해 공유하면서 기후 변화에 대해 다양한 관점과 폭 넓은 지식을 쌓을 수 있었다.

미래의 요리에 대한 동영상을 보고 모둠별 토의를 통해 미래의 요리가 나아가야 할 방향 에 대한 내용을 보고서로 작성하였고 캐비어와 망고누들 만들기를 통해

STEAM 교육을 받은 수혜 학생들 만족도 조사에서 만족도 상의 비율이 매우 높게 나타났 으며, STEAM 수업을 통해 팀원 간의 협력과 지구를 지키려는 의지를 배우게 되었다고 답