← 강의 페이지 화학공학을 위한 AI 14 / 15

14장 엔지니어의 발표법

이번 주의 산출물: 서브프로젝트 발표(3분 데모영상 + 라이브 Q&A 2분)

다음 상황을 생각해 보자. 입사 첫 달의 신입 엔지니어가 공정 데이터 대시보드를 만들어 팀 회의에서 시연한다. 화면은 매끄럽게 넘어가고 그래프도 그럴듯하다. 3분이 지나자 팀장이 묻는다. "이상치를 걸러냈다고 했는데, 그 기준값은 어디서 나온 겁니까? 그리고 이 줄, 여기서 뭘 하는 겁니까?"

코드는 AI가 짰고, 돌아가는 것은 여러 번 확인했다. 그러나 그 두 질문에는 답하지 못했다. 회의실에서 무너진 것은 도구가 아니라 설명이었다. 이 장은 그 3분과 그 뒤의 2분을 준비하는 방법을 다룬다.

이 장에서 다루는 것

  • 기술 발표를 문제정의→데모→화공 해석의 3분 구성으로 설계한다
  • 청중 질문을 네 유형으로 분류하고 유형별 방어 전략을 세운다
  • "설명 불능 = 0점" 규정이 발표장에서 어떻게 집행되는지 확인한다
  • README·검증 증빙·재사용 도구를 점검하는 프로젝트 완성 체크리스트를 만든다
  • 최종 시험 운영 규정과 비상 프로토콜을 점검한다

학습목표: 이 장을 마치면 다음을 할 수 있다.

  1. 3분 발표를 문제정의·데모·화공 해석의 세 구간으로 나누고 시간 예산을 배분할 수 있다.
  2. 청중 질문을 네 유형으로 분류하고, 각 유형이 최종 시험 루브릭의 어느 배점과 연결되는지 설명할 수 있다.
  3. 지목된 코드 줄을 EiPE 다섯 요소(목적·입력·처리·출력·한계)의 형식으로 2~3문장에 설명할 수 있다.
  4. README에 실행법·검증 증빙·재사용 도구를 명시했는지 스크립트로 점검할 수 있다.
  5. 데모 실패에 대비한 백업 계획을 발표 구성에 내장할 수 있다.

14.1 발표는 검증의 마지막 단계다

완성한 도구를 청중 앞에서 실행해 보이고 그 결과의 공학적 의미를 질문에 맞서 지키는 일을 기술 발표(technical presentation)라 한다. 발표를 잘 만든 도구에 붙이는 장식으로 보기 쉽다. 그러나 검증 루틴 3종이 "이 값이 나에게 말이 되는가"를 묻는 절차라면, 발표는 "이 값이 남에게도 말이 되는가"를 묻는 절차다.

절차의 마지막 칸에 검증을 두는 관례는 이 책에서 이미 두 번 보았다. 10장의 물질수지 풀이 절차는 흐름도 그리기에서 시작해 검산(check your work)으로 끝났고, 13장에서 소개한 ML 워크플로는 "문제를 정의한다"가 1단계였다. 문제 정의로 열고 검증으로 닫는 이 순서는 그 계산을 보고하는 3분에도 그대로 적용된다.

작동하는 프로그램을 실제로 실행해 결과가 나오는 과정을 보여 주는 것을 데모(demonstration, demo)라 한다. 그리고 청중이나 채점자의 질문에 근거를 들어 답하는 것을 구술 방어라 한다. 이 수업의 발표는 이 둘의 결합이다. 슬라이드 장식 기술은 채점 대상이 아니며, 루브릭이 재는 것은 구성(문제정의→데모→화공 해석)과 Q&A 방어뿐이다.

AI 협업 사이클: 14주차는 ④ 생성 코드 읽기와 ⑥ 화공 검증을 청중 앞에서 공개 시연하는 주다
  1. 문제 정의
  2. 분해
  3. 프롬프트
  4. 생성 코드 읽기
  5. 테스트
  6. 화공 검증

