단원 홈
3단원 · 마무리 — 9차시 대장정 완주! 🏁

단원 마무리

문제를 분해하고, 알고리즘을 비교하고, 파이썬으로 구현하고, 함께 평가했습니다. 교과서에서 가장 길었던 여정 — 이제 한눈에 정리하고 단원평가로 완성하세요.

12정03-0112정03-0212정03-03 12정03-0412정03-0512정03-06 12정03-0712정03-0812정03-09 12정03-10
🧠

핵심 정리 — 개념 지도

가지를 클릭하면 핵심 요약이 나타나요!

알고리즘과 프로그래밍 추상화 → 자동화의 대서사시 🧩 설계의 기술 (1차시) 문제 분해 · 모델링 · 추상화 📊 알고리즘 (2~3차시) 정렬 · 탐색 · 효율 비교 분석 🐍 프로그래밍 (4~7차시) 자료형 · 입출력 · 다차원 · 제어 🤝 객체와 프로젝트 (8~9차시) 클래스 · 협력 구현 · 성능 평가
🧭 단원의 큰 그림 — 이 단원은 하나의 흐름이다: 복잡한 문제를 분해·모델링하고(추상화), 풀이 절차인 알고리즘을 설계·비교하고, 파이썬으로 구현해(자동화) 함께 평가·공유한다. 업다운 게임 하나에도 이 모든 것이 들어 있었다 — 이제 여러분은 문제를 보면 코드가 보이는 사람!
🧩 설계의 기술 [12정03-01]
· 분해: 해결 가능한 크기로 — 작게, 완전하게, 겹치지 않게
· 모델링: 필요한 것만 남기는 단순화 + 관계를 정하는 구조화 (지하철 노선도!)
· 종합 단계에선 빠진 조각·충돌 점검 — 분해 트리는 9차시 프로젝트의 임무 분담표가 된다
📊 알고리즘 [12정03-02 · 03]
· 정렬: 버블(이웃 교환)·선택(최솟값 선택)·삽입(자리에 끼우기) — 모두 n²급
· 탐색: 순차(정렬 불필요, 최악 n번) vs 이진(정렬 필수, 약 log₂n번 — 10억 개도 30번!)
· 효율은 비교·교환 횟수와 시간 측정으로 분석 — 데이터가 커질수록 알고리즘이 운명을 가른다
🐍 프로그래밍 기초 [12정03-04~07]
· 자료형: int·float·str·bool + list(순서)·dict(키-값) — 문제가 그릇을 결정
· 입출력: input()은 항상 str(형변환!), 파일은 "w"/"a"/"r" + with문 — 변수는 휘발, 파일은 영구
· 다차원: 리스트의 리스트, [행][열] — 시간표·성적표·이미지가 모두 표
· 제어 구조: if·elif·else / for·while·break — 복합이 진짜 힘 (반복 속의 선택!)
🤝 객체와 프로젝트 [12정03-08~10]
· 클래스=틀, 인스턴스=실체 — 속성+메서드를 한 몸에 (붕어빵 틀!)
· 협력: 분해 트리로 역할 분담, 짝 프로그래밍, 코드 리뷰
· 성능 평가: 테스트 케이스(정확성, 경계값을 노려라) + 시간 측정(효율성) → 개선 → 공유
🏆

단원평가

14문항 · 10개 성취기준 총망라 · 모두 풀고 [채점하기]!

🏆

3단원 종합 평가

객관식 12 + OX 2 · 일괄 채점

1복잡한 문제를 분해할 때의 원칙으로 옳지 않은 것은?

2비교 횟수는 많지만 교환 횟수가 최대 n−1회로 가장 적은 정렬 알고리즘은?

3n²에 비례하는 정렬이 1만 개를 2초에 처리했다. 10만 개는 대략?

4이진 탐색을 사용할 수 있는 조건은?

5과목 이름을 넣으면 점수가 나오는 성적 조회 프로그램에 가장 적합한 자료형은?

6다음 코드의 출력은?x = "3" print(x * 2)

7다음 코드에 5와 3을 차례로 입력하면 출력은?a = int(input()) b = int(input()) print(a + b)

8매일 출석 기록을 파일 뒤에 누적 저장하려 한다. open()의 알맞은 모드는?

9다음 코드의 출력은?data = [[10, 20], [30, 40]] print(data[0][1])

10다음 코드의 출력은?for i in range(1, 5): if i % 2 == 0: print(i)

11s1 = Student("민준"), s2 = Student("서연")에서 Student와 s1·s2의 관계는?

12모둠 프로그램 개발에서 협력적 설계·구현의 모습으로 가장 적절한 것은?

13[OX] 프로그램의 정확성을 평가할 때는 잘 동작할 것 같은 입력만 시험하면 충분하다.

14[OX] 정렬된 100만 개의 데이터에서 이진 탐색은 약 20번의 비교만으로 값을 찾을 수 있다.

0 / 14

✍️

