📅 AP Computer Science A 학습 대시보드

정연이 · HAFS 국제과정 2학년 · 2026년 5월 (Late) 시험
D-?
시험일: 2026-05-15 · MC 70분 40문항 + FRQ 90분 4문항 · Bluebook 디지털

ℹ️ 정연이용 사용법 — AP CS A 학습 대시보드

정연이가 5/15 시험까지 D-19일 남았어. 이 대시보드는 Stat·Micro·Macro Mastery 처럼 처음부터 만든 게 아니라, 검증된 무료 리소스 (CSAwesome·CodingBat·B Lee·Mr.K) 를 압축 사용하도록 설계됐어. 각 task 의 링크를 직접 클릭해서 새 탭으로 열고 풀면 돼. 진행도는 이 페이지의 체크박스에 자동 저장돼.

🎯 D-day 카운터 + 진행도 활용 기본

  1. 헤더 우측 상단 D-day 자동 갱신 — 매일 페이지 열면 남은 일수 자동 계산.
  2. 📅 14일 플랜 탭 상단의 진행도 바 — 모든 task 체크박스 합산. 0% → 100%.
  3. 매일 자기 전 진행도 보고 다음 날 계획 — "오늘은 50% 까지 갔으니 내일은 65% 목표".
  4. 각 Day 카드 우측의 큰 체크박스 는 "이 날 통째로 완료" 표시. 시각적으로 빠른 점검용.

📅 14일 추천 사이클 (정연이 맞춤 압축형)

  1. Day 1-2: Java 문법 0→OOP — freeCodeCamp 12h 강의를 1.5배속으로 압축. 처음 만지는 언어라도 4-5시간이면 기초 셋업 끝.
  2. Day 3-6: 단원별 정복 — 조건/반복/클래스/Array. 단원 1개당 3시간 (영상 + CSAwesome + CodingBat).
  3. Day 7-10: 핵심 단원 + FRQ — ArrayList / 2D Array / 상속 / Recursion. 매일 기출 FRQ 1-2개씩 같이.
  4. Day 11: 정렬·탐색 — selection / insertion / merge / binary search 손코딩.
  5. Day 12-14: Mock Exam + 보강 — 2024, 2023 Past Exam 시간 재고 풀이 + B Lee FRQ 영상.
  6. 버퍼 Day 15-19: 약점 단원 재시청 + Mock 3회 + 시험 전날 휴식.

📚 하루 학습 루프 (1일 약 2.5-4시간) 매일

  1. 🎬 영상 30-60분 — Mr.K Help Room (단원별 10-25분) 또는 freeCodeCamp 1.5배속. 듣기만 X, 코드 따라치기.
  2. 📚 CSAwesome 챕터 30-60분 — College Board endorsed 무료 교재. 인터랙티브 코딩 + 자동채점. 한 챕터씩 끝까지.
  3. 💻 CodingBat 단문제 30-45분 — Logic-1 / Array-1 / String-1 등 카테고리별. 5-10문제 풀고 막히면 다음 날.
  4. 📝 꿀팁 노트 5분 — 각 Day 카드 하단의 노란색 "꿀팁" 박스 정독. 빈출 함정 매일 노출.
  5. 완료한 task 체크박스 — 줄긋기 효과로 시각적 피드백.

💻 CodingBat / CSAwesome 자동채점 연결 방식 실습

  • 각 task 우측의 ↗ 화살표 링크 클릭 → 새 탭으로 열림. 본 페이지는 그대로 유지.
  • CodingBat: 카테고리 페이지로 직접 진입 (예: codingbat.com/java/Array-1). 문제 클릭 → 코드 입력 → "Go" → 자동채점.
  • CSAwesome: 각 단원 toctree 페이지로 직접 진입. 챕터 안에 인터랙티브 코드 에디터 + 즉시 실행. 회원가입 하면 진행도 저장됨 (선택).
  • AP Classroom (학교 계정): 학교에서 발급한 myap.collegeboard.org 계정 필요. Personal Progress Check 가 단원별 약점 진단 가장 정확.
  • 공식 Past FRQ: PDF 다운로드 → 종이 출력 후 손으로 풀기 권장. 답안은 Scoring Guideline PDF 와 대조.

⚡ Quick Reference 활용

  • 탭 ⚡ 에 String / ArrayList / Math / Object 메서드 시그니처 표 정리됨.
  • Bluebook 시험 환경에서도 Quick Reference 일부 열람 가능 — 미리 손에 익히면 시험 중 검색 시간 절약.
  • 시험 일주일 전 1번, 시험 전날 1번 정독 추천.
  • 특히 length(배열) vs length()(String) vs size()(ArrayList) 구분은 매년 출제.