발표의 세 구간은 사이클의 축약이기도 하다. 문제정의 구간은 블록 ①을, 데모 구간은 블록 ③~⑤의 결과를, 화공 해석 구간은 블록 ⑥을 청중이 볼 수 있는 형태로 압축한다. 사이클을 성실히 돌린 프로젝트라면 발표 재료는 이미 repo 안에 있다.

14.2 3분 구성법: 문제정의 → 데모 → 화공 해석

14.2.1 시간 예산부터 세운다

발표 시간은 3분, 즉 180 s로 고정되어 있다. 배관을 설계할 때 압력강하 예산부터 세우듯, 발표도 시간 예산부터 세운다. 세 구간의 합은 다음을 만족해야 한다.

t문제정의 + t데모 + t해석 = 180 s (14.1)

권장 출발점은 문제정의 40 s, 데모 80 s, 화공 해석 60 s다. 데모에 가장 큰 몫을 주는 이유가 있다. 문제정의와 해석은 말로 압축할 수 있지만, 프로그램의 실행에는 압축할 수 없는 물리적 시간(입력, 실행, 출력 확인)이 들기 때문이다. 이 배분은 출발점이고, 확정은 리허설 실측으로 한다. 대본을 소리 내어 읽고 구간별 시간을 재서, 20 s 이상 초과한 구간을 먼저 줄인다.

14.2.2 문제정의 구간: 청중이 궁금한 것은 폴더 구조가 아니다

첫 40 s의 임무는 "이 도구가 없으면 무엇이 귀찮거나 위험한가"를 한 문장으로 세우고, 도구의 입력과 출력을 선언하는 것이다. 화공양론 숙제 검산기라면 "recycle이 있는 물질수지는 손 검산에서 스트림 하나를 빼먹기 쉽다. 이 도구는 흐름도 텍스트를 받아 정합성 위반 스트림을 출력한다"가 전부다.

가장 흔한 실수는 파일 구조와 사용 라이브러리 소개로 시작하는 것이다. 그것은 README의 몫이고 첫 40 s의 몫은 아니다. 문제가 서지 않으면 그 도구가 왜 필요한지도 청중에게 전달되지 않는다.

14.2.3 데모 구간: 실행 1사이클 + 검증 1개

데모 80 s에 넣을 것은 두 가지다. 입력→실행→출력의 완결된 1사이클, 그리고 검증 루틴이 통과하는 순간 1개다. 예를 들어 T-xy 도구라면 조성 입력, 다이어그램 출력까지 보여 준 뒤, 순물질 극한(x=1)에서 곡선이 문헌 끓는점에 닿는 화면을 잡아 준다. 기능 다섯 개를 스치듯 훑는 것보다 한 사이클을 검증까지 완주하는 편이 루브릭 구성 5점에 직결된다.

데모 준비의 고전적 함정은 경로다. 본인 노트북의 작업 폴더에서는 돌던 코드가 발표용 환경에서 이렇게 죽는다.

FileNotFoundError: [Errno 2] No such file or directory: 'data.csv'

원인은 상대경로다. 스크립트를 어느 폴더에서 실행하느냐에 따라 'data.csv'가 가리키는 위치가 달라진다. 녹화 전에 데이터 경로를 스크립트 위치 기준으로 고정해 두면 실행 위치와 무관해진다.

코드 14-1 실행 위치와 무관한 경로 고정 패턴
from pathlib import Path

BASE = Path(__file__).resolve().parent   # 이 스크립트가 있는 폴더
DATA = BASE / "data.csv"                 # 실행 위치와 무관하게 고정된 경로

그래도 실패에는 대비한다. 실행 화면 캡처 2~3장을 예비 슬라이드로 준비해 두면, 라이브 실행이나 영상 재생이 죽어도 데모 구간의 서사는 이어 갈 수 있다. 백업이 있으면 장애가 나도 침착하게 대응할 수 있고, 그 침착함이 Q&A 3점으로 이어진다.

14.2.4 화공 해석 구간: 숫자를 상식과 문헌에 잇는다

