
This advanced course introduces students to computer science through programming. Fundamental topics in this course include the design of solutions to problems, the use of data structures to organize large sets of data, the development and implementation of algorithms to process data and discover new information, the analysis of potential solutions, and the ethical and social implications of computing systems. The course emphasizes object-oriented programming and design using the Java programming language. This advanced course is equivalent to an introductory college course in computer science. It can be taken by students with or without programming experience. It is recommended that a student in the AP Computer Science A course has successfully completed a first-year high school algebra course with a strong foundation of basic linear functions, composition of functions, and problem-solving strategies that require multiple approaches and collaborative efforts. In addition, students should be able to use a Cartesian (x, y) coordinate system to represent points on a plane. AP Computer Science A builds upon a foundation of mathematical reasoning that should be acquired prior to taking this course. Students will earn math credit for this course. Students taking this course will be asked, and strongly encouraged, to take the AP Computer Science A Exam in May as an important part of their AP experience.