AP CSP Create Task - SAT Collocation Manager 실행 계획¶
대상: 산이
개발 환경: Java 17+, Java 콘솔 (Scanner,ArrayList만 사용)
목표: 9시간 수업 시간 안에 완성, 녹화, PPR(Personalized Project Reference) 준비까지 가능한 작은 학습 프로그램
1. 결론과 범위 결정¶
이번 Create Task에는 SAT Collocation Manager를 권장한다. 운동 기록 앱은 기록 입력, 통계, 그래프, 예측 등 독립 기능이 여러 개라 9시간 안에 학생이 각 부분을 이해하고 설명하기 어렵다. 반면 이 프로젝트는 제공된 SAT 자료를 바탕으로 ArrayList에 학습 카드를 저장하고, 검색과 퀴즈로 그 데이터를 사용하는 한 가지 명확한 흐름을 만들 수 있다.
프로그램의 한 문장 목적은 다음과 같다.
SAT 학습자가 우선순위 단어의 뜻·연어(collocation)·유사어의 뉘앙스 차이를 검색하고, 짧은 퀴즈로 확인하도록 돕는다.
반드시 구현할 MVP¶
- 메뉴에서 SAT 우선순위(5 또는 4)를 선택해 단어 목록을 본다.
- 영단어를 입력해 뜻, 대표 collocation, 유사 표현과 차이 설명을 검색한다.
- 우선순위를 입력해 해당 범위의 단어 1개에 대한 collocation 객관식 퀴즈를 푼다.
- 정답/오답에 따라 서로 다른 피드백을 출력한다. 오답이면 정답과 pair note를 함께 보여 준다.
- 종료 메뉴로 안전하게 프로그램을 끝낸다.
의도적으로 제외할 기능¶
로그인, DB/파일 저장, GUI, 통계 그래프, AI 추천, 웹 크롤링, 무작위 문제 중복 방지, 전체 51개 데이터 입력은 이번 범위에서 제외한다. 이들은 기능은 좋아 보이지만 Create Task의 핵심 증거를 늘리기보다 디버깅 위험을 키운다.
추가 기능은 MVP와 영상/PPR가 끝난 뒤에만 한다: 결과별 점수 누적 또는 전체 51개 카드 확장 중 하나만 선택한다.
2. 공식 Create Task 기준 - 2026 확인 사항¶
기존에 안내된 “6개 항목, 항목당 1점”은 이전 형식의 설명이다. 현재 AP Central 시험 안내는 Create Task를 전체 점수의 30%로 안내하며, 학생은 수업 중 최소 9시간 동안 프로그램 코드, 실행 영상, PPR을 준비한다. 이후 시험에서 PPR을 보고 두 문항 안의 네 프롬프트에 답한다.
| 현재 시험 프롬프트 범주 | 이 프로젝트에서 미리 확보할 증거 |
|---|---|
| Program Design, Function, and Purpose | 학습 문제, 메뉴 입력, 검색/퀴즈 출력, 개발 과정 메모 |
| Algorithm Development | runPriorityQuiz(...) 안의 순차·선택·반복 |
| Errors and Testing | 찾지 못한 단어, 유효하지 않은 우선순위, 정답/오답을 포함한 테스트 표 |
| Data and Procedural Abstraction | ArrayList<WordCard> 저장·순회와 매개변수 있는 메서드 |
공식 제출물은 아래 세 가지다.
| 제출물 | 이 프로젝트에서 준비할 내용 | 주의 |
|---|---|---|
| Program Code PDF | Main.java 전체와 데이터 출처 acknowledgement 주석 |
외부/AI/공동 작성 코드·데이터는 출처를 밝혀야 함 |
| 실행 영상 | 콘솔에서 메뉴 입력 → 퀴즈 실행 → 정답 또는 오답 피드백 | 1분 이하, 30MB 이하, 음성 내레이션 금지, 이름 등 식별 정보 금지 |
| PPR | 절차 정의+호출, 리스트 저장+리스트 사용의 코드 화면 캡처 | 학생이 개별 작성, 주석/수업 내용 없이, 10pt 이상 선명하게 |
2026 시험 페이지에 게시된 최종 제출 시각은 2026-04-30 11:59 PM ET이다. 실제 응시 연도의 마감일은 반드시 AP Central에서 다시 확인한다.
학업 윤리 경계¶
이 문서는 공식 수행평가 시작 전의 기획 문서로 사용한다. 공식 administration이 시작된 뒤에는 학생이 파트너 외의 사람에게 코드 작성·수정·디버깅·테스트 도움을 받을 수 없다. 생성형 AI를 사용한 코드나 외부 데이터는 인정 표기와 학생의 완전한 이해가 필요하다. 따라서 실제 Main.java는 산이가 직접 작성하고, 이 계획의 메서드 설계도 자신의 말과 코드로 구현한다.
3. 제공 자료 검토와 데이터 범위¶
검토 파일: ★산 SAT Pair Collocation_0710.xlsx
| 항목 | 확인 결과 | 이번 프로그램 반영 |
|---|---|---|
| 시트 | 영어, 한국어, Summary | 콘솔에는 한국어 뜻을 우선 사용 |
| 전체 단어/표현 | 51개 | 원본 자료로 보관; 9시간 MVP에는 대표 10개만 직접 입력 |
| 우선순위 5 | 10개 | pair note가 있는 대표 5개 포함 |
| 우선순위 4 | 24개 | pair note가 있는 대표 5개 포함 |
| 우선순위 3 / 2 | 13개 / 4개 | 시간 여유가 있을 때만 확장 |
| 유사어·차이(pair) 정보 | 31개 항목에 있음 | 검색/오답 피드백의 차별점으로 사용 |
| 정렬 원칙 | 우선순위 → pair 중요도 → 알파벳 | ArrayList 초기 데이터 순서에 그대로 적용 |
MVP 카드 10개¶
우선순위 5 (5개): ascertain, continuity, precision, consequence, prevalent
우선순위 4 (5개): definitive, engender, manifest, refine, thwart
각 카드는 자료에 있는 한국어 meaning, 세미콜론으로 구분된 collocations 중 2개, pairWords, pair note를 사용한다. 이 10개는 모두 pair 정보가 있어 검색과 오답 피드백을 짧고 분명하게 만들 수 있다.
원본이 학생 작성물이 아니라면 코드 상단에 다음처럼 데이터 출처만 인정 표기한다. 실제 문구와 날짜는 산이가 사실에 맞게 작성한다.
// Vocabulary data adapted from “SAT Pair Collocation_0710.xlsx”; source acknowledged by student.
4. 사용 흐름과 콘솔 화면 설계¶
SAT Collocation Manager
1. 우선순위별 단어 보기
2. 단어 검색
3. Collocation 퀴즈
4. 종료
선택: _
[2번 예시]
검색할 단어: ascertain
ascertain - 확인하다, 밝혀내다 (Priority 5)
Collocations: ascertain the cause | ascertain the truth
Pair words: determine, establish
Note: ascertain은 사실을 확인할 때 ...
[3번 예시]
우선순위(2~5): 5
ascertain에 가장 알맞은 collocation은?
1) ascertain the truth 2) ... 3) ...
선택: 2
다시 확인해 보세요. 정답: ascertain the truth
Pair note: ascertain은 사실을 확인할 때 ...
영상은 아래의 한 경로만 보이면 충분하다. 메뉴 3 → 우선순위 5 입력 → 답안 번호 입력 → 정답/오답 피드백 → 메뉴 4. 처음부터 끝까지 40~55초를 목표로 하며, 음성 대신 필요한 경우 짧은 화면 자막만 넣는다.
5. 최소 Java 설계¶
파일 구조¶
sat-collocation-manager/
└── Main.java
한 파일 구조가 이번 시간 제한에 가장 안전하다. WordCard는 Main.java 안의 별도 class로 두고, Main은 메뉴·입력·리스트를 담당한다. 패키지, 외부 라이브러리, 파일 읽기, DB는 사용하지 않는다.
데이터 모델¶
WordCard 필드 |
타입 | 역할 |
|---|---|---|
word |
String |
검색 키와 퀴즈 대상 |
meaning |
String |
한국어 뜻 출력 |
priority |
int |
2~5 범위 필터 |
collocations |
String[] |
대표 연어 2~3개 |
pairWords |
String |
유사 표현 또는 X |
pairNote |
String |
뉘앙스 차이 설명 또는 안내 문구 |
핵심 컬렉션은 ArrayList<WordCard> deck 하나다. createDeck()에서 카드 10개를 deck.add(...)로 저장한다. 이 선택은 단어 수가 늘어도 선언 변수와 검색/출력 코드를 바꾸지 않고 카드만 추가하면 되므로, 개별 변수 10개를 만드는 방식보다 유지보수가 쉽다.
학생이 직접 구현할 메서드 청사진¶
| 메서드 | 매개변수 | 책임 | Create Task 연결 |
|---|---|---|---|
createDeck |
없음 | 카드 10개를 만들고 ArrayList에 저장 |
리스트 저장 증거 |
showByPriority |
deck, priority |
리스트를 끝까지 돌며 해당 우선순위 카드 출력 | 반복, 리스트 사용 |
searchWord |
deck, query |
대소문자를 무시하고 일치 단어를 찾아 상세 출력 | 선택, 리스트 순회 |
runPriorityQuiz |
deck, priority |
해당 우선순위의 첫 카드(또는 학생이 고른 카드)를 문제로 내고 답을 판정 | 핵심 절차/알고리즘 |
main |
없음 | 메뉴를 반복해서 입력받고 위 절차를 호출 | 사용자 입력과 procedure call |
runPriorityQuiz(deck, priority)는 PPR 후보로 가장 적합하다. 메서드 안에서 (1) 주어진 priority의 카드를 찾기 위해 for로 deck을 순회하고, (2) 없으면 안내하고 종료하며, (3) 있으면 문제와 선택지를 순서대로 출력하고, (4) 사용자의 답이 정답인지 if/else로 나누어 피드백을 출력한다. 즉 순차, 선택, 반복을 한 학생 작성 procedure에 모두 둔다. priority 값이 5와 4로 달라지면 찾아지는 카드와 출력이 달라져 매개변수의 효과도 명확하다.
무작위 출제는 구현하지 않는다. 테스트와 영상에서 같은 입력에 같은 문제가 나와야 결과를 재현하고 설명하기 쉽기 때문이다.
6. 요구사항과 수용 기준¶
| ID | 요구사항 | 완료 판정 |
|---|---|---|
| FR-01 | 사용자는 메뉴 번호를 입력한다. | 1~4 중 하나를 입력하면 해당 기능 또는 종료로 진행한다. |
| FR-02 | 사용자는 4 또는 5를 입력하여 카드 목록을 본다. | 해당 priority의 word, meaning, collocation이 1개 이상 출력된다. |
| FR-03 | 사용자는 영단어를 검색한다. | ascertain과 ASCERTAIN이 같은 카드 정보를 출력한다. |
| FR-04 | 없는 단어도 안전하게 처리한다. | planet 입력 시 “찾지 못했습니다”가 출력되고 메뉴로 돌아간다. |
| FR-05 | 사용자는 priority별 collocation 퀴즈를 푼다. | 문제, 3개 선택지, 입력, 결과가 순서대로 출력된다. |
| FR-06 | 오답은 학습 가능한 피드백을 준다. | 정답 collocation과 pair note 또는 “collocation 중심” 안내가 출력된다. |
| FR-07 | 프로그램은 ArrayList<WordCard>의 여러 원소를 사용한다. |
목록 보기와 검색이 같은 deck을 순회한다. |
| FR-08 | 잘못된 메뉴/priority를 처리한다. | “1~4를 입력하세요” 또는 “2~5를 입력하세요” 후 다시 입력받는다. |
7. 9시간 수업 운영표¶
아래 시간에는 코드, 영상, PPR 준비만 포함한다. 시험일 written response 작성은 별도다.
| 누적 시간 | 작업 | 반드시 끝낼 산출물 | 중단 규칙 |
|---|---|---|---|
| 0:00-0:25 | 요구사항 읽기, 목적 한 문장과 메뉴 확정 | 이 문서의 MVP에 체크 | 기능을 추가하지 않는다 |
| 0:25-0:55 | Java 실행 환경 확인, Main/WordCard 뼈대 작성 |
빈 메뉴가 실행됨 | IDE 설정이 10분 넘으면 교사에게 기술 지원 요청 |
| 0:55-2:05 | createDeck()과 10개 카드 입력 |
deck 크기와 카드 2개 출력 확인 | 10개를 넘겨 입력하지 않는다 |
| 2:05-3:25 | 메뉴 반복, priority 목록 보기 | FR-01, 02, 08 통과 | 디자인 꾸미기 금지 |
| 3:25-4:45 | 단어 검색, 찾음/못 찾음 분기 | FR-03, 04 통과 | 유사어 자동 추천은 제외 |
| 4:45-5:45 | runPriorityQuiz 구현 |
정답/오답 분기와 pair feedback | 무작위·점수 기능 제외 |
| 5:45-6:45 | 테스트 표 실행, 오류 수정, 주석/출처 확인 | 아래 테스트 7건 통과 | 새 기능 시작 금지 |
| 6:45-7:30 | 코드 PDF 출력, 영상 리허설·녹화 | 1분 이내 실행 영상 | 음성/개인 정보 제거 |
| 7:30-9:00 | PPR 캡처, 업로드 전 검사, 필요 시 1개 확장 기능 | PPR 4개 코드 세그먼트와 제출 체크 | PPR 작성은 개별 작업 |
8. 테스트 계획¶
테스트는 결과를 미리 예상한 뒤 실행하고, 실제 결과와 비교한다. 오류가 나면 원인·수정·재실행을 간단히 기록해 둔다. 정답과 오답 모두 실행해 두면 시험의 Errors and Testing 프롬프트에 대비하기 좋다.
| # | 입력/상황 | 기대 결과 | 확인할 경로 |
|---|---|---|---|
| 1 | 메뉴 1, priority 5 |
priority 5 카드 5개가 출력 | 정상 목록/반복 |
| 2 | 메뉴 1, priority 1 |
범위 안내 후 재입력 | 잘못된 priority |
| 3 | 메뉴 2, ascertain |
뜻, collocation, determine/establish note 출력 | 검색 성공 |
| 4 | 메뉴 2, ASCERTAIN |
#3과 같은 카드 출력 | 대소문자 처리 |
| 5 | 메뉴 2, planet |
찾지 못했다는 메시지, 프로그램 계속 | 검색 실패 |
| 6 | 메뉴 3, priority 5, 정답 번호 |
정답 피드백 | quiz true branch |
| 7 | 메뉴 3, priority 4, 오답 번호 |
정답과 pair note 출력 | quiz false branch |
테스트 #6과 #7은 같은 quiz procedure를 서로 다른 priority와 답으로 실행한다. 실행 순서, 입력, 예상 출력, 실제 출력을 개인 개발 노트에 기록한다. 다만 현재 시험의 공식 프롬프트는 과거의 “두 호출을 제출” 형식이 아니라 오류 식별·수정과 테스트 데이터 설명을 묻는 형식이므로, 코드와 결과를 자기 말로 설명할 수 있는지가 더 중요하다.
9. PPR 및 제출 전 체크리스트¶
PPR 코드 캡처 후보¶
| 상자 | 캡처할 코드 | 피해야 할 것 |
|---|---|---|
| Procedure 정의 | runPriorityQuiz의 signature부터 algorithm 끝까지 |
주석, 너무 긴 한 줄, 흐릿한 축소 화면 |
| Procedure 호출 | 메뉴의 quiz case에서 runPriorityQuiz(deck, priority)를 호출하는 부분 |
main 전체를 불필요하게 크게 캡처 |
| List 저장 | ArrayList<WordCard> deck 선언과 createDeck의 add들 |
다른 리스트를 섞어 보여 주기 |
| List 사용 | showByPriority 또는 searchWord의 for (WordCard card : deck) 부분 |
저장에 쓴 리스트와 다른 리스트 |
- [ ] PPR 캡처는 산이가 혼자 만들었다.
- [ ] PPR에는 주석과 수업 내용이 없다.
- [ ] 코드 글꼴은 최소 10pt(가능하면 12pt)이고 흐리지 않다.
- [ ] 모든 긴 줄을 줄바꿈해 가로 폭이 과도하지 않다.
- [ ] Code PDF에는 실제 외부/AI/데이터 출처 acknowledgement가 있다.
- [ ] 영상에는 입력, 기능, 출력이 모두 보이고 60초/30MB 제한을 지킨다.
- [ ] 영상에 음성 내레이션이나 학생 식별 정보가 없다.
- [ ] Code PDF, Video, PPR 세 항목을 모두 AP Digital Portfolio에서 final 제출한다.
10. 완료 정의¶
다음 네 가지가 동시에 충족되면 “완료”다.
- 산이가 외부 도움 없이 프로그램을 실행하고, 각 메서드와 리스트가 왜 필요한지 설명할 수 있다.
- 10개 카드로 검색과 priority별 퀴즈가 작동하고 테스트 표 7건이 통과한다.
- 실행 영상과 PPR가 공식 형식·독립성 규칙을 충족한다.
- 학생이 PPR을 보고 목적/입출력, algorithm, 오류·테스트, 리스트·procedure의 역할을 자기 말로 설명할 수 있다.
공식 참고 자료¶
- AP Computer Science Principles Exam - AP Central - 현재 시험 구성, 9시간, Create Task 비중 및 마감일 확인
- AP CSP Student Handouts: Create Performance Task - 제출 요소, 프로그램 요건, 영상/PPR 규칙, 학업 윤리
- AP CSP Personalized Project Reference Tip Sheet - PPR 코드 캡처 글자 크기·주석·가독성 안내
- 내부 자료:
docs/project/★산 SAT Pair Collocation_0710.xlsx- 단어, collocation, pair note, 우선순위의 원본