마지막 60 s는 출력 수치의 공학적 의미를 말하는 시간이다. 여기서 하는 일은 8장에서 훈련한 것과 같다. Antoine 상관식으로 계산한 물의 증기압이 "물은 1 atm에서 100 °C에 끓는다"는 상식 대조값과 크게 어긋나면서 유효범위 밖 외삽이 드러났듯, 해석 구간은 데모의 숫자를 대조값·유효범위·한계와 연결한다. "계산이 끝났다"와 "결과를 믿을 수 있다" 사이의 거리를 메우는 것이 이 구간의 임무다.

한계를 말하는 것을 두려워할 이유가 없다. 최종 시험 루브릭의 코드 이해 10점 중 3점이 "한계·개선점"에 걸려 있다. 자기 도구의 유효범위를 먼저 밝히면 그 3점을 스스로 확보할 수 있다. 감추면 같은 내용을 질문으로 되돌려 받게 된다.

예제 14.2-1 도구⑨ 공정 데이터 대시보드의 3분 발표 구성

13주차에 만든 도구⑨(CSV→인터랙티브 공정 대시보드)를 서브프로젝트로 확장했다. 식 (14.1)의 예산을 만족하는 3분 발표 구성안을 설계하고, 시간 합계를 코드로 확인하라.

구간 설계와 내용 선정은 사람의 일이다(사이클 ①). AI에게는 두 가지만 맡긴다. 시간 예산 검산 코드 생성과 초안 대본의 압축이다. 대본의 수치와 주장은 AI가 바꾸지 못하게 프롬프트에 명시한다.

코드 14-2 3분 발표 시간 예산 검산
# 3분 발표 시간 예산 — 단위: 초(s)
budget = {"문제정의": 40, "데모": 80, "화공 해석": 60}

total = sum(budget.values())              # s
assert total == 180, f"합계 {total} s — 180 s에 맞춰라"

for part, t in budget.items():
    print(f"{part}: {t} s ({t / 180:.0%})")   # 구간별 비중 출력

아래 발표 대본 초안을 소리 내어 읽으면 데모 구간이 100초가 넘어. 80초 분량으로 줄여 줘. 단, 수치와 검증 관련 문장은 한 글자도 바꾸지 마. [대본 붙여넣기]

"…CSV를 올리면 대시보드가 유량·온도 추이를 그리고, 3개 열의 이상치 후보를 표시합니다. 화면 오른쪽 검증 탭에서 정상 조업 구간 평균이 조업일지 기록값과 일치하는 것을 보십시오…" (압축된 대본, 이하 생략)

✔ 수치·검증 문장 원문 유지 확인(diff로 대조). 소리 내어 읽어 실측 78 s로 예산 안에 들어왔다. 다만 AI가 화면 전환을 알리는 문장을 잘라냈으므로, 데모 화면과 말이 어긋나지 않게 전환 문장 하나를 되살렸다.

  • 단위 체크: 모든 구간 값이 s 단위, 합 180 s = 3 min(발표 규정과 일치)
  • 대조값: 루브릭 "문제정의→데모→화공 해석 3분 구성 5점"의 세 요소가 구성안에 전부 존재
  • 극한값: 데모 재생이 죽는 극한(t데모→0)에서도 캡처 백업으로 서사가 이어지도록 예비 슬라이드 준비 확인

분석 발표 설계에서 AI에게 맡길 수 있는 것은 압축과 검산이다. 구간 배분과 검증 장면의 선택은 프로젝트를 아는 사람만 할 수 있다. 본인 프로젝트로 budget을 다시 채우고, 데모 구간을 90 s로 늘리면 어느 구간에서 10 s를 회수할지 정해 다시 돌려 보라.

스스로 점검 (해답은 권말)

  1. 식 (14.1)에서 데모 구간을 100 s로 늘리기로 했다. 문제정의와 화공 해석 중 어느 쪽을 줄이는 것이 루브릭상 덜 위험한가? 근거를 한 문장으로 쓰라.
  2. 데모 80 s 안에 반드시 화면으로 보여야 할 두 가지는 무엇인가?
  3. 대본 속 수치의 출처가 되어야 할 문서는 무엇인가?

