In the United States, Advanced Placement Computer Science (commonly shortened to AP Comp Sci) is a suite of
Advanced Placement courses and examinations covering areas of
computer science
Computer science is the study of computation, automation, and information. Computer science spans theoretical disciplines (such as algorithms, theory of computation, information theory, and automation) to practical disciplines (includin ...
. They are offered by the
College Board to
high school
A secondary school describes an institution that provides secondary education and also usually includes the building where this takes place. Some secondary schools provide both '' lower secondary education'' (ages 11 to 14) and ''upper seconda ...
students as an opportunity to earn college credit for
college
A college ( Latin: ''collegium'') is an educational institution or a constituent part of one. A college may be a degree-awarding tertiary educational institution, a part of a collegiate or federal university, an institution offering ...
-level courses. The suite consists of two current classes and one discontinued class.
AP Computer Science was taught in
Pascal for the 1984–1998 exams, in
C++ for 1999–2003, and in
Java
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
since 2004.
AP Computer Science A
AP Computer Science A
Advanced Placement (AP) Computer Science A (also known as AP CompSci, AP CompSci A, APCS, APCSA, AP Computer Science Applications, or AP Java) is an AP Computer Science course and examination offered by the College Board to high school students a ...
is a programming class.
The course emphasizes
object-oriented programming
Object-oriented programming (OOP) is a programming paradigm based on the concept of " objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of ...
methodology, especially problem solving and
algorithm
In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for performing ...
development, plus an overview of data structures and abstraction. The
AP Computer Science A
Advanced Placement (AP) Computer Science A (also known as AP CompSci, AP CompSci A, APCS, APCSA, AP Computer Science Applications, or AP Java) is an AP Computer Science course and examination offered by the College Board to high school students a ...
exam tests students on their knowledge of
Java
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
.
It is meant to be the equivalent of a first-semester college course in computer science.
The
Microsoft
Microsoft Corporation is an American multinational corporation, multinational technology company, technology corporation producing Software, computer software, consumer electronics, personal computers, and related services headquartered at th ...
-sponsored program
Technology Education and Literacy in Schools Technology Education and Literacy in Schools (TEALS) is a program that pairs high schools with software engineers who serve as part-time computer science teachers.
The program was started in 2009 by Microsoft software engineer Kevin Wang, but after ...
(TEALS) aims to increase the number of students taking AP Computer Science classes.
AP Computer Science AB (discontinued)
AP Computer Science AB included all the topics of AP Computer Science A, as well as a more formal and a more in-depth study of
algorithms
In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for performing ...
,
data structures
In computer science, a data structure is a data organization, management, and storage format that is usually chosen for efficient access to data. More precisely, a data structure is a collection of data values, the relationships among them, a ...
, and
data abstraction
In software engineering and computer science, abstraction is:
* The process of removing or generalizing physical, spatial, or temporal details or attributes in the study of objects or systems to focus attention on details of greater importance ...
. For example,
binary trees
In computer science, a binary tree is a k-ary k = 2 tree data structure in which each node has at most two children, which are referred to as the ' and the '. A recursive definition using just set theory notions is that a (non-empty) binary ...
were studied in AP Computer Science AB but not in AP Computer Science A. The use of
recursive
Recursion (adjective: ''recursive'') occurs when a thing is defined in terms of itself or of its type. Recursion is used in a variety of disciplines ranging from linguistics to logic. The most common application of recursion is in mathemati ...
data structures and
dynamically allocated structures were fundamental to AP Computer Science AB.
AP Computer Science AB was equivalent to a full-year college course.
Due to low numbers of students taking the exam, AP Computer Science AB was discontinued following the May 2009 exam administration.
AP Computer Science Principles
AP Computer Science Principles is an introductory course to computer science, "with a focus on how computing powers the world".
It is designed as a parallel to AP Computer Science A, to emphasize
computational thinking
Computational thinking (CT) is the mental skill to apply concepts, methods, problem solving techniques, and logic reasoning, derived from computing and computer science, to solve problems in all areas, including our daily lives. In education, CT ...
and fluency. It is meant to be the equivalent of a first-semester course in computing.
See also
*
AP Computer Science A
Advanced Placement (AP) Computer Science A (also known as AP CompSci, AP CompSci A, APCS, APCSA, AP Computer Science Applications, or AP Java) is an AP Computer Science course and examination offered by the College Board to high school students a ...
*
Computer science
Computer science is the study of computation, automation, and information. Computer science spans theoretical disciplines (such as algorithms, theory of computation, information theory, and automation) to practical disciplines (includin ...
*
Glossary of computer science
*
Scope (computer science)
In computer programming, the scope of a name binding (an association of a name to an entity, such as a variable) is the part of a program where the name binding is valid; that is, where the name can be used to refer to the entity. In other part ...
*
Computer graphics (computer science)
Computer graphics is a sub-field of computer science which studies methods for digitally synthesizing and manipulating visual content. Although the term often refers to the study of three-dimensional computer graphics, it also encompasses two-di ...
References
{{reflist
Computer science education
Computer engineering