⚠️ 함정 모음 활용 필수

  • 탭 ⚠️ 에 MCQ 트랩 7개 + FRQ 빈출 감점 8개 + Bluebook 환경 4개 정리.
  • Mock Exam 풀고 오답 분석할 때 반드시 매칭 — "내가 어떤 함정에 빠졌나?" 확인.
  • 시험 30분 전 마지막 정독 — Top 함정만 한 번 더.
  • 📝 FRQ 채점 가이드 → 와 같이 보면 더 효과적.

🎬 영상 활용법 — Mr.K / B Lee / freeCodeCamp

  • Mr. K's APCSA Help Room — Day 1-10 메인. 단원별 10-25분, 칠판 코드 시각적, 발음 또렷.
  • B Lee APCSA FRQ — Day 12-14 시험 직전 1주. 2014~2024 기출 FRQ 거의 전부 풀이. 한 영상 15-30분.
  • freeCodeCamp Java 12h — Day 1-2 압축 시청. 1.5배속 추천. 처음 보는 언어라도 첫날 50% 끝.
  • 한국어 보조 — 생활코딩 Java (개념 막힐 때만). AP CS A 전용 한국어 채널은 사실상 없음.
  • 영상 시청 시 반드시 코드 따라 치기. 듣기만 하면 손이 안 익어서 시험 때 막힘.

📝 Mock Exam 시뮬레이션 3회

  • Day 12: 2024 Past Exam — 시간 재고 풀이 (MC 70분 + FRQ 90분 = 160분). 첫 모의고사라 점수 낮아도 OK.
  • Day 14: 2023 또는 2019 Past — 두 번째 시도. 시간 분배 + 함정 회피 점검.
  • 버퍼 Day 17: Mock 3회 — 약점 단원 보강 후 마지막 점검.
  • 자가채점: FRQ 채점 가이드의 9점 분배 표 참고. 완벽 답안 1개보다 4문항 부분점수 합산이 점수 ↑.
  • 시간 부족하면 헤더 + 변수 + return 만이라도 — 3점 확보.

🆘 시험 직전 1주일 (D-7 ~ D-1)

  1. D-7 ~ D-3: 약점 단원 영상 재시청 + CodingBat AP-1 (AP 스타일 문제) 재실습. 매일 2.5h.
  2. D-2: Mock Exam 마지막 1회 + 시간 분배 점검. 끝나면 오답만 노트 정리.
  3. D-1 (전날): 가벼운 단원 1개만 훑기. 새 내용 학습 X. 푹 자기 (수면 7시간 +).
  4. D-0 (시험 당일): 시험 시작 30분 전 ⚡ Quick Reference + ⚠️ 함정 Top 10 정독. 그 외 X.

💾 학습 데이터 안내

  • 모든 체크박스 진행도는 이 브라우저의 localStorage 에 저장됨. 페이지 닫고 다시 열어도 유지.
  • 다른 기기 (태블릿 등) 에서 열면 별도 추적한 기기로 통일 권장 (예: 노트북에서만).
  • 초기화: 14일 플랜 탭 상단 진행도 바 옆 "초기화" 버튼. 되돌릴 수 없음.
  • 저장되는 항목: 각 task 체크 / 각 day 완료 체크. 메모 기능은 따로 없음 (필요하면 별도 노트앱).

🔗 같이 보면 좋은 자료

  • 💻 족집게 요약 → — Top 함정 10 + Bluebook 가이드 추가됨. 인쇄·PDF 친화적.
  • 📝 FRQ 채점 가이드 → — 9점 분배 + worked example + 한국 학생 빈출 감점.
  • 이 3 자료는 서로 링크로 연결돼 있어. 시험 직전 마무리는 족집게 → FRQ 가이드 → 함정 모음 순서로.

질문·버그 → 명빈 (hmbin@daum.net) · v1.1 · 2026-04-26 · D-19 시작

