이곳은 개발을 위한 베타 사이트 입니다.
기여내역은 언제든 초기화될 수 있으며, 예기치 못한 오류가 발생할 수 있습니다.
기여내역은 언제든 초기화될 수 있으며, 예기치 못한 오류가 발생할 수 있습니다.
AP 컴퓨터과학
덤프버전 :
1. 개요[편집]
AP Computer Science
미국 칼리지 보드에서 주관하는 고등학교 컴퓨터과학 교육과정 및 표준화 시험으로, AP 과목 중 하나다. AP 컴퓨터과학 기본과 AP 컴퓨터과학 A의 2개 과목으로 나뉜다. 한국어로는 앱컴싸라고도 한다.
2. AP 컴퓨터과학 기본[편집]
AP Computer Science Principles
AP 컴퓨터과학 A보다 좀 더 기초적이고 간단한 컴퓨터 지식을 다룬다.
74문제의 객관식 문제와 직접 프로그램을 만들어 제출해야 하는 프로젝트로 나뉜다. 객관식 문제는 총 점수의 70%, 프로젝트는 30%를 차지한다. 객관식 문제는 주로 의사코드를 보고 리턴값을 구하거나 빠진 코드 채우기, 인터넷이 어떻게 돌아가는지 같은 간단한 컴퓨터 관련 지식에 대해 나온다. 주의해야 할 점으로 코딩 좀 해 본 사람들이 오히려 당황할 수 있는 문제들이 가끔 있는데, 예를 들면 리스트의 index가 0이 아니라 1부터 시작한다. 시험 칠 때 문제에 나오는 의사코드에 대한 설명서 같은 것을 같이 주니 잘 읽어보자. 프로젝트는 아무 프로그래밍 언어를 써도 상관없으나[1] 반드시 입력과 출력이 있어야 하며 함수, 리스트 등 칼리지보드에서 요구하는 것들이 들어가야 고득점을 받을 수 있다.
난이도는 간단한 편이지만 그만큼 커트라인도 높다. 2021년의 경우 5점을 받으려면 점수가 90%이상이 되어야 한다! [2]
3. AP 컴퓨터과학 A[편집]
AP Computer Science A
AP 컴퓨터과학 기본보다 심화된 내용을 다룬다. A와 AB가 있었지만 AB는 2009년도에 예산문제로 짤렸다. 보통 Precalculus를 이수한 뒤에 이수하거나 응시한다.
시험 이름만 컴퓨터 과학이고 사실상 Java 프로그래밍에 관한 문제들이라고 비아냥거리는 사람도 있는데, 사실상 컴퓨터 과학에서 언어는 말 그대로 알고리즘을 표현하는 방법일 뿐이다. AP Computer Science A에서는 프로그래밍의 이론적인 측면을 잘 이해하고 있는지를 테스트하는 문제들이 많은데, 재귀함수라든지 알고리즘의 Complexity라든지 Computability라든지, 사용하는 프로그래밍 언어에 구애받지 않는(Language-independent) 추상적인 내용을 강조하는 편. AP Computer Science는 이러한 기술들을 Java라는 언어를 사용해서 알아보고자 하는 것이다.
2020년대 이후 시대의 변화에 따라 대학에서 전산 및 컴퓨터 관련분야 전공 입문 과정 강의[3] 에 사용되는 언어가 점차 변화함에 따라 Java 대신 Python 혹은 JavaScript를 도입하는 것이 논의되고 있다.
3.1. 내용[편집]
칼리지 보드 시험에는 AP Computer Science A Java Subset에 포함된 내용만 출제됨에 주의. 예를 들어 원시 자료형 중에는 int, double, boolean만 출제되고, char, byte, short, long, float 등은 출제되지 않는다. 물론 칼리지 보드 시험이 아닌 실제 고등학교 수업에서는 Subset 밖의 내용도 가르치는 경우가 흔하다.
- Primitive Types - 원시 자료형. int, double, boolean 등 여러가지 원시 자료형들의 개념을 배운다.
- Using Objects - 객체 사용하기. 객체 지향 프로그래밍을 배운다.
- Boolean Expressions and if Statements - if, else if, else를 활용해서 조건부 프로그래밍을 하는 법을 배운다.
- Iteration - for loop 과 while loop의 문법과 사용법을 배운다.
- Writing Classes - 클래스 쓰는 법. constructor, getter, 그리고 setter method의 개념과 문법들을 배운다.
- Array - 배열
- ArrayList
- 2D-Array
- Inheritance - 상속(프로그래밍)
- Recursion - 재귀함수
3.2. 난이도[편집]
Multiple-Choice 섹션은 총 40문제로 1시간 15분을 준다. 주로 코드를 주고 리턴 값을 알아내라고 하는 문제들이다. 시간이 많다고 느리게 하다 다 못 끝내는 학생들이 수두룩하니 절대로 느긋하게 풀어선 안된다.
Free-Response 섹션에서는 프로그래밍 언어로 자바 클라스를 써야 된다. FRQ의 난이도는 매년 어려워지는 추세다. 2019년에는 사실상 코딩 테스트에나 나올 법한 문제가 나왔다.
2016년 시험 기준으로 약 20%의 학생이 5점을 받으며 전체적인 난이도는 사람마다 천차만별이다. 컴퓨터를 좋아하고 수학적 감각이 있는 사람은 너무도 쉽게 5점을 받지만, 못하는 학생은 참 힘들다. 컴퓨터 과학이란 학문 자체가 잘하는 학생과 못하는 학생이 쉽게 구분되기 때문에, 프로그래밍을 못할 경우 응시를 재고해 보는 게 좋다. 수강 신청을 하기 전에 간단한 프로그램이라도 만들어보며 자신이 프로그래밍에 잘 맞는지 확인해 보길 추천한다.
AP 컴퓨터 과학에는 항상 학생들을 짜증나게 하는 문제들이 있는데, for과 if 구문을 복잡하게 꼬아서 내는 문제의 비율이 상당하다.
4. 둘러보기[편집]
[1] 스크래치같은 교육용 프로그램을 써도 된다[2] AP 컴퓨터과학 A의 경우는 75%다[3] CS1이라 불린다. 필수적으로 문제 해결을 위한 알고리즘의 작성, 이를 특정 언어를 이용하여 프로그램으로 작성하는 방법 (기본 입출력, 변수, 분기, 반복, 배열과 리스트, 함수), 재귀 알고리즘, 정렬 알고리즘, 알고리즘 분석(기초 asymptotic analysis) 등이 포함된다. 여기에 객체 지향 프로그래밍의 기본을 추가하기도 한다. CS1 이수 후에 수강하는 두 번째 강의는 CS2로 불리며 스택, 큐, 해시 테이블, 트리(탐색트리, 자가 균형 트리 포함), 힙 등 자료구조를 다룬다.