서문

일상의 문제를 소프트웨어로 해결하기 위한 프로그래밍 과정은 다음과 같이 정리할 수 있다.

  1. 문제를 정확하게 이해하고 분석하고 (문제 이해 및 분석)
  2. 문제에 핵심 요소를 추출하고, 추출된 요소로 문제를 재정의하고 (추상화와 모델링)
  3. 문제 해결을 위한 방법과 절차 (알고리즘)을 고안한다.
  4. 고안된 방법과 절차대로 컴퓨터가 일을 수행할 수 있도록 프로그램을 작성하고(소스 프로그램 작성) 결과가 정확한가를 확인한다(자동화).
  5. 만약 그 결과가 올바르지 않으면 전 단계 어디에서 무엇이 잘 못 되었는지를 탐색하여 오류를 수정한다.
  6. (디버깅) 목적했던 프로그램이 완성될 때까지 나머지 단계를 반복한다.

이런 이련의 과정을 수행할 수 있는 능력을 컴퓨팅 사고력(CT : Computational Thinking)이라고 할 수 있다.

CT 능력은 학습 능력과 문제 해결 능력과도 매우 깊은 연관이 있다. 무엇인가를 학습하기 위해서는 그 문제에 대한 이해와 분석이 선행되어야 하며, 그 후 그 문제를 풀거나 경험해 보아야 한다. 학습 이후에는 무엇을 알고 무엇을 모르는지에 대한 평가 후 모르거나 부족한 부분에 대한 재학습과 오개념에 대한 수정이 있어야 한다. 이렇듯 무엇인가를 학습 과정과 프로그래밍의 과정은 매우 유사하며 이러한 이유로 최근 SW 프로그래밍 교육과 학습이 전 세계적으로 화두가 되고 있는 듯 하다. 

우리는 종종 문과계열의 사람들과 이공계열 사람들간의 특성을 우스개 소리로 이야기한다. 문과 계열 사람들은 생각과 말은 많으나 실제 일을 실행하는 능력이 떨어진다라고 한다. 반면 이공계열 사람들은 실행력은 좋은데 통합적 분석 능력과 깊은 사고 능력이 떨어진다고 한다. 하지만 무한 경쟁 시대를 살아가는 요즘은 이공계열의 특징과 문과계열의 특징 모두를 가지는 것이 매우 중요하다. 사회에서 경쟁력을 갖고 리더가 되기 위해서는 말만 많이 앞서고 실행능력이 없어서도 안 될 것이고, 앞뒤를 가리지 않고 직접 일을 실행하는 일도 있어서는 안될 것이다. 본서는 단순히 프로그램을 배우거나 빅데이터 처리 기술을 배우기 위한 책이 아니다. 오히려 우리가 학습과 직업 현장에서 날마다 부딪치는 '문제'를 논리적으로 또 계산적으로 해결할 수 있는 방법을 배우는 것이라 할 수 있다.

본서는 크게 세부분으로 나눌 수 있다. 책의 앞부분은 논리적 체계적으로 문제를 이해하고 분석하는 사고력에 대해서 다룬다. 다음은 문제 해결을 위한 알고리즘을 개발하고 개발된 알고리즘을 누구나 쉽게 프로그램을 개발할 수 있는 블록형 언어를 이용하여 구현하는 실행력을 다룬다. 마지막은 파이썬을 이용하여 우리 삶 속에서의 빅데이터를 분석하는 프로그램을 구현해봄으로써 배운 내용에 대한 통합과 전이능력을 다룬다. 이러한 내용을 책 한권에서 다루는 것은 다소 도전적이며 목적을 성취하기가 쉽지는 않은 것이다. 하지만 단편적이고 파편화되어 있는 우리들의 문제를 해결 능력과 사고력을 분석적이고 통합적이며 또 CT능력을 바탕으로 한 실행력을 갖추는데 기여했으면 하는 바이다. 이제 우리는 이것도 해야하지만 저것도 하지 않으면 안되는 융합과 통섭의 시대에 살고 있기 때문이다.

본서는 Virginia Tech 공대 컴퓨터학과에서 비전공자들을 위한 CT교육을 하기위해 개발된 자료를 바탕으로 번역하고 새로 필요한 부분을 변형하여 내용을 추가해서 만들어진 자료이다.

본 자료를 만든 Virginia Tech의 Dennis Kafura교수와 다른 동료 교수들에게 감사의 뜻을 표한다.

 

2016년 2월 19일 저자 임희석

크리에이티브 커먼즈 라이선스이 저작물은 크리에이티브 커먼즈 저작자표시-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.

 

 

 learning2 conversation2 complete

 대규모의 학습자들이

학습 할 수 있는 Online Textbook

Community를 통한 자연스러운 

질의 응답 및 의사소통 & SNS

 학습자들의 출석현황을

통해 필요시 알람 및 동기부여 제공

 

 자기 주도적 학습 visualization

 Textbook과 적절한 Online

실습 환경을 통한 자기주도적 학습 가능

학습자 별 동기부여 및

학습 현황 시각화

 

 

MOOTMassive Open Online Textbook의 약자로 대규모 사용자를 대상으로 제공하는 온라인 교과서이다.