전체 진행도
0% (0/0)
Day 1
Unit 1 Primitive Types & 기본 문법
⏱ 2.5h
학습 목표: Java 변수 선언, 기본 자료형 (int, double, boolean), 산술/비교 연산자, 형변환
💡 꿀팁: 정수 나눗셈 7/2 == 3 (소수점 절삭) — int 끼리 나누면 정수 결과! double 로 캐스팅하면 (double)7/2 == 3.5
Day 2
Unit 2 Using Objects (String, Math)
⏱ 2.5h
학습 목표: 객체 사용, String 메서드, Math 클래스, 객체 vs 기본형
💡 꿀팁: String 은 immutable! s.replace(...) 는 새 String 반환, 원본 그대로. s = s.replace(...) 로 받아야 함.
Day 3
Unit 3 Boolean & if/else
⏱ 3.0h
학습 목표: Boolean 연산, if/else if/else, 단축 평가 (&& ||), 드모르간 법칙
💡 꿀팁: && 와 || 의 단축 평가 — 앞 조건이 결정나면 뒤 안 봄. (x != 0 && 10/x > 1) 안전, (10/x > 1 && x != 0) 위험!
Day 4
Unit 4 Iteration (for/while)
⏱ 3.0h
학습 목표: for, while, do-while, 중첩 반복, break/continue, off-by-one 주의
💡 꿀팁: for(i=0; i<n; i++) → 0,1,...,n-1 (n번). i<=n 으로 쓰면 IndexOutOfBoundsException 거의 확정.
Day 5
Unit 5 Writing Classes (캡슐화)
⏱ 3.0h
학습 목표: 클래스 정의, 인스턴스 변수, 생성자, getter/setter, this, static
💡 꿀팁: private 인스턴스 변수 + public getter/setter 가 표준 캡슐화. FRQ 에서 다른 클래스 메서드는 직접 access 금지!
Day 6
Unit 6 1D Array
⏱ 3.0h
학습 목표: 배열 선언/초기화, length, 인덱스 접근, 순회, 배열 메서드 작성
💡 꿀팁: 배열은 length (필드), String 은 length() (메서드). ArrayList 는 size() (메서드). 헷갈리지 말 것!
Day 7
Unit 7 ArrayList + 기출 FRQ 2개
⏱ 3.0h
학습 목표: ArrayList<E>, add/get/set/remove/size, iterator, 배열 vs ArrayList 차이
💡 꿀팁: remove(int idx) — 인덱스 기준. ArrayList<Integer> 에서 remove(0) 은 인덱스 0 (값 0 아님). 뒤에서부터 지우면 인덱스 안 꼬임.
Day 8
Unit 8 2D Array
⏱ 3.0h
학습 목표: [row][col] 접근, 행/열 순회, 직사각형 vs 톱니, 2D 메서드 작성
💡 꿀팁: arr.length = 행 개수, arr[0].length = 열 개수. 행 우선 순회: for(r) for(c) arr[r][c].
Day 9
Unit 9 상속·다형성 (고난도)
⏱ 4.0h
학습 목표: extends, super(), Override, abstract, instanceof, 다형성
💡 꿀팁: super() 는 생성자 첫 줄에만! private 메서드는 오버라이드 안 됨. 자식 객체 → 부모 참조 OK, 반대는 캐스팅 필요.
Day 10
Unit 10 Recursion
⏱ 3.0h
학습 목표: 기저 조건, 재귀 호출, 호출 스택, 재귀 vs 반복
💡 꿀팁: 기저 조건(base case) 빠뜨리면 무한 재귀 → StackOverflowError. 재귀는 작은 문제로 줄어드는 방향이어야 함.
Day 11
정렬·탐색 (selection/insertion/merge/binary)
⏱ 2.5h
학습 목표: selection sort, insertion sort, merge sort, binary search 손코딩 + 시간복잡도
💡 꿀팁: binary search 는 정렬된 배열에만 적용! 시간복잡도 O(log n). selection sort O(n²), merge sort O(n log n).
Day 12
Mock 1 Mock Exam 1회 (2024 Past)
⏱ 3.0h
학습 목표: 실전 시간 분배 — MC 70분 + FRQ 90분
💡 꿀팁: FRQ 4문항 90분 = 1문항당 22분. 첫 5분은 문제 읽기 + 메서드 헤더 확인.
Day 13
복습 오답 분석 + Quick Reference 숙지
⏱ 2.5h
학습 목표: Mock 1 오답 단원 재시청, Java 메서드 시그니처 외우기
💡 꿀팁: String/ArrayList/Math/Object 메서드는 외워야 함. Bluebook 안의 Quick Reference 도 자주 참조 가능.
Day 14
Mock 2 Mock Exam 2회 + FRQ 5세트
⏱ 3.0h
학습 목표: 최종 점검 — 시간 안에 FRQ 4문항 완성 확인
💡 꿀팁: 잘 안 풀리는 문제는 일단 표시 후 다음 문제. 부분 점수 노리는 마인드 — 메서드 헤더 + return + 핵심 1줄만이라도 쓸 것.

14일 플랜 끝나고 시험까지 남은 5일. Mock Exam + 약점 보강 + 휴식.

Day 15
버퍼약점 단원 1차 — 영상 재시청 + CodingBat 재실습
⏱ 2.5h
Day 16
버퍼약점 단원 2차 + Past FRQ 3세트 (2017, 2018, 2019)
⏱ 2.5h
Day 17
버퍼Mock Exam 3회 (2023) + 시간 분배 점검
⏱ 3.0h
Day 18
버퍼Quick Reference + 함정 노트 최종 정독, 가벼운 코딩만
⏱ 2.0h
Day 19
버퍼🎯 시험 전날 — 푹 자기. Bluebook 환경 미리 확인. 가벼운 단원 1개 훑기
⏱ 1.0h

