27
InC Lab. Dept. Computer Science Education, Korea Univ. 피피피피피 피피피 피피 피피피피피 피피 피피 피피 피피 피피피피피 피피피피피피피 피피피피 피피피 2014 피 피피피피피피피피피 피피 피피피피

피지컬 컴퓨팅 교육을 위한 프로그래밍 언어 활용 방안 연구

Embed Size (px)

DESCRIPTION

2014 한국컴퓨터교육학회 하계 학술대회 발표자료 2014.8.12. 장윤재

Citation preview

Page 1: 피지컬 컴퓨팅 교육을 위한 프로그래밍 언어 활용 방안 연구

InC Lab. Dept. Computer Science Education, Korea Univ.

피지컬 컴퓨팅 교육을 위한 프로그래밍 언어 활용 방안 연구

고려대학교 컴퓨터교육학과박사수료 장윤재

2014 년 한국컴퓨터교육학회 하계 학술대회

Page 2: 피지컬 컴퓨팅 교육을 위한 프로그래밍 언어 활용 방안 연구

InC Lab. Dept. Computer Science Education, Korea Univ.InC Lab. Dept. Computer Science Education, Korea Univ.

1. 서론2. 이론적 배경

1. 피지컬 컴퓨팅과 로보틱스2. 교육용 프로그래밍 언어 환경 분석 요소3. 피지컬 컴퓨팅 교육을 위한 프로그래밍 환경

3. 연구방법 및 절차4. 연구결과

1. 분석 요소 선정2. 프로그래밍 언어 분석 결과

5. 결론 및 제언

목차

Page 3: 피지컬 컴퓨팅 교육을 위한 프로그래밍 언어 활용 방안 연구

InC Lab. Dept. Computer Science Education, Korea Univ.InC Lab. Dept. Computer Science Education, Korea Univ.

• Maker Movement, IoT(Internet of Things), 3D Printer 등 누구나 아이디어만 있으면 쉽게 자신의 프로젝트를 만들어 볼 수 있는 환경 조성

서론

http://www.businessweek.com/articles/2012-02-16/the-diy-maker-movement-meets-the-vcshttp://www.mcgrawhillprofessionalbusinessblog.com/2014/03/07/the-maker-movement-is-changing-the-world/http://www.control4.com/blog/2014/03/the-internet-of-things-and-the-connected-home

Page 4: 피지컬 컴퓨팅 교육을 위한 프로그래밍 언어 활용 방안 연구

InC Lab. Dept. Computer Science Education, Korea Univ.InC Lab. Dept. Computer Science Education, Korea Univ.

• 피지컬 컴퓨팅 (Physical Computing)– ICT 를 활용하여 컴퓨터와 인간과의 상호작용하기 위한

분야로 시작– 특히 , 비교적 저렴하면서 강력한 성능과 오픈소스 문화를

바탕으로 한 폭 넓은 커뮤니티와 풍부한 레퍼런스를 무 장 으 로 한 아 두 이 노 (Arduino) 라 는 오 픈 소 스 하드웨어가 등장하면서 폭발적으로 성장

– 피지컬 컴퓨팅은 다양한 입력 센서 및 출력 부품을 통해 흥 미 로 운 작 품 을 손 쉽 게 만 들 수 있 어 일 반 인 이 나 학생들이 쉽게 배울 수 있는 장점

– 미 디 어 아 트 , 컴 퓨 터 교 육 에 서 도 학 생 들 의 흥 미 와 창의성을 위한 교육 주제로 선정하여 연구가 진행중임 .

서론

http://en.wikipedia.org/wiki/Arduino

Page 5: 피지컬 컴퓨팅 교육을 위한 프로그래밍 언어 활용 방안 연구

InC Lab. Dept. Computer Science Education, Korea Univ.InC Lab. Dept. Computer Science Education, Korea Univ.