MOOT에서 제공하는 학습활동은 학습자의 출석현황, 기간내 출석하지 않았을 시 메일로 알람, Quiz를 통한 학습여부 확인, SNS를 통한 자유로운 질의 응답과 대화, 시각화된 동기부여, 진단평가 등을 통해 학습에 대해 흥미와 동기부여로 자기주도적 학습을 할 수 있도록 도와준다. 또한 Online으로 제공하기 때문에 누구나 언제 어디서든 쉽게 접근할 수 있다. 

 

MOOT (Massive Open Online Textbook)

MOOT는 학습자의 자율성을 바탕으로 유연한 학습활동이 되게끔 제공함으로써 자기주도적인 학습을 할 수 있습니다.

MOOT는 일반 교과서와 다르게 여러 자료유형을 제공한다.

blockly

 

 

질의 응답 및 의사소통 & SNS(Social Network Service)

 교재에 각 장(Chapter)마다 대한 궁금한 점을 다른 사람과 공유하면서 궁금점에 대해 서로의 생각을 알 수 있고,

자연스러운 대화를 이끌 수 있습니다.

질의응답

 

 

학습자들의 출석현황 & 알람 및 동기부여

My page를 통해 언제, 몇시에 어떤 장(Chapter)을 봤는지 확인할 수 있습니다.

또한 기록된 Log를 통해  일정기간 학습을 하지 않으면 자동으로 메일을 보내 다시 학습할 수 있도록 제공합니다. 

mypage

 

 

Textbook과 적절한 Online 실습 환경

일반 교과서는 텍스트와 사진뿐이라면, MOOT는 텍스트, 사진은 기본이며 의사소통할 수 있는 질의 응답도 포함되어 있습니다.

또한 프로그램 다운 없이 Online(교재 안)에서 실습환경 제공하여 쉽게 접근할 수 있으며 제한이 되지 않습니다.

 

python 실행

 

 

학습자 별 동기 부여 및 시각화

학습자의 출석 일수에 따른 시각화를 통해 학습자가 목표 지점까지 갈 수 있도록 도와줍니다.

또한 퀴즈와 댓글 수 그리고 실습 횟수 등 학습된 현황을 그래프를 통해 알기 쉽도록 할 예정입니다.

 

 

 

Korea University Computational Thinking 사용법

1. Page 소개

 아래 그림은 화면 첫 페이지의 모습입니다.

 첫 페이지에서 볼 수 있듯이 Computational Thinking 밑에 목차가 있습니다.

  •  0. 소개는 Computational Thinking의 서문, MOOT란 무엇인가, 사이트 사용법이 있습니다.
  • 1. COPUTING 사고력 ~ 7. 결론 에서는 학습할 수 있는 내용과 실습이 있습니다. 
  • MY PAGE에서는 학습자가 학습하러 들어온 시간과 얼마나 자주 학습했는지 알 수 있습니다.

 

첫 페이지

 

2. Login

Login은 첫 페이지에만 있습니다.

Login을 하기 위해서는 맨 위에 "Computational Thinking" 로고를 누르시면 Login할 수 있는 부분이 있습니다. 

Login을 하지 않으시고는 Blockly나 Python 실습을 보실 수가 없습니다. Login을 하셔야 사이트에서 제공하는 실습을 할 수 있습니다.

처음 사이트에 방문하신 분들은 Login 밑에 Register을 통해 가입하실 수 있습니다.

Login

 

3. 실습

사이트에서 제공하는 실습은 Blockly, Python, 학습에 관련된 문제가 있습니다.

1) Blcokly 사용법

우선 '3. 알고리즘'에 있는 Blockly 실습 사용법에 대해 설명하겠습니다. 

Blockly 설명

 

위에 그림을 보시면 :

Run : Block으로 작성한 코드를 실행 

Text : Block으로 작성한 코드를 Python 코드로 전환해 줌

Wide : 작성하는 코드창을 넓게 해 줌

Align : Block들을 정렬해 줌

Reset : 초기화 시켜줌

Clear : 작성 코드 없애고 빈 화면으로 보여줌

Pseudo :  출력 결과가 나와야할 문제를 보여줌

왼쪽에 표시한 Blockly메뉴에 Block을 통해 코드 작성

오른쪽에 표시한 결과창은 작성 코드에 대한 결과를 볼 수 있음

 

2) Python 사용법 

5장에 있는 Python 사용법에 대해 설명하겠습니다.

python 실행

위에 그림을 보시면, 처음에는 'Run' 버튼과 실행코드 창이 있습니다.

'Run' 버튼을 누르시면 코드에 대한 결과가 아래에 보이게 됩니다.

 

3) 그 외

그 외로는 학습한 내용에 관한 문제를 풀 수 있는 퀴즈가 있습니다.

 문제 확인

위의 그림과 같이 정답인 것을 클릭해주고 'Check Me' 버튼을 누르시면 틀렸는지 맞았는지 알 수 있습니다.

 

4. My Page

상단 Bar 맨 오른쪽에 보시면 'My Page' 버튼이 있습니다. 

그  버튼을 클릭하시면아래와 같은 그림이 보여집니다.

Mypage 상세

My Page는 Computational Thinking에 들어온 횟수와 그날 공부한 영역을 편하게 보기 위해

달력으로 만든 것 입니다.

달력을 보며 어디까지 학습하였고 얼마나 자주 학습하였는지 볼 수 있는 Page입니다.