14.3 청중 질문 네 유형과 방어

14.3.1 질문은 네 유형뿐이다

발표 뒤의 2분은 준비한 정도가 그대로 드러나는 시간이다. 다행히 기술 발표에 들어오는 질문은 대부분 네 유형으로 정리되고, 각 유형은 최종 시험 루브릭의 특정 배점과 일대일로 대응한다. 유형을 알면 방어를 미리 준비할 수 있다.

표 14-1 청중 질문 네 유형과 방어: 최종 시험 루브릭 대응
유형전형적 질문루브릭 대응방어의 근거
사실 확인형"그 값은 어디서 나왔나?"작동성: 검증 증빙(README 기록 필수)README의 검증 기록·출처(NIST 등)를 짚는다
지목 설명형"이 줄은 무슨 일을 하나?"코드 이해: 무작위 지목 설명 4점EiPE 다섯 요소 2~3문장(5장)
변형 예측형"이 줄을 바꾸면 어떻게 되나?"코드 이해: 예측 3점파라미터를 바꿔 돌려 본 What-if 경험
한계·개선형"어디까지 믿을 수 있나?"코드 이해: 한계·개선점 3점, 발표 Q&A 3점유효범위·가정을 먼저 선언해 둔 해석 구간

표의 오른쪽 열에서 보듯, 모든 답은 가리킬 수 있는 근거(코드의 줄, README의 절, 커밋 이력, 문헌값)로 끝난다. "그럴 겁니다"로 끝나는 답은 방어가 되기 어렵다. 근거가 없으면 "확인하지 못했다, 한계로 기록하겠다"가 정답이며, 이는 한계·개선형 답변으로 부분 점수를 지킨다.

14.3.2 "설명 불능 = 0점" 규정의 재확인

1주차 역할 계약을 다시 꺼낸다. AI가 코드를 쓰는 대신, 학생은 문제 분해·생성 코드 읽기·화학공학적 검증을 책임지며, "설명 못 하면 이해 점수 0점"이다. 최종 시험 루브릭은 이것을 조작적으로 정의해 두었다. 코드 이해 10점 차원에서 지목 질문 3개 중 2개 이상 설명에 실패하면 이 차원은 0점이다. 9점도 5점도 아닌 0점인 이유는, 설명하지 못하는 코드를 부분적으로 이해한 코드로 보기 어렵기 때문이다.

이 규정 앞에서 발표회는 안전한 실패 기회다. 오늘 Q&A에서 막힌 질문은 시험 전에 미리 발견한 구멍인 셈이다. 막힌 자리를 위키에 기록하는 것이 이번 주 위키 과제의 두 번째 항목인 이유다.

14.3.3 예상 질문은 AI로 미리 생성한다

방어 준비에서 AI의 쓸모는 대본 작성이 아니라 모의 청중 역할이다. 본인 코드를 주고 질문을 시켜 보자.

다음은 내 서브프로젝트의 핵심 모듈이다. [코드 붙여넣기] 화학공학과 교수가 발표 Q&A에서 물을 법한 질문 5개를 만들어 줘. 각 질문마다 내 코드의 어느 부분이 답의 근거가 되는지도 짝지어 줘.

1. "기포점 반복 계산의 수렴 판정 기준은 몇으로 잡았고 왜 그 값인가?" (근거: solve_bubble()의 tol 인자) … 4. "이 도구를 비이상 용액에 쓰면 어떻게 되는가?" (근거: README 한계 절) … 5. "반응이 있는 계로 확장하려면 반응속도식을 어디에 넣어야 하는가?" (근거: 해당 없음)

✔ 5개 중 4개는 표 14-1의 유형에 정확히 떨어진다. 답변 근거를 README와 코드 줄 번호로 준비했다. 5번은 반응속도론(3학년 범위)이라 이 수업 범위 밖이므로 "본 도구의 범위 밖이며, 확장 지점만 한계 절에 기록했다"로 답하기로 정리. AI가 만든 질문 목록도 그대로 믿지 않고 범위를 검증했다.

