20장. 교육 콘텐츠 설계와 종합 실습
학습목표 쓰기
여행 계획을 "제주도를 즐긴다"라고 적으면 다녀와서도 이루었는지 알기 어렵습니다. "한라산 영실 코스를 올라 정상 사진을 찍는다"라고 적으면 사진이 있는지만 보면 됩니다. 학습목표도 같습니다. 수업이 끝난 뒤 "했다, 못 했다"를 눈으로 가릴 수 있게 씁니다.
그림의 네 칸을 차례로 채우면 학습목표 한 문장이 됩니다. 예를 들어 "노이즈 낀 그림(무엇을)에 Median 필터를 걸어(조건) PSNR 을 3dB 이상 올릴(기준) 수 있다"이고, 확인 방법은 "출력된 PSNR 두 값"입니다. 여기서 정상 사진이 확인 방법이고, "올라 찍는다"가 행동 동사입니다.
행동 동사 고르기
| 덜 알맞은 말 | 왜 | 바꿔 쓸 행동 동사 | 확인 방법 |
|---|---|---|---|
| 이해한다 | 밖에서 보이지 않는다 | 설명한다, 견준다 | 표의 빈칸 채우기 |
| 안다 | 얼마나 아는지 잴 수 없다 | 고른다, 찾는다 | 객관식, 짝짓기 |
| 익힌다 | 끝이 분명하지 않다 | 만든다, 저장한다 | 저장된 out_ 파일 |
| 경험한다 | 해 보기만 하면 끝난다 | 고친다, 줄인다 | 전후 숫자(PSNR, IoU) |
학습목표와 확인 방법 짝짓기
| 학습목표 | 확인 방법 |
|---|---|
cv2.imread 로 읽은 그림이 None 인지 확인하는 코드를 쓸 수 있다 | 없는 파일 이름으로 돌려 "읽기 실패"가 찍히는지 |
| Otsu 이진화로 정답 마스크와의 IoU 0.9 이상인 마스크를 만들 수 있다 | 채점 함수가 찍은 IoU |
| 윤곽선으로 부품 수를 세어 정답표와 견줄 수 있다 | 정답 개수와 같은지 |
짧은 예시
학습목표 문장이 "할 수 있다"로 끝나는지, 덜 알맞은 말이 들어 있는지 프로그램으로 걸러 봅니다.
goals = [
"Median 필터로 잡티를 지워 PSNR 을 3dB 이상 올릴 수 있다",
"히스토그램을 이해한다",
"윤곽선으로 부품 수를 세어 정답표와 견줄 수 있다",
]
vague = ["이해", "안다", "익힌다", "경험"] # 학습목표에 덜 알맞은 말
for g in goals:
problems = []
if not g.endswith("수 있다"): # endswith: 그 글자로 끝나는가
problems.append("'~할 수 있다'로 끝나지 않음")
problems += [f"'{w}' 대신 행동 동사" for w in vague if w in g]
print("통과" if not problems else "고칠 것: " + ", ".join(problems), "|", g)주의할 점
- 학습목표 하나에 동사를 여럿 넣지 않습니다. "읽고, 고치고, 저장할 수 있다"는 셋으로 나눕니다.
- 목표의 기준(IoU 0.9, PSNR 3dB)은 실습 그림으로 미리 돌려 보고 정합니다. 해 보지 않고 정한 기준은 너무 쉽거나 너무 어렵습니다.