• 그 러 나 , 아 두 이 노 와 같 은 피 지 컬 보 드 를 다 루 기 위해서는 범용적인 프로그래밍 언어 ( 대표적으로 C 언어 ) 를 사용해야 함 .

• 비 개발자나 초보 학습자에게는 여전히 사용하기 어려움• 특히 피지컬 컴퓨팅을 통한 실생활 중심의 흥미로운

문제해결 학습으로서는 , 프로그래밍 지식과 함께 하드웨어 , 전자회로 등에 대한 이해도 필요하기 때문

서론

http://www.ktechno.co.kr/embedded/embedded01.html

Page 6: 피지컬 컴퓨팅 교육을 위한 프로그래밍 언어 활용 방안 연구

InC Lab. Dept. Computer Science Education, Korea Univ.InC Lab. Dept. Computer Science Education, Korea Univ.

• 최근에는 교육용 프로그래밍 언어에서 아두이노와 같은 하드웨어를 제어할 수 있는 환경이 개발되고 있음 .

• 초기 단계이기 때문에 교사가 적절한 도구를 선택하는데 필요한 정보가 부족한 실정임 .

• 교 육 의 3 요 소 는 교 사 , 학 생 , 교 육 내 용 이 며 , 프로그래밍 교육을 위한 적절한 교육내용을 선정하기 위해서는 교육 도구의 특성을 이해해야 한다 .

서론

http://blog.yengawa.com/archives/25

Page 7: 피지컬 컴퓨팅 교육을 위한 프로그래밍 언어 활용 방안 연구

InC Lab. Dept. Computer Science Education, Korea Univ.InC Lab. Dept. Computer Science Education, Korea Univ.

• 본 연구의 목적– 피지컬 컴퓨팅을 통한 프로그래밍 교육에서 활용할 수

있는 프로그래밍 언어의 특성을 분석하여 교육적 활용 방안 제안

• 본 연구의 기대점– 본 연구를 통해 피지컬 컴퓨팅을 배우고자 하는

학습자에게 프로그래밍 언어의 선택 기준을 제시할 수 있으며 , 피지컬 컴퓨팅 학습을 위한 프로그래밍 언어의 필수 요소를 제시할 수 있음 .

서론

Page 8: 피지컬 컴퓨팅 교육을 위한 프로그래밍 언어 활용 방안 연구

InC Lab. Dept. Computer Science Education, Korea Univ.InC Lab. Dept. Computer Science Education, Korea Univ.

• 피지컬 컴퓨팅 (Physical Computing)

– ICT 를 활용하여 인간으로 부터 물리적인 형태로 정보를 입력받아 처리한 결과를 물리적인 형태로 출력하여 인간 또는 환경과 상호작용하는 컴퓨팅

이론적 배경 – 피지컬 컴퓨팅

CircuitMicrocontroll

er ComputerWired / Wireless

Communication

Programming

Sensors

Actuators

Page 9: 피지컬 컴퓨팅 교육을 위한 프로그래밍 언어 활용 방안 연구

InC Lab. Dept. Computer Science Education, Korea Univ.InC Lab. Dept. Computer Science Education, Korea Univ.

• 피지컬 컴퓨팅 vs 로보틱스– 로보틱스 (Robotics) 는 로봇의 설계 , 구성 , 제어 ,

응용을 다루는 기술의 한 분야이며 , 이를 제어 , 피드백 , 정보 처리를 위한 컴퓨터 시스템과 관련된 분야

– 로보틱스는 자동화 (autonomous) 에 초점– 피 지 컬 컴 퓨 팅 은 사 람 과 의 인 터 랙 티 브

(interactive) 에 더 중점– 즉 , 로보틱스는 어떻게 해야 인간처럼 스스로 움직일

수 있는지 , 인간의 두뇌와 유사한 컴퓨터 뇌를 구성할지를 탐구한다면 , 피지컬 컴퓨팅은 인간 또는 환경과의 상호작용과 그 확장에 대한 탐구에 초점

