여는 글 — 이 워크북의 사용법
이 책은 읽는 책이 아니라 푸는 책입니다. 컴퓨팅 사고력의 여섯 도구를, 실제 프로그램을 소재로 한 문제를 직접 풀면서 훈련합니다.
컴퓨팅 사고력이란
컴퓨터는 정확한 명령만 따릅니다.
"알아서 잘 해 달라"는 명령은 알아듣지 못하고, "목록의 처음부터 끝까지, 점수가 80점 이상이면 통과로 표시한다"처럼 정확한 명령만 따릅니다.
그래서 컴퓨터로 문제를 풀려면 사람이 먼저 문제를 나누고, 중요한 것만 골라내고, 순서를 정확하게 정해야 합니다.
이 힘이 컴퓨팅 사고력이며, 2006년 컴퓨터과학자 지넷 윙(Jeannette Wing)은 이 힘을 읽기·쓰기·셈하기처럼 누구에게나 필요한 기본 능력이라고 말했습니다.
이 힘은 프로그래밍 언어 문법이 아니라 생각하는 방법입니다.
그래서 코딩 도구 없이도 훈련할 수 있고, 이 워크북도 그 방식을 씁니다 — 프로그램 설계를 글과 표로 쓰는 훈련입니다.
여기서 훈련한 설계는 나중에 어떤 프로그래밍 언어를 배우든 그대로 코드의 뼈대가 됩니다.
여섯 가지 도구
이 워크북이 다루는 여섯 도구입니다. 도구마다 핵심 질문 하나만 기억하면 됩니다.
| 장 | 도구 | 핵심 질문 | 하는 일 |
|---|---|---|---|
| 01 | 문제 분해 | "어떻게 나누는가" | 큰 문제를 바로 해결을 시작할 수 있는 작은 조각으로 나눕니다. |
| 02 | 패턴 인식과 일반화 | "무엇이 되풀이되는가" | 여러 문제에서 반복되는 부분을 찾아, 두루 통하는 규칙으로 만듭니다. |
| 03 | 추상화와 자료 표현 | "무엇을 남기고 무엇을 버리는가" | 중요한 정보만 남기고, 표나 그림처럼 다루기 좋은 모습으로 나타냅니다. |
| 04 | 알고리즘 설계 | "누가 따라 해도 같게 적었는가" | 문제 푸는 순서를, 누가 따라 해도 똑같도록 정확하게 적습니다. |
| 05 | 평가와 디버깅 | "정말 맞는가, 어디가 틀렸는가" | 만든 순서가 맞는지 검사하고, 잘못된 곳을 찾아 고칩니다. |
| 06 | 자동화와 문제 발견 | "무엇을 기계에 맡기는가" | 반복 작업을 컴퓨터에 맡길 부분과 사람이 할 부분으로 가릅니다. |
여섯 도구는 실제로 문제를 풀 때 쓰는 순서대로 늘어서 있습니다 — 나누고(01) → 되풀이를 찾고(02) → 중요한 것만 남기고(03) → 순서로 만들고(04) → 확인하고(05) → 기계에 맡깁니다(06). 앞 장에서 만든 것이 뒷 장의 재료가 됩니다. 마지막 07장에서는 여섯 도구를 한 문제에 모두 사용합니다.
각 장의 구성과 푸는 방법
모든 장은 같은 5단 구성입니다. 설명은 짧고, 대부분이 문제입니다.
- 개념 정리도구의 뜻과 좋고 나쁨을 가르는 기준을 표로 간추려 보여줍니다. 외우는 부분입니다.
- 예제 풀이실제 프로그램 문제 하나를 단계별로 나누고 푸는 전 과정을 보여줍니다. 풀이의 본보기입니다.
- 따라 하기비슷한 문제를 물음에 답하며 함께 풉니다. 바로 채점됩니다.
- 스스로 풀기난이도별 문제를 입력 칸에 직접 씁니다. 예시 답안과 점검 목록으로 스스로 확인합니다.
- 자가진단객관식 문제로 배운 것을 쓸 수 있는지 확인합니다. 바로 채점됩니다.
스스로 풀기의 난이도는 세 단계이며, 학년과 상관없이 기본부터 차례로 푸는 것이 좋습니다.
한 가지 주의 사항 — 입력 칸에 쓴 내용은 저장되지 않습니다. 남기고 싶은 답은 공책이나 문서에 옮겨 둡니다. 장을 마칠 때마다 나만의 설계 모음이 쌓입니다.
목차
순서대로 푸는 것이 좋지만, 각 장은 그 장만 풀어도 완결됩니다.
- 01문제 분해 — 프로그램은 조각으로 만든다풀러 가기 →
- 02패턴 인식과 일반화 — 같은 뼈대를 찾아 변수로풀러 가기 →
- 03추상화와 자료 표현준비 중
- 04알고리즘 설계준비 중
- 05평가와 디버깅준비 중
- 06자동화와 문제 발견준비 중
- 07종합 프로젝트 — 프로그램 기획서 쓰기준비 중