생각해보기: 이 수업의 발표회는 라이브 데모 대신 사전 녹화 영상을 상영한다. 이 선택이 없애 주는 위험 한 가지와 새로 만드는 위험 한 가지를 각각 제안하고, 후자를 어떻게 보완할지 말해 보라.

스스로 점검 (해답은 권말)

  1. "이 함수의 수렴 기준을 10배 느슨하게 하면 결과가 어떻게 변하나?"는 표 14-1의 어느 유형인가?
  2. 지목 질문 3개 중 1개만 설명에 성공했다. 코드 이해 차원의 점수는 몇 점인가?
  3. 답의 근거로 가리킬 수 있는 것 네 가지를 나열하라.

14.4 프로젝트 완성 체크리스트

14.4.1 채점자는 README부터 연다

발표가 3분이라면 채점은 그 몇 배의 시간 동안 repo 위에서 이루어진다. 채점자가 처음 여는 문서는 README고, 루브릭 작동성 14점의 첫 5점이 "README대로 실행"이다. 다른 컴퓨터에서 README의 지시만 따라 같은 결과가 나오는 성질을 재현성(reproducibility)이라 한다. 재현성은 문서의 품질로 결정된다.

이 수업의 README에 반드시 있어야 할 절은 네 개다. 첫째, 실행법이다. 설치와 실행 커맨드를 복사해 붙일 수 있는 형태로 적는다. 둘째, 검증 증빙이다. 단위 체크·대조값·극한값 3종의 기록으로, 루브릭이 필수 항목으로 정해 둔 부분이다. 셋째, 재사용 도구다. 서브프로젝트 공통 요건인 "본인의 사다리 산출물 2개 이상 재사용"을 어느 도구로 충족했는지 명시한다. 넷째, AI 사용내역 선언문이다. 모든 평가물에 1쪽 첨부가 의무이며 미첨부는 부정행위로 처리된다.

표 14-2 프로젝트 완성 체크리스트: 루브릭 대응
점검 항목확인 방법루브릭 대응
README대로 실행 재현새 폴더에 클론 → README 커맨드만으로 실행작동성: 실행 5점
핵심 기능 1사이클 완주입력→실행→출력 데모 시나리오와 일치작동성: 핵심 기능 6점
잘못된 입력 처리빈 파일·범위 밖 값 입력 시 안내 후 종료작동성: 예외 처리 3점
검증 증빙 3종 기록README 검증 절에 단위·대조값(출처 포함)·극한값작동성 필수 항목
재사용 도구 2개 이상 명시README에 도구 번호와 import 위치 기록서브프로젝트 공통 요건
AI 사용내역 선언문 1쪽선언문 파일 존재 + 제출물에 첨부미첨부 = 부정행위 처리
커밋 이력이 과정을 증언기능 단위 커밋, 의미 있는 메시지과정 채점·포렌식 대조

표 14-2는 사람이 눈으로 훑는 용도지만, 앞의 네 항목은 기계로도 점검할 수 있다. 점검을 스크립트로 만들어 두면 최종 시험 당일 종료 직전에도 30초 만에 돌릴 수 있다.

예제 14.4-1 README 완성도 점검 스크립트

repo 폴더를 받아 README.md에 필수 절(실행법·검증 증빙·재사용 도구·AI 사용내역)이 있는지 점검하고 항목별 통과/누락을 출력하는 스크립트를 만들라.

필수 항목의 목록과 표제 규약은 사람이 정한다(분해·명세는 학생 몫). 파일을 읽고 대조하는 코드는 AI에게 맡기고, 생성 코드는 일부러 망가뜨린 README로 검증한다.

파이썬 함수를 만들어 줘. 폴더 경로를 받아 그 안의 README.md를 utf-8로 읽고, 딕셔너리로 준 필수 표제들이 본문에 있는지 항목별 True/False로 돌려줘. 표준 라이브러리만 쓰고, 주석은 한국어로.

코드 14-3 README 완성도 점검기 (AI 생성)
# README 완성도 점검기 — 시험3 루브릭 "작동성" 대비
from pathlib import Path