이론적 배경 – 피지컬 컴퓨팅

Page 10: 피지컬 컴퓨팅 교육을 위한 프로그래밍 언어 활용 방안 연구

InC Lab. Dept. Computer Science Education, Korea Univ.InC Lab. Dept. Computer Science Education, Korea Univ.

• 위키피디아의 교육용 프로그래밍 언어 분류– 학습경로 (learning path)

• Assembly language, BASIC, C, Java-based, Lisp-based, Scala-based, Smalltalk-based, Other

– 대상• Children, University

– 학년 (US educational level)– 대략적 사용나이 (Approximate Age)– 경험수준 (Experience level)– 활용 가능한 언어 (Appropriate languages)

이론적 배경 – EPL 환경 분석 요소

Page 11: 피지컬 컴퓨팅 교육을 위한 프로그래밍 언어 활용 방안 연구

InC Lab. Dept. Computer Science Education, Korea Univ.InC Lab. Dept. Computer Science Education, Korea Univ.

• 김수환 외 (2009) 는 26 개의 교육용 프로그래밍 언어 분석– 언어별 특징

• 수준 , 적용교과 , 상용 / 공용 , 사용환경 , 사용언어– 교육요소

• 문제표현 ( 그림 , 기호 , 코드 ), 문제설계 , 변수 ( 텍스트 ,숫자 ), 텍스트입출력 ( 입력 , 출력 ), 제어문 ( 조건문 ,유한반복문 ), 알고리즘 구현 , 배열 , 정렬구현 , 탐색구현 , 시뮬레이션 / 애니메이션

이론적 배경 – EPL 환경 분석 요소

Page 12: 피지컬 컴퓨팅 교육을 위한 프로그래밍 언어 활용 방안 연구

InC Lab. Dept. Computer Science Education, Korea Univ.InC Lab. Dept. Computer Science Education, Korea Univ.

• 신수범 (2014) 은 교육용 프로그래밍 언어의 선택요소로 3 개의 영역 , 9 개의 핵심 요소로 선정– 컴퓨터과학 연계성

• 컴퓨터과학 개념 학습 가능 언어 , 컴퓨터과학 개념의 추상화 언어 , 프로그래밍 언어로 전이능력

– 명확하고 강력한 명령어• 단순한 명령어 구조 , 강력한 명령어 기능

– 편리한 개발환경• 편리한 피드백 도구 , 멀티미디어 컨텐츠 수준 , 사용자 친화적 개발 환경

이론적 배경 – EPL 환경 분석 요소

Page 13: 피지컬 컴퓨팅 교육을 위한 프로그래밍 언어 활용 방안 연구

InC Lab. Dept. Computer Science Education, Korea Univ.InC Lab. Dept. Computer Science Education, Korea Univ.

• O'Sullivan, D 와 Igoe, T.(2004) 는 피지컬 컴퓨팅을 입력 , 처리 , 출력으로 구분– 이 중에서 입력과 출력을 디지털과 아날로그 방식으로 세분화하여 형태를 구분

• 교육용 프로그래밍 언어 환경 및 피지컬 컴퓨팅을 분류한 요소 종합– 기능적 영역

• 상용여부 , 실행환경 ( 설치형 / 비설치형 ), 지원되는 보드 , 보드연결방식 , 명령어 지원 단계를 포함한다 .

– 교육적 영역 • 교육적 영역에는 코딩방식 , 프로그래밍 난이도 , 학습

커뮤니티 규모 , 피지컬 보드 입출력 형태를 포함

이론적 배경 – EPL 환경 분석 요소

Page 14: 피지컬 컴퓨팅 교육을 위한 프로그래밍 언어 활용 방안 연구

InC Lab. Dept. Computer Science Education, Korea Univ.InC Lab. Dept. Computer Science Education, Korea Univ.