시험 중 Bluebook 안에서도 일부 열람 가능. 미리 손에 익히기!

String 메서드

s.length()문자열 길이 (메서드, 괄호 必)
s.substring(i)i부터 끝까지
s.substring(i, j)i부터 j-1까지 (j 미포함)
s.indexOf("abc")위치 반환, 없으면 -1
s.charAt(i)i번째 char 반환
s.equals(t)내용 비교 — == 쓰면 안 됨!
s.compareTo(t)사전순 비교, 음/양/0 반환
s.replace("a", "b")새 String 반환 (원본 불변!)

ArrayList<E> 메서드

list.size()원소 개수 (배열은 length)
list.add(x)끝에 추가
list.add(i, x)i 위치에 삽입
list.get(i)i번째 원소 반환
list.set(i, x)i번째를 x로 교체
list.remove(i)i번째 제거 (인덱스 기준!)
list.contains(x)포함 여부 boolean
list.isEmpty()비었으면 true

Math 클래스

Math.abs(x)절댓값
Math.pow(b, e)b^e (double 반환)
Math.sqrt(x)√x (double 반환)
Math.random()[0.0, 1.0) 난수
(int)(Math.random()*n)0~n-1 정수 난수
(int)(Math.random()*(b-a+1))+aa~b 정수 난수

Object 클래스

obj.equals(other)내용 비교 (오버라이드 가능)
obj.toString()문자열 표현 (오버라이드 권장)
obj == other참조 비교 (같은 객체인지)

Array vs ArrayList

배열 길이arr.length (필드)
ArrayList 크기list.size() (메서드)
배열 접근arr[i], arr[i] = x
ArrayList 접근list.get(i), list.set(i, x)
선언int[] arr = new int[5];
선언ArrayList<Integer> list = new ArrayList<>();

MCQ 자주 틀리는 함정

  1. short-circuit 평가&& 앞이 false면 뒤 안 봄. || 앞이 true면 뒤 안 봄. NullPointerException 회피용으로도 쓰임 (obj != null && obj.method())
  2. String == vs .equals()== 는 참조 비교 → 항상 .equals() 사용
  3. 정수 나눗셈7/2 == 3 (소수점 절삭). 실수 결과 원하면 (double)7/2 == 3.5
  4. Integer overflow — int 범위 −2,147,483,648 ~ 2,147,483,647. 큰 수 곱셈 주의
  5. 객체 vs 기본형 — 메서드에 배열/객체 넘기면 참조 전달 → 원본 변경됨. 기본형(int 등)은 값 복사
  6. 상속에서 private 메서드 오버라이드 — private 은 오버라이드 안 됨 (보이지도 않음). protected/public 만 오버라이드
  7. super() 호출 — 생성자 첫 줄에서만 호출. 안 쓰면 컴파일러가 자동으로 super() 추가

FRQ 채점 — 한국 학생 빈번 감점 포인트

  1. 메서드 헤더 정확히 베껴쓰기public + 반환 타입 + 메서드명 + 파라미터 — 한 글자라도 다르면 -1점. 문제지 헤더를 그대로 복사
  2. length vs size() — 배열은 arr.length (필드, 괄호X), String/ArrayList는 s.length()/list.size() (메서드, 괄호O)
  3. off-by-one< size() vs <= size()-1 — 둘 다 OK지만 <= size() 는 IndexOutOfBoundsException. 반복문 경계 무조건 체크
  4. 다른 클래스 인스턴스 변수 직접 접근 금지 — FRQ 에서 obj.var 로 직접 접근하면 감점. 항상 obj.getVar() getter 호출
  5. return 타입 일치int 반환 메서드인데 double 반환하면 컴파일 에러 → 큰 감점
  6. ArrayList<Integer> removelist.remove(0) → 인덱스 0 제거 (값 0 아님). 값으로 제거하려면 list.remove(Integer.valueOf(0))
  7. 예외 처리는 안 해도 됨 — AP CS A 에서는 try/catch 거의 안 나옴. 적당히 무시
  8. 조건이 없는데 if 안 쓴 경우 — 문제에서 "양수만" 같은 조건 명시되면 if 빠뜨리지 말 것

Bluebook 디지털 시험 환경

  1. 들여쓰기 자동완성 없음 — 스페이스/탭 직접 입력. IDE 와 다름. 미리 타이핑 연습
  2. 복사·붙여넣기는 가능 — 메서드 헤더 복사해서 답안에 붙여넣기 OK
  3. Quick Reference 항상 열람 가능 — String/ArrayList/Math/Object 메서드 시그니처 시험 중 확인 가능. 외울 필요는 살짝 덜함
  4. 저장은 자동 — 각 문항 진행 시 자동 저장. 수동 저장 버튼은 없음