REQUIRED = {                       # 점검 항목: README에 있어야 할 표제
    "실행법":     "## 실행법",
    "검증 증빙":  "## 검증",
    "재사용 도구": "## 재사용",
    "AI 선언문":  "## AI 사용내역",
}

def check_readme(repo_dir):
    """repo_dir의 README.md에서 필수 절 유무를 점검한다."""
    text = Path(repo_dir, "README.md").read_text(encoding="utf-8")
    return {name: (head in text) for name, head in REQUIRED.items()}

for name, ok in check_readme(".").items():   # 프로젝트 repo에서 실행
    print(f"{name}: {'통과' if ok else '누락'}")

✔ 표준 라이브러리(pathlib)만 사용, 인코딩 utf-8 명시 확인. 검증 절 표제를 일부러 지운 README로 실행 → "검증 증빙: 누락" 출력 확인. 단 README.md가 없는 폴더에서는 예외로 죽는다. (아래 극한값 항목 참조.)

  • 단위 체크: 물리량 없음(텍스트 처리). 대신 인코딩(utf-8) 명시로 환경 간 재현성 확보
  • 대조값: 정답을 아는 입력으로 시험. 절 하나를 지운 README에서 정확히 그 항목만 "누락"으로 출력
  • 극한값: README.md가 아예 없는 극한 → FileNotFoundError 발생. 예외 처리 미비(연습문제 P14.1에서 보강)

분석 점검기 자체도 극한값 검증을 통과하지 못하면 미완성이다. 도구를 점검하는 도구에도 같은 루틴이 적용된다는 것이 이 예제의 교훈이다. 표제 규약을 본인 README에 맞게 REQUIRED만 바꿔 그대로 재사용하라. 프롬프트에 "표제가 아니라 절 내용의 존재까지 확인해 줘"를 더해 재생성해 보는 것도 좋은 What-if다.

14.4.2 최종 시험 규정 브리핑

발표회가 끝나면 남은 것은 15주차 최종 시험(40점)뿐이므로, 운영 규정을 여기서 마지막으로 확인한다. 주제는 당일 공개되며 전원 동일 구조에 학번별 파라미터가 배정된다. 시작 시 빈 repo 첫 커밋이 의무고, 30분마다 스냅샷 커밋을 남기며, 2시간 내 커밋 5회 이상을 채워야 한다. 종료 즉시 업로드하면 결과물은 동결된다. 사후 수정분은 채점에서 제외된다.

당일 장애에 대비한 비상 프로토콜은 강의계획서와 부록 E에 명문화되어 있고, 15장에서 유형별 대응으로 다시 다룬다. 여기서 할 일은 30분 스냅샷 커밋을 규정대로 남겨 두는 것이다. 그러면 장애가 나도 그때까지의 작업이 부분 채점으로 인정된다. 30분 커밋은 규정이기 이전에 보험인 셈이다.

14.5 실습 14: 서브프로젝트 발표회 (120분)

준비물과 이전 도구 재사용

  • 사전제출 완료된 3분 데모영상 (제출함 확인)
  • 서브프로젝트 repo(발표 시점 기준 최종 커밋 완료 상태)
  • 본인 README 표제 규약에 맞게 수정한 코드 14-3 점검기
  • 표 14-1을 인쇄하거나 화면에 띄워 둘 것 (동료 리뷰에 사용)

과제

  1. 실습 14.1: 최종 점검 (개인, 15분) 코드 14-3 점검기를 본인 repo에서 실행하고, 네 항목 전부 "통과"가 나오게 README를 보수한 뒤 커밋하라. (점검기 출력 4행이 모두 통과면 완료)
  2. 실습 14.2: 발표 방어 (1인당 5분) 본인 차례에 데모영상 3분 상영 후 라이브 Q&A 2분을 방어하라. 모든 답을 근거(코드 줄·README 절·커밋·문헌값)로 끝내라. (지목 질문에 EiPE 다섯 요소 형식으로 답했으면 완료)
  3. 실습 14.3: 동료 리뷰 (발표회 내내) 다른 발표 2건 이상에 대해 표 14-1의 유형을 명시한 질문을 1개씩 던지거나 기록하라. 발표자와 청중이 서로를 훈련시키는 것을 동료 리뷰(peer review)라 한다. (질문 2건과 유형 표기가 메모에 남았으면 완료)
  4. 실습 14.4: 방어 기록 (퇴실 전 15분) 오늘 받은 질문 전부와, 그중 답하지 못한 것 1건 이상을 위키에 기록하고 커밋하라. (커밋이 GitHub에 보이면 완료)