• 아두이노 (Arduino) IDE– 아두이노 보드 제어– 텍스트 기반이며 C 와

유사한 형태의 문법과 명령어로 코드 작성

– 디 지털 및 아날로 그 입 출 력 이 가 능 하 며 다양한 라이브러리를 통 해 범 용 언 어 로 의 확장이 용이

이론적 배경 – 피지컬 컴퓨팅 교육을 위한 EPL 환경

Page 15: 피지컬 컴퓨팅 교육을 위한 프로그래밍 언어 활용 방안 연구

InC Lab. Dept. Computer Science Education, Korea Univ.InC Lab. Dept. Computer Science Education, Korea Univ.

• Amici– 독 일 에 서 개 발 한

그 래픽 인 터페이 스 형태의 아두이노 보드 제어 환경

– 블록 형태로 아두이노 제어 코드를 작성하면 자 동 으 로 아 두 이 노 코드로 변환

– 코 드 는 블록 형 태 와 텍 스 트 형 태 를 모두 살펴볼 수 있음

이론적 배경 – 피지컬 컴퓨팅 교육을 위한 EPL 환경

Page 16: 피지컬 컴퓨팅 교육을 위한 프로그래밍 언어 활용 방안 연구

InC Lab. Dept. Computer Science Education, Korea Univ.InC Lab. Dept. Computer Science Education, Korea Univ.

• Scratch– MIT Media Lab

에서 만든 교육용 프로그래밍 언어

– 스 크 래 치 2.0 버전에서는 Ex-tension 기 능 을 통해 Picoboard를 연 결 하 여 사 용 할 수 있 으며 , 센서별 값을 확인

이론적 배경 – 피지컬 컴퓨팅 교육을 위한 EPL 환경

Page 17: 피지컬 컴퓨팅 교육을 위한 프로그래밍 언어 활용 방안 연구

InC Lab. Dept. Computer Science Education, Korea Univ.InC Lab. Dept. Computer Science Education, Korea Univ.

• S4A (Scratch for Ar-duino)– Scratch 1.4 버전 에

아 두 이 노 보 드 를 연 결 하 여 사 용 할 수 있도록 개발된 환경

– 아 두 이 노 보 드 에 서 지원하 는 디 지털 , 아날로그 입출력 값을 모두 제어

이론적 배경 – 피지컬 컴퓨팅 교육을 위한 EPL 환경

Page 18: 피지컬 컴퓨팅 교육을 위한 프로그래밍 언어 활용 방안 연구

InC Lab. Dept. Computer Science Education, Korea Univ.InC Lab. Dept. Computer Science Education, Korea Univ.

• S2A (Snap for Arduino)– 버클리대학에서 개발한 웹 기 반 교 육 용 프 로 그 래 밍 언 어 인 Snap 에 아 두 이 노 보 드 를 제 어 할 수 있도록 개발된 환경

– S4A 보 다 더 다 양 한 제어 명령어 제공

– 사 용 자 블 록 정 의 기 능 을 이 용 하 여 다 양 하 게 추 상 화 된 명령어 제작 가능

이론적 배경 – 피지컬 컴퓨팅 교육을 위한 EPL 환경

Page 19: 피지컬 컴퓨팅 교육을 위한 프로그래밍 언어 활용 방안 연구

InC Lab. Dept. Computer Science Education, Korea Univ.InC Lab. Dept. Computer Science Education, Korea Univ.

• Physical Etoys– 이 토 이 상 에 서

아 두 이 노 보 드 제 어 환경

– 아두이노 보드에 연결 가능한 다양한 부품들 객체로 제공

– 디 지털 및 아날로 그 입출력이 모두 가능

이론적 배경 – 피지컬 컴퓨팅 교육을 위한 EPL 환경

Page 20: 피지컬 컴퓨팅 교육을 위한 프로그래밍 언어 활용 방안 연구