서·논술형 자기 점검

먼저 스스로 써 본 뒤 예시 답안과 비교해 보세요.

1. 다음은 업다운 게임 코드의 일부다. 이 코드에 사용된 제어 구조를 모두 찾고, 각각이 게임에서 어떤 역할을 하는지 설명하시오. 12정03-07

while True: guess = int(input("추측: ")) if guess == secret: print("정답!") break elif guess < secret: print("UP!") else: print("DOWN!")
📖 예시 답안 ① 반복 구조(while True): 정답을 맞힐 때까지 추측-판정 과정을 계속 되풀이한다(횟수를 미리 알 수 없으므로 while). ② 선택 구조(if-elif-else): 추측값을 정답과 비교해 세 갈래(정답/너무 작음/너무 큼)로 나누어 서로 다른 안내를 출력한다. ③ 탈출(break): 정답을 맞힌 순간 무한 반복을 즉시 끝낸다. — 반복 '속에' 선택이 들어 있는 복합 구조라는 점, 그리고 input의 형변환(int)까지 언급하면 만점 답안!

2. "우리 반 도서 대출 순위 프로그램"을 모둠 프로젝트로 만든다고 하자. ① 문제를 작은 기능 3개 이상으로 분해하고 ② 각 기능에 알맞은 자료형 또는 알고리즘을 정하고 ③ 정확성을 검사할 테스트 케이스를 1개 이상 제시하시오. 12정03-01 12정03-09 12정03-10

📖 예시 답안 (한 가지 예) ① 분해: ㉠ 대출 기록 입력·저장 ㉡ 학생별 대출 횟수 집계 ㉢ 횟수순 정렬과 순위 출력. ② 설계: ㉠ 파일입출력("a" 모드로 누적) ㉡ 딕셔너리(이름→횟수, 키로 빠른 집계) ㉢ 정렬 알고리즘(또는 sort)으로 내림차순. ③ 테스트: "민준이 3회, 서연이 5회 대출한 데이터를 넣으면 1위가 서연(5회)으로 출력되어야 한다", "대출 기록이 0건일 때 오류 없이 '기록 없음'이 나와야 한다(경계값!)". — 분해→자료형/알고리즘 선택의 근거→경계값 테스트가 이어지면 성취기준 3개를 관통하는 완벽한 답!
🪞

성취기준 자가평가 — 10개의 봉우리 점검

스스로 솔직하게! 선택은 자동 저장됩니다.

12정03-01  복잡한 문제를 작은 문제로 분해하고 모델링할 수 있다.

12정03-02  정렬 알고리즘들의 특징과 효율을 비교·분석할 수 있다.

12정03-03  탐색 알고리즘들의 특징과 효율을 비교·분석할 수 있다.

12정03-04  적합한 자료형을 선택하여 프로그램을 작성할 수 있다.

12정03-05  표준입출력과 파일입출력을 활용한 프로그램을 작성할 수 있다.

12정03-06  다차원 데이터 구조를 활용한 프로그램을 작성할 수 있다.

12정03-07  제어 구조를 복합적으로 활용한 프로그램을 작성할 수 있다.

12정03-08  클래스와 인스턴스를 활용한 프로그램을 작성할 수 있다.

12정03-09  문제 해결 프로그램을 협력적으로 설계·구현할 수 있다.

12정03-10  프로그램의 성능을 평가하고 공유할 수 있다.

💡 다시 보면 좋은 곳

분해·모델링은 1차시 분해 트리, 알고리즘은 정렬 레이스탐색 대결, 파이썬이 약하면 4차시부터 실행기로 차근차근, 제어 구조는 업다운 게임 만들기, 평가 방법은 윤년 테스트 케이스 — 직접 돌려 본 만큼 남습니다!

🧭

진로 연계 — 이 단원이 통하는 직업들

💻

소프트웨어 개발자

이 단원 전체가 개발자의 하루 — 분해, 구현, 테스트, 협업.

🧮

알고리즘 엔지니어

검색·추천·경로 — 더 빠른 풀이를 설계해요.

🧪

QA·테스트 엔지니어

테스트 케이스로 소프트웨어의 품질을 지켜요.

🎮

게임 프로그래머

게임 루프, 캐릭터 클래스 — 오늘 배운 것이 곧 게임의 뼈대.

🏆

경쟁 프로그래머

정보올림피아드·ICPC에서 알고리즘 실력을 겨뤄요.

👀 다음 단원 예고 — 4단원 「인공지능」

지금까지 우리는 컴퓨터에게 절차를 일일이 알려 주는 프로그래밍을 배웠습니다. 그런데 "고양이 사진을 알아봐"의 절차를 코드로 쓸 수 있을까요? 쓸 수 없습니다 — 그래서 인공지능은 절차 대신 데이터를 주고 스스로 배우게 합니다. 프로그래밍의 패러다임이 뒤집히는 놀라운 세계, 지능 에이전트와 기계학습이 기다립니다!