완성 기준

  • 데모영상 사전제출 + README 점검기 4항목 통과 커밋
  • Q&A 2분 방어 완료(지목 질문 응답에 근거 제시)
  • 동료 질문 2건 이상, 유형 표기와 함께 기록
  • 위키 방어 기록 커밋 1건 이상
  • 과제 4점 중 발표 2점(영상+Q&A)이 오늘 채점된다. 결과물 2점(작동+검증 증빙)은 repo 기준이다
막혔는가?
  • README가 허술하면 이렇게 요청하라. "내 README를 붙여넣는다. 최종 시험 루브릭의 작동성 항목(README대로 실행 / 핵심 기능 / 예외 처리 / 검증 증빙) 기준으로 부족한 절을 지적하고, 무엇을 추가할지 물어봐 달라."
  • 예상 질문이 안 떠오르면 이 프롬프트로 시작하라. "내 발표 대본과 핵심 모듈이다. 표의 네 유형(사실 확인·지목 설명·변형 예측·한계)별로 질문을 1개씩 만들고, 답의 근거가 될 코드 위치를 짝지어 달라."
  • 지목 설명이 불안하면 "이 함수를 한국어 2~3문장으로 설명해 달라"고 요청한 뒤, 그 설명을 보지 않고 본인 문장으로 다시 말해 보라. 두 설명이 다른 지점이 본인이 모르는 지점이다.

퇴실 전 위키 기록: 오늘 만든 것(발표)·막힌 것(답 못 한 질문)·틀린 것(대본이나 README에서 고친 것) 1건 이상을 커밋해야 퇴실한다.

요약

  • S 14-1 발표 시간 예산: t문제정의 + t데모 + t해석 = 180 s, 곧 식 (14.1)이다. 출발점은 40/80/60 s이고, 확정은 소리 내어 읽는 실측으로 한다.
  • S 14-2 방어의 원칙: 모든 답은 가리킬 수 있는 근거(코드 줄·README 절·커밋·문헌값)로 끝낸다. 근거가 없으면 한계로 옮겨 기록한다.
  • S 14-3 README 필수 4절: 실행법 / 검증 증빙 3종 / 재사용 도구 2개 이상 / AI 사용내역 선언문. 이 네 절이 지목 질문 3개 중 2개 이상 설명 실패 시 코드 이해 차원 0점 규정과 함께 채점의 골격을 이룬다.
표 14-3 서브프로젝트 발표회와 최종 시험 구술 평가 비교
항목발표회 (14주)최종 시험 구술 평가 (15주+시험주간)
형식3분 데모영상 사전제출 + Q&A 2분1인 3분 데모 + 지목 구술 2분
주제본인이 선언한 서브프로젝트 (9주)당일 공개 + 학번별 파라미터
배점과제 4점 중 발표 2점 (결과물 2점 별도)40점 중 발표(구술 평가) 8점, 코드 이해 10점 연동
실패의 값구멍을 사전 발견해 위키에 기록성적 확정
역할마지막 리허설실전

도구 사다리 아홉 칸이 다 찼고, 그 도구들을 엮은 서브프로젝트가 오늘 청중 앞을 통과했다. AI 협업 사이클로 보면 이번 주는 ④ 생성 코드 읽기와 ⑥ 화공 검증을 혼자만의 루틴에서 공개 방어로 끌어올린 주다. 오늘 답하지 못한 질문이 있었다면 그것이 15주차 전에 받은 채점표다. 남은 것은 같은 형식을 2시간으로 늘린 실전 하나뿐이다.