InC Lab. Dept. Computer Science Education, Korea Univ.InC Lab. Dept. Computer Science Education, Korea Univ.

• Picoblock– 스크래치와 유 사 한

형 태 인 블럭 조립을 통 해 프 로 그 래 밍 을 하 며 Picoboard 를 제어하기 위한 환경

이론적 배경 – 피지컬 컴퓨팅 교육을 위한 EPL 환경

Page 21: 피지컬 컴퓨팅 교육을 위한 프로그래밍 언어 활용 방안 연구

InC Lab. Dept. Computer Science Education, Korea Univ.InC Lab. Dept. Computer Science Education, Korea Univ.

• 첫째 , 문헌연구를 통해 피지컬 컴퓨팅 교육을 위한 프로그래밍 환경에 요구되는 요소를 추출

• 둘째 , 전문가 및 연구진의 평가를 통해 요소 선정– 피지컬 컴퓨팅 및 프로그래밍 교육 경험이 있는

전문가 5 명을 대상으로 세미 델파이 통한 요소 선정• 셋째 , 선정된 요소를 바탕으로 피지컬 컴퓨팅 교육을

위한 프로그래밍 언어 분석• 넷째 , 분석된 결과를 토대로 결론 및 시사점 제안

연구방법 및 절차

Page 22: 피지컬 컴퓨팅 교육을 위한 프로그래밍 언어 활용 방안 연구

InC Lab. Dept. Computer Science Education, Korea Univ.InC Lab. Dept. Computer Science Education, Korea Univ.

• 피 지 컬 컴 퓨 팅 교 육 을 위한 프로그래밍 환경을 분석하기 위한 – 항목별 중요성을 5 점

리 커 트 척도 로 하 여 응답 받았으며 ,

– 평균 3 점 ( 보통이다 ) 이상인 항목만 선택

연구결과 – 분석 요소 선정

항 목중요성

평균

채택

여부

상용 여부 3.6 O

실행환경 ( 설치형 ) 4.4 O

실행환경 ( 비설치형 ) 3.8 O

지원되는 피지컬 보드 4.6 O

피드백 제공여부 3.6 O

지원되는 입출력 형태 4.0 O

피지컬 보드 연결방식 3.6 O

프로그래밍 스타일 3.6 O

프로그램 코딩방식 4.4 O

프로그래밍 난이도 4.2 O

학습 커뮤니티 규모 2.8 X

명령어 지원 수준 4.0 O

Page 23: 피지컬 컴퓨팅 교육을 위한 프로그래밍 언어 활용 방안 연구

InC Lab. Dept. Computer Science Education, Korea Univ.InC Lab. Dept. Computer Science Education, Korea Univ.

연구결과 – 분석 요소 선정

항 목 분 류

기능

영역

상용여부 유료 / 무료

실행환경 ( 설치형 ) win/linux/mac/...

실행환경 ( 비설치형 ) web/flash/ 기타

지원되는 보드 Arduino/Picoboard/...

보드연결방식 자동 / 수동

명령어 지원 단계 단순제어 / 확장가능

한글화 여부 지원 / 미지원

교육

영역

프로그래밍 스타일 객체지향 /객체기반 / 절차형 / 함수형 / 이벤트형 / 기타

코딩방식 텍스트 / 비쥬얼 (블럭조립 )/혼합 / 기타

프로그래밍난이도 초등 / 중등 / 고등

피지컬 보드 입출력 지원 디지털입출력 / 아날로그입출력 /모두

프로젝트 웹 공유 여부 지원 / 미지원

범용언어로의 확장성 여부 C/JAVA/...

구현 가능한 결과물 형태 피지컬컴퓨팅 / 게임 / 애니메이션 / 시뮬레이션 / 기타

피드백 도구 여부 지원 / 미지원

Page 24: 피지컬 컴퓨팅 교육을 위한 프로그래밍 언어 활용 방안 연구

