소프트웨어 비전공자 학생들을 대상으로 프로그램의 동작 원리를 이해하기에 필요한 교육과 자신만의 소규모 프로그램을 개발하는 기회를 제공한다. 프로그래밍 언어로는 Python이라는 인터프리터 방식의 언어를 택하여 학생들이 쉽게 프로그래밍 결과를 확인할 수 있도록 한다. 과목 수강생의 프로그래밍 적응도에 따라 Python언어의 난이도를 선택하여 교육을 진행할 수 있다. 특히, 본 수업을 통해서 아래와 같은 3가지 능력을 키울 수 있다.
첫째, 컴퓨터가 기초 수학에 대한 개념 (정수, 실수, 변수 및 문자)을 이해할 수 있도록 하기 위해서 사용자가 키보드로 어떻게 입력해서 코드화(프로그램화) 해야 하는 지 방법론에 대해서 배울 수 있다.
둘째, 주어진 문제에 대해서 기존의 문제 푸는 방식과 달리 본 수업은 컴퓨터를 이용해서 풀기 위해서 어떤 초기 데이터가 필요하고 데이터가 어떻게 연산 및 처리되어 결과를 산출하게 되는지 방법 및 과정론을 배우게 된다.
셋째, 문제를 효율적으로 풀기 위해서 어떤 순서대로 생각(Computational Thinking)을 해야하는지 배울 수 있다
1) 과목에서 지정하는 인터프리터 프로그래밍 언어를 이해할 수 있다
2) 인터프리터 프로그래밍 언어를 기반으로 변수 선언, 연산, 리스트, 조건문, 반복, 함수 등 프로그램 구성 요소를 이해할 수 있고 간단한 기능을 구현할 수 있다
3) 주어진 예제 프로그램을 이해할 수 있고 이를 변형하여 문제 해결에 적용할 수 있다
4) 주어진 문제를 해결하기 위한 자신의 알고리즘을 순차적으로 논리적으로 명확하게 기술할 수 있다
5) 자신이 고안한 알고리즘을 인터프리터 프로그래밍 언어를 사용하여 프로그램으로 구현할 수 있다
6) 프로그램 구현에 필요한 라이브러리를 탐색하고 선별하여 적용할 수 있다
1) 예제를 기반으로 실습을 위주로 진행한다
2) 프로그래밍 언어를 이해하는 것보다는 프로그램 개발에 대한 이해를 도모하는 과목이므로 첫 2주는 프로그램의 동작 원리, 프로그램의 구성 요소 등에 대해 학습한다
3) 중간고사 이전까지는 변수 선언, 연산, 리스트, 조건문, 반복, 함수 등 프로그램 구성 요소를 예제를 기반으로 학습한다
4) 중간고사 이후에는 라이브러리를 활용하여 매 주 한 가지 문제를 해결하는 프로그램을 개발한다. (수강 학생들의 전공 배경에 따라 문제 및 활용 라이브러리를 다변화할 수 있다)
5) 예제 코드를 중심으로 진행하여 좋은 프로그램 사례를 접할 수 있도록 하고, 코드 작성 뿐만 아니라 코드를 해석하는 능력도 함께 배양한다
[최종 수정일: 2018.4.3]