용어 정리

기술 발표 (technical presentation)
완성한 도구를 청중 앞에서 실행해 보이고 결과의 공학적 의미를 질문에 맞서 지키는 일.
데모 (demonstration, demo)
작동하는 프로그램을 실제로 실행해 결과가 나오는 과정을 보여 주는 것.
구술 방어
청중이나 채점자의 질문에 근거를 들어 답하는 것. 최종 시험에서는 지목 구술 2분으로 운영된다.
재현성 (reproducibility)
다른 컴퓨터에서 README의 지시만 따라 같은 결과가 나오는 성질.
동료 리뷰 (peer review)
발표자와 청중이 질문과 피드백으로 서로의 산출물을 검토하고 훈련시키는 활동.

연습문제

Q군: 개념·읽기 (AI 없이 풀라)

  1. Q14.1 다음 발표 대본 문장 세 개에서 검증 없는 단정을 각각 찾아 밑줄 긋고, 근거를 제시하는 문장으로 고쳐 쓰라. ⓐ "이 도구는 어떤 물질에도 정확합니다." ⓑ "T-xy 곡선의 양 끝값을 문헌 끓는점과 대조해 차이를 README에 기록했습니다." ⓒ "예외 처리는 완벽하게 되어 있습니다."
  2. Q14.2 최종 시험 코드 이해 차원(10점)에서 지목 질문 3개 중 2개 이상 설명에 실패하면 점수가 어떻게 되는지 쓰고, 이 규정이 1주차 역할 계약의 어느 조항을 집행하는 장치인지 설명하라.
  3. Q14.3 일부러 구술 평가에서 0점에 가까운 발표를 만드는 방법 세 가지를 제시하고, 각각이 루브릭의 어느 차원(작동성·코드 이해·프롬프트 전략·발표)을 무너뜨리는지 밝혀라.

P군: 제작·계산 (AI 사용 전제)

  1. P14.1 코드 14-3 점검기에 README.md가 없는 극한을 처리하는 예외 처리를 추가하라. FileNotFoundError가 나면 프로그램이 죽는 대신 "README 없음: 작동성 5점 위험"을 출력하고 정상 종료해야 한다.
  2. P14.2 본인 서브프로젝트의 3분 대본을 작성하고, 식 (14.1)의 예산과 소리 내어 읽은 실측 시간을 구간별로 표로 비교하라. 20 s 이상 초과한 구간을 AI에게 압축시키되, 예제 14.2-1의 프롬프트처럼 수치·검증 문장 변경을 금지하고 diff로 확인하라.
  3. P14.3 지목 구술 모의시험기를 만들라. 본인 repo의 .py 파일에서 빈 줄과 주석을 제외한 무작위 한 줄을 골라 보여 주는 도구다. 페어와 교환해 서로 5회씩 지목 시험을 치르고, 설명에 실패한 줄과 그 이유를 위키에 기록하라. (사다리 산출물의 파일 읽기 코드를 재사용할 것)

위키 기록 과제 (이번 주 의미 커밋 ≥1이 채점 지표다)

  1. 이 장 핵심 1페이지 정리: 3분 구성과 질문 네 유형 표를 본인 언어로 재구성해 #seed로 기록하라.
  2. "내가 틀렸던 것" 1건: 오늘 Q&A에서 답하지 못했거나 근거 없이 답한 질문을 원문 그대로 적고, 지금 찾은 정답과 근거를 붙여라.
  3. 타 과목 연결 1건: 화공양론·유체역학 수업에서 결과를 발표하거나 보고서로 낼 때 이 장의 3분 구성을 어떻게 옮겨 쓸지 기록하라.

15장은 마지막 장이다. 최종 시험의 2시간을 어떻게 배분할지(첫 커밋부터 30분 스냅샷, 종료 직전 README 점검까지) 시간 전략을 세우고, 수업이 끝난 뒤에도 굴러갈 학습 OS의 유지 계획을 다룬다. 오늘 발표회에서 받은 질문들이 그 시험장의 지목 구술로 다시 돌아온다.