InC Lab. Dept. Computer Science Education, Korea Univ.InC Lab. Dept. Computer Science Education, Korea Univ.

연구결과 – 프로그래밍 언어 분석 결과

프로그래밍 언어 항 목

Scratch 2.0

extensionS4A S2A

Physical

EtoysPicoblock Amici Arduino

기능

영역

상용여부 무료 무료 무료 무료 무료 무료 무료

실행환경 ( 설치형 ) win/linux/macwin/linux/

mac/androidwin/linux/mac win/linux win/mac win/mac

win/linux/

mac/android

실행환경 ( 비설치형 ) flash - - - - - -

지원되는 보드 picoboard arduino arduino arduino arduino arduino arduino

보드연결방식 자동 수동 수동 수동 수동 수동 수동

명령어 지원 단계 단순제어 확장가능 확장가능 단순제어 단순제어 단순제어 확장가능

한글화 지원 지원 미지원 미지원 미지원 미지원 미지원 미지원

교육

영역

프로그래밍 스타일 객체기반 객체기반 객체기반 객체기반 객체기반 절차형 절차형

코딩방식 블럭조립 블럭조립 블럭조립 블럭조립 블럭조립 블럭조립 텍스트

프로그래밍난이도 초등 중등 중등 중등 초등 중등 중등

피지컬 보드 입출력 지원디지털입출력 /

아날로그입력디지털 모두

디지털입출

력 /

아날로그입력

모두 모두 모두

프로젝트 웹 공유 여부 지원 미지원 미지원 미지원 미지원 미지원 미지원

범용언어로의 확장 여부 - - - - - C C

구현 가능한 결과물 형태

피지컬컴퓨팅 /

게임 / 애니메이션

/ 시뮬레이션

피지컬컴퓨

팅 / 게임 /

애니메이션 /

시뮬레이션

피지컬컴퓨

팅 / 게임 /

애니메이션 /

시뮬레이션

피지컬컴퓨

팅 / 게임 /

애니메이션 /

시뮬레이션

피지컬컴퓨

팅 / 게임

피지컬컴퓨팅

/ 게임

피지컬컴퓨팅

/ 게임

피드백 도구 여부 미지원 미지원 미지원 미지원 미지원 미지원 미지원

(- 는 해당사항 없음을 의미함 )

Page 25: 피지컬 컴퓨팅 교육을 위한 프로그래밍 언어 활용 방안 연구

InC Lab. Dept. Computer Science Education, Korea Univ.InC Lab. Dept. Computer Science Education, Korea Univ.

• 피지컬 컴퓨팅 환경은 좋은 프로그래밍 교육 환경이자 방법– 피지컬 컴퓨팅 기술은 오픈소스화 , 손쉬운 사용성 ,

메이커 문화와 접목되면서 폭발적으로 성장하고 있음– 그러나 현재 개발중인 다양한 도구들을 프로그래밍

교육에 바로 적용하기에는 교사들의 준비 및 교육 효과 검증이 필요함

– 따라서 본 연구에서 제안한 피지컬 컴퓨팅 교육을 위한 프로그래밍 환경의 분석 결과는 피지컬 컴퓨팅 교육을 준비하는 교사들에게 도움이 될 것이다 .

결론 및 제언

Page 26: 피지컬 컴퓨팅 교육을 위한 프로그래밍 언어 활용 방안 연구

InC Lab. Dept. Computer Science Education, Korea Univ.InC Lab. Dept. Computer Science Education, Korea Univ.

• 향후 과제– 첫째 , 한글화 작업이 필요– 둘째 , 다양한 교육 적용 사례가 필요– 셋째 , 교육적 효과성 검증이 필요

결론 및 제언

Page 27: 피지컬 컴퓨팅 교육을 위한 프로그래밍 언어 활용 방안 연구

InC Lab. Dept. Computer Science Education, Korea Univ.

QNA감사합니다 .