학습자료 컴퓨팅 사고력 워크북 · 00

여는 글 — 이 워크북의 사용법

이 책은 읽는 책이 아니라 푸는 책입니다. 컴퓨팅 사고력의 여섯 도구를, 실제 프로그램을 소재로 한 문제를 직접 풀면서 훈련합니다.

컴퓨팅 사고력이란

컴퓨팅 사고력 (computational thinking)
문제와 문제를 푸는 방법을, 컴퓨터가 그대로 따라 할 수 있을 만큼 정확하게 정리해 내는 생각하는 힘.

컴퓨터는 정확한 명령만 따릅니다.

"알아서 잘 해 달라"는 명령은 알아듣지 못하고, "목록의 처음부터 끝까지, 점수가 80점 이상이면 통과로 표시한다"처럼 정확한 명령만 따릅니다.

그래서 컴퓨터로 문제를 풀려면 사람이 먼저 문제를 나누고, 중요한 것만 골라내고, 순서를 정확하게 정해야 합니다.

이 힘이 컴퓨팅 사고력이며, 2006년 컴퓨터과학자 지넷 윙(Jeannette Wing)은 이 힘을 읽기·쓰기·셈하기처럼 누구에게나 필요한 기본 능력이라고 말했습니다.

이 힘은 프로그래밍 언어 문법이 아니라 생각하는 방법입니다.

그래서 코딩 도구 없이도 훈련할 수 있고, 이 워크북도 그 방식을 씁니다 — 프로그램 설계를 글과 표로 쓰는 훈련입니다.

여기서 훈련한 설계는 나중에 어떤 프로그래밍 언어를 배우든 그대로 코드의 뼈대가 됩니다.


여섯 가지 도구

이 워크북이 다루는 여섯 도구입니다. 도구마다 핵심 질문 하나만 기억하면 됩니다.

도구핵심 질문하는 일
01문제 분해"어떻게 나누는가"큰 문제를 바로 해결을 시작할 수 있는 작은 조각으로 나눕니다.
02패턴 인식과 일반화"무엇이 되풀이되는가"여러 문제에서 반복되는 부분을 찾아, 두루 통하는 규칙으로 만듭니다.
03추상화와 자료 표현"무엇을 남기고 무엇을 버리는가"중요한 정보만 남기고, 표나 그림처럼 다루기 좋은 모습으로 나타냅니다.
04알고리즘 설계"누가 따라 해도 같게 적었는가"문제 푸는 순서를, 누가 따라 해도 똑같도록 정확하게 적습니다.
05평가와 디버깅"정말 맞는가, 어디가 틀렸는가"만든 순서가 맞는지 검사하고, 잘못된 곳을 찾아 고칩니다.
06자동화와 문제 발견"무엇을 기계에 맡기는가"반복 작업을 컴퓨터에 맡길 부분과 사람이 할 부분으로 가릅니다.

여섯 도구는 실제로 문제를 풀 때 쓰는 순서대로 늘어서 있습니다 — 나누고(01) → 되풀이를 찾고(02) → 중요한 것만 남기고(03) → 순서로 만들고(04) → 확인하고(05) → 기계에 맡깁니다(06). 앞 장에서 만든 것이 뒷 장의 재료가 됩니다. 마지막 07장에서는 여섯 도구를 한 문제에 모두 사용합니다.


각 장의 구성과 푸는 방법

모든 장은 같은 5단 구성입니다. 설명은 짧고, 대부분이 문제입니다.

  • 개념 정리도구의 뜻과 좋고 나쁨을 가르는 기준을 표로 간추려 보여줍니다. 외우는 부분입니다.
  • 예제 풀이실제 프로그램 문제 하나를 단계별로 나누고 푸는 전 과정을 보여줍니다. 풀이의 본보기입니다.
  • 따라 하기비슷한 문제를 물음에 답하며 함께 풉니다. 바로 채점됩니다.
  • 스스로 풀기난이도별 문제를 입력 칸에 직접 씁니다. 예시 답안과 점검 목록으로 스스로 확인합니다.
  • 자가진단객관식 문제로 배운 것을 쓸 수 있는지 확인합니다. 바로 채점됩니다.

스스로 풀기의 난이도는 세 단계이며, 학년과 상관없이 기본부터 차례로 푸는 것이 좋습니다.

기본
예제와 같은 틀로, 소재만 바꿔 풉니다.
발전
기능이 여러 개인 프로그램을 다룹니다. 두 단계로 나누고, 데이터 목록까지 씁니다.
심화
실제 앱 수준의 문제를 다룹니다. 나눈 기준과 그 까닭까지 씁니다.

한 가지 주의 사항 — 입력 칸에 쓴 내용은 저장되지 않습니다. 남기고 싶은 답은 공책이나 문서에 옮겨 둡니다. 장을 마칠 때마다 나만의 설계 모음이 쌓입니다.


목차

순서대로 푸는 것이 좋지만, 각 장은 그 장만 풀어도 완결됩니다.