1. 인문역량 SW 교육 추진방향

SW 교육 목표

지능정보사회 대비 SW 긍정인식 확산, 인문학적 상상력을 발현하는

컴퓨팅 사고력 향상을 위한 창의·융합형 인재 양성

중점추진방향

□ 창의·융합형 소프트웨어 교육 체계 마련

□ 인문학적 상상력을 발현하는 컴퓨팅 사고력 향상을 위한 SW 교육

□ 지속가능한 융합형 인재 방안 마련

중점추진내용

추진과제		세부내용
창의·융합형 소프트웨어 교육 체계 마련		▪유관 기관과 연계한 강사 발굴 및 강사 역량 강화 ▪SW 관련 진로 체험 기회 제공 및 제4차 산업혁명 대비 창의·융합형 인재 양성 ▪인문학적 상상력을 해결할 수 있는 컴퓨팅 사고능력을 증진 시킬 수 있는 커리큘럼 개발
인문학적 상상력을 발현하는 컴퓨팅 사고력 향상을 위한 SW 교육		▪전문가 참여하는 학교 교육과정 연계 컴퓨팅 SW교육 콘텐츠 개발 ▪인문학적 상상력을 해결할 수 있는 컴퓨팅 사고능력을 증진 시킬 수 있는 교육 ▪절차적·논리적 사고과정 증진
지속가능한 융합형 인재 방안 마련		▪매해 지속될 수 있는 컴퓨팅 SW 교육 방안 구축 ▪컴퓨팅 능력 향상 지원 ▪SW교육 품질 강화를 위한 자체 모니터링, 분석, 평가를 통한 개선 운영

프로그래밍 언어(JAVA) 기초교육

차시	영역	교 육 내 용
1	창의·융합형 SW 교육 필요성	- 4차 산업 혁명에 우리는 무엇을 준비해야하는가? - 과학컴퓨팅 SW 교육의 필요성 - SW에 대한 이해 - 생활 속 SW 알아보기
2	절차적·논리적 사고과정(알고리즘) 이해와 표현하기	- 절차적·논리적 사고과정(알고리즘) 이해 - 문제 분석시 절차적·논리적 발현하는 방법 탐구 – 언플러그활동을 통해 프로그램의 기초 개념을 이해 - 절차적·논리적 사고과정을 통한 문제 해결 표현방법 알아보기 - Pseudo Programming과 flowchart 다루기
3	소프트웨어 개발환경 이해하기	- SW만드는 과정에 대한 이해 - 프로그래밍 언어(JAVA, C, R 등)가 왜 필요하지? - SW 개발환경인 통합개발환경(IDE)에 대한 이해 - JAVA 개발 도구 설치하기(JDK 설치) - JAVA 통합개발환경 설치하기(Eclipse)
4-6	소프트웨어란?(순차)	문제 : 두수를 더하는 프로그램 작성하기 - 소프트웨어 제작의 과정에 대한 이해 - 문제 분석 및 알고리즘 작성하기 - 알고리즘을 구현하는 방법 이해하기 - 데이터 저장에 필요한 변수 이해하기 - 컴파일과 디버깅에 대한 이해하기
7-9	소프트웨어 제작하기 (선택, 반복)	문제 : 우리집에 도어락은 어떻게 문을 열어주지? - 소프트웨어 제작의 과정에 대한 이해(선택) - 선택 알고리즘을 구현하는 방법 이해하기 - 선택 상황은 언제 발생하는가 문제 : ATM 단말기 어떻게 동작하지? - 소프트웨어 제작의 과정에 대한 이해(반복) - 문제로부터 반복이라는 것을 어떻게 찾아내지 - 패턴에 대한 이해(반복의 규칙성 발견하기)
10-12	소프트웨어 제작하기 (반복과 배열)	문제 : 1부터 n까지 합계내기 - 소프트웨어 제작의 과정에 대한 이해(반복) - 반복 패턴 발견하기(창의성) - 알고리즘의 복잡도 이해하기(더 쉽게 해결하는 방법은 뭐지-수학의 필요성에 대한 인지하기) - 반복 알고리즘을 표현 방법 이해하기 - 반복 알고리즘을 구현하는 방법 이해하기 문제 : n개의 자료를 합계내기 - 앞선 문제와의 차이점 이해하기 - 복잡한 자료의 필요성 이해하기 : 배열 이해하기 - 배열과 반복과의 관계 이해하기 - 배열 구현하는 방법 이해하기 - 배열을 반복을 이용할 때 각 요소를 어떻게 다루는지 이해하기
13-14	큰 문제를 작은 문제로 나누기 (함수 이해하기)	문제 : n개의 자료를 합계내기 - 복잡한 SW를 만드는 원리에 대한 이해 - 큰 문제를 작은 문제로 나누어 해결을 왜 하지(분할 정복에 대한 이해) - 합계내기를 내가 하지 않고 다른 사람이 할 수 있다면? - 작은 문제를 구현에서는 어떻게 표현하지?-함수에 대한 이해 - 너무 큰문제는 어떻게 표현하지? - 클래스에 대한 기초 해하기
15	교육 공유 및 성찰	- JAVA SW 교육 결과물 공유 - JAVA SW 교육 성찰 - JAVA는 학교 교과목의 어떤 것과 연계되어 있는가? 다른 프로그래밍 언어는 어떻게 받아들여야 하는가?