2017. 10. 27~29
청주 사직초등학교 교사
전 용 주
시뮬레이션
(Simulation)
시뮬레이션의 이해
시뮬레이션의 개념
시뮬레이션과 관련된 개념
시뮬레이션의 응용
시뮬레이션 활용 사례
시뮬레이션 응용 실습
소프트웨어 담당교원 전문연수
청주 사직초등학교 교사
전 용 주
시뮬레이션의
이해
padlet.com/yyongju3169/sw_master
선생님의 사례를 나눠주세요
1. 직접 시뮬레이션을 구현한 경험 (타교과 개념설명, 실생활 문제해결 등) 2. SW교육에서 학생들에게 시뮬레이션을 구현하도록 해 본 경험 등
컴퓨터 과학에서 문제란?
연속(continuous)과 이산(discrete)의 차이점?
일반적 의미의 시뮬레이션
시뮬레이션의 어원
- 시뮬라크르: 존재하지 않는 대상을 존재하는 것처럼 만든 인공물 - 시뮬라시옹: 시뮬라크르를 하는 행위
장보드리야르(1981), 시뮬라크르와 시뮬라시옹 ▶
그림 출처: https://books.google.co.kr/books/about/Simulacra_and_Simulation.html?id=9Z9biHaoLZIC&source=kp_cover&redir_esc=y
일반적 의미의 시뮬레이션
‘앨런 튜링’이 사용한 시뮬레이션
- 보편튜링머신이 임의의 튜링머신의 상태 전이 테이블에 있는 명령을 어떻게 실행하는지 확인해보는 과정 - 프로그램을 실행한다 정도로 해석
앨런 튜링 ▶
그림 출처: https://www.pcmag.com/article2/0,2817,2406233,00.asp
일반적 의미의 시뮬레이션
시뮬레이션의 의미
- 실제 세계의 과정이나 시스템을 이를 모사한 모델로 표현하고, 그 모델을 사용해서 시간의 흐름을 반영하여 수행하는 모의실험
그림 출처: http://www.edu8282.co.kr/shop/list.php?ca_id=2090, http://www.labedu.co.kr/shopping/shop_view.asp?RegID=1160&leftMenu=o_01&p_event=&mainC_code=012015
구체적 모델을 활용한 물리적 시뮬레이션 논리적 모델을 활용한 컴퓨터 시뮬레이션
일반적 의미의 시뮬레이션
시뮬레이션을 활용하는 이유?
- 실제 과정이나 시스템이
1. 위험하거나
2. 다룰 수 없거나 (시간, 비용 등의 이유로)
3. 설계 중이지만 아직 구축되지 않았거나
4. 단순히 존재 하지 않는 경우 등
2015 개정 교육과정 상 시뮬레이션
고등학교 정보과학 핵심개념 ‘시뮬레이션’
- 내용체계 상 일반화된 지식 (교재 - 부록 참고)
모의실험을 설계하고 구현하기 위해
근사, 난수, 시각화 등의 방법을 이용한다.
모델(Model)
실생활의 현상, 문제 등의 핵심적 요소/원리를 모형이나 그림, 식, 기호 등으로 표현한 것
- 모델은 추상화의 결과적 형태
- 모델을 통해 문제의 해결 원리, 방법을 단순화 하여 제시
- 모델을 문제 해결 절차인 알고리즘에 적용 할 수 있음
- 비슷한 문제를 해결할 때 도움이 됨
- 추상화하는 관점에 따라 모델이 다양해질 수 있음
모델(Model)
예시 – 색 모델
모델(Model)
추상화의 관점에 따라 달라지는 색 모델
모델(Model)
영국 컴퓨팅 교재(중등 1)에 있는 모델관련 내용
모델(Model)
영국 컴퓨팅 교재(중등 1)에 있는 모델관련 내용
모델(Model)
시뮬레이션 구현 과정에서의 모델의 표현
- 달의 공전 (6학년 과학) 시뮬레이션 구현
시각적 모델 논리적 모델
모델(Model)
시뮬레이션 구현 과정에서의 모델의 표현
- 달의 공전 (6학년 과학) 시뮬레이션 구현
알고리즘
모델(Model)
시뮬레이션 구현 과정에서의 모델의 표현
- 달의 공전 (6학년 과학) 시뮬레이션 구현
시뮬레이션 프로그램
프로그램 공유주소 : https://scratch.mit.edu/projects/179452580/
근사적 계산(Approximate computing)
의미
- 정확한 값을 구할 수 없을 때, 그 값에 가까운 값을 얻어
내기 위한 계산
- 어떤 기준을 만족할 때까지의 반복적인 계산
- 시뮬레이션의 주요한 방법 중 하나임
근사적 계산(Approximate computing)
원주율(6학년 수학)의 근사적 계산1
- 무한 급수에 의한 계산
근사적 계산(Approximate computing)
원주율(6학년 수학)의 근사적 계산1
- 무한 급수에 의한 계산
원주율 계산 시뮬레이션 스크래치 프로그램 (라이프니츠 모델)
프로그램 공유주소 : https://scratch.mit.edu/projects/181839170/
근사적 계산(Approximate computing)
원주율(6학년 수학)의 근사적 계산1
◀ 원주율 계산 시뮬레이션 C 프로그램
(라이프니츠 모델)
난수(Random Number)
의미
- 어떤 패턴 없이 무작위적인 값들을 임의적으로 반환하는 것
- 시뮬레이션에서 임의로 발생하는 사건(event)을 표현하기
위한 방법으로 주로 활용됨
난수(Random Number)
컴퓨터에서는 어떻게 난수를 생성할까?
- 의사랜덤 생성기(pseudorandom number generator, PRNG)
- 의사랜덤 : 랜덤에 유사하게 보이지만, 실제는 아닌 과정
- 의사랜덤 생성기 중 가장 널리 알려진 것은
선형합동생성기(linear congruential generator, LCG)
: 실제 랜덤보다 생성하기 쉽고, 동일한 번호를 생성하기 위해 여러 번 반복적으로 사용될 수 있어서 소프트웨어 테스트 및 수정에 유용하게 활용
난수(Random Number)
선형 합동 생성기
- 다음과 같이 정의된 재귀적 과정에 의해 무작위 수로
이루어진 수열을 반환
난수(Random Number)
선형 합동 생성기
- 윈도우의 경우
초기 시드값 X1 = 1,
m=2^32, a= 214013, c= 2531011을 사용,
계산된 결과에서 가장 왼쪽 비트를 제외한
15개 비트의 값을 사용해 0~32767의 랜덤한 값 반환
- 시드값이 변하지 않는 경우 계속 같은 패턴의 랜덤값 반환
난수(Random Number)
C에서 랜덤함수의 활용
- 시드값이 변하지 않는 경우 계속 같은 패턴의 랜덤값 반환
난수(Random Number)
C에서 랜덤함수의 활용
- 시드값이 변하지 않는 경우 계속 같은 패턴의 랜덤값 반환
난수(Random Number)
난수를 활용한 시뮬레이션
- 몬테카를로 기법을 활용하여 원주율 구하기
난수(Random Number)
랜덤을 활용한 시뮬레이션
프로그램 공유주소 : https://scratch.mit.edu/projects/179976290/
- 몬테카를로 기법을 활용하여 원주율 구하기
난수(Random Number)
랜덤을 활용한 시뮬레이션
- 몬테카를로 기법을 활용하여 원주율 구하기
시각화(Visualization)
의미
- 이미지, 다이어그램, 애니메이션 등의 시각적 방법을 이용해
추상적인 아이디어 등을 표현하고 전달하는 방법
- 실 세계의 현상에서 얻어질 수 있는 데이터들을 모델링하여
프로그래밍 언어, 수학/물리엔진, 저작도구 등을 통해
그래픽으로 구현
시각화(Visualization)
블록기반 프로그래밍 언어를 통한 시각화
- 스크래치, 엔트리 등 블록 프로그래밍 언어는 기본적으로
2D 그래픽을 지원
- 삼각함수 등을 활용한 3차원 좌표 구현을 통해 3D그래픽
표현 가능
프로그램 공유주소 : https://scratch.mit.edu/projects/64517140/
시각화(Visualization)
텍스트기반 프로그래밍 언어를 통한 시각화
- C언어의 경우 리눅스 환경에서 <curses.h>라이브러리 활용
- Java언어의 경우 Swing 패키지, OpenGL 등 활용
C 언어 활용 시각화 Java 언어 활용 시각화
시각화(Visualization)
텍스트기반 프로그래밍 언어를 통한 시각화
- Processing : Java 언어를 기반으로 간단한 문법, 인터페이스
등을 활용하여 2D/3D 애니매이션 구현
시각화(Visualization)
텍스트기반 프로그래밍 언어를 통한 시각화
- vpython: 3D기반의 그래픽 구현 가능
- Javascript: canvas라이브러리를 활용하여, 2D/3D그래픽 구현
vpython 활용 시각화 Javascript 활용 시각화
시각화(Visualization)
Javascript 를 활용한 시각화 맛보기
참고사이트: https://www.w3schools.com/tags/ref_canvas.asp
Intro.
청주 사직초등학교 교사
송 재 철
시뮬레이션의
응용
일반적인 활용 사례
활용 목적
- 실제 상황이나 시스템을 모델링 한 프로그램을 통해
동작 과정이나 원리를 이해하는데 주로 사용
- 경제, 사회, 환경, 과학, 의학, 공학 등 매우
폭넓은 분야에서 활용
- 정보기술의 급속한 발달로 효용성이 증가,
사용자 또한 시뮬레이션 제작자로서 시도를 함
이미지 출처: https://www.osti.gov/home/slideshow_archive.html
일반적인 활용 사례
활용 사례
1. 가상 현실 구현
– 훈련, 실습, 교육, 치료 등
2. 모의 실험
– 행위 예측 및 분석, 평가, 의사결정
교육 분야의 활용 사례
활용 목적
1. 추상적인 개념 또는 실제 환경을 단순한 방식으로
모델링하여 학습자가 주요 개념을 이해하는데 도움이
될 수 있도록 활용
2. 능동적 조작이 가능한 환경 구현
3. 특정 주제의 개념과 원리 탐구 및 발견
교육 분야의 활용 사례
LOGO – 수학적 사고력과 프로그래밍 연계
관련 출처: Papert, S. (2006). Constructionism. In Sawyer, R. K (eds.) The Cambridge handbook of learning science, NY:Cambridge University Press.
교육 분야의 활용 사례
Algodoo – 물리적인 실험 구현
교육 분야의 활용 사례
HTML5, JAVA로 만들어진 시뮬레이션 프로그램
주사위 확률 시뮬레이션-6학년 수학
제작 목적
1. 주사위를 던졌을 때 각 눈이 나올 확률은 실제
1/6일까?
2. 얼마만큼 주사위를 던져야 각 눈의 확률을 확인할
수 있을까?
주사위 확률 시뮬레이션 모델 구성
주사위 확률 시뮬레이션 알고리즘 설계
1. 각 눈이 나온 횟수를 저장할 변수, 나온 비율을 저장할 리스트 만들기
2. 던질 횟수 설정
3. 난수로 주사위 눈 결정
4. 나온 횟수 카운트
5. 던질 횟수 만큼 반복
6. 각 눈의 나온 횟수와 총 던진 횟수 비율 구하고 리스트에 추가하기
달의 위상 변화 - 과학
활용 배경
1. 단순한 사진, 동영상 자료로는 부
족한 부분 보조
2. 직접적인 조작과 즉각적인 상호
작용을 바탕으로 규칙성을 발견
달의 위상 변화 - 과학
제작 과정
자료 수집 및
표현
시각적, 논리
적 모델 구성
알고리즘
설계
시뮬레이션
프로그래밍
달의 위상 변화 - 과학
제작 과정 – 자료 수집 및 표현
달의 위상 변화 - 과학
제작 과정 – 시각적 모델 구성
달의 위상 변화 - 과학
제작 과정 – 논리적 모델 구성
달의 위상 변화 - 과학
알고리즘
사직초등학교 교사
전 용 주, 송 재
철
감사합니다