The Advanced Placement Computer Science A course is equivalent to a first-semester college computer science course focused on object-oriented programming and design using the Java programming language. The rigor of this course is consistent with colleagues and universities and will prepare students for the Advanced Placement exam in May. Upon successful completion of the exam, students may receive college credit and will be well-prepared for advanced statistics coursework. Additional details on this course from College Board can be found here: AP® Computer Science A.
In this course AP® Computer Science A, students will explore four big ideas:
(1) Modularity: Incorporating elements of abstraction, by breaking problems down into interacting pieces, each with their own purpose, makes writing complex programs easier. Abstracting simplifies concepts and processes by looking at the big picture rather than being overwhelmed by the details. Modularity in object-oriented programming allows us to use abstraction to break complex programs down into individual classes and methods.
(2) Variables: Information used as a basis for reasoning, discussion, or calculation is referred to as data. Programs rely on variables to store data, on data structures to organize multiple values when program complexity increases, and on algorithms to sort, access, and manipulate this data. Variables create data abstractions, as they can represent a set of possible values or a group of related values.
(3) Control: Doing things in order, making decisions, and doing the same process multiple times are represented in code by using control structures and specifying the order in which instructions are executed. Programmers need to think algorithmically in order to define and interpret processes that are used in a program.
(4) Impact of Computing: Computers and computing have revolutionized our lives. To use computing safely and responsibly, we need to be aware of privacy, security, and ethical issues. As programmers, we need to understand how our programs will be used and be responsible for the consequences.
AP® Computer Science A is a course designed to awaken and support students’ problem-solving skills. The course will introduce the Java programming language while emphasizing universal language techniques like syntax, semantics, and readability. While Java is the official AP® CS A language, the concepts taught are applicable to any industry standard language such as Python, C++, C#, and JavaScript. Students will gain mastery in programming concepts by using a subset of Java features that are covered when needed throughout the course content. This allows the student to understand and master important concepts that will apply to programming problems in many additional languages.
VHS Learning students will learn complex algorithms using industry standard tools for software development such as the Eclipse Integrated Development Environment and JUnit Java testing framework. These tools make learning easier by providing students with multiple opportunities to complete tasks with instant feedback on the functionality of their code. Programming assignments are carefully scaffolded to move students progressively toward better understanding and greater independence as programmers.
Students will be expected to enroll in My AP Classroom through their VHS Learning AP course and will be guided to complete review work in My AP Classroom throughout the year. My AP Classroom resources include AP Daily Videos and unit-based Personal Progress Checks, which include AP-style multiple-choice and free-response questions.
Students enrolled in VHS Learning Advanced Placement courses with a passing grade are expected to take the AP Exam. Students register for AP exams through their local school or testing site as “Exam Only” students. AP exam scores will be reported to VHS Learning through My AP Classroom; exam results will not affect the student's VHS Learning grade or future enrollment in VHS Learning courses.
About the Self-Paced Course Model
Self-Paced courses are comprehensive and designed for students who need or desire more flexibility in their academic schedule. VHS Learning teachers will regularly interact with students in asynchronous discussions, will host weekly office hours, and will invite students to monthly 1-on-1 progress meetings. Teachers will support students, answer questions, and provide feedback on work. Students will work independently on course activities; the course does not include class discussion assignments or other collaborative work.
Students may start this course on any Wednesday from September through the first Monday in December. Students must maintain enrollment for a minimum of 20 weeks and have until mid-June to complete all assignments in the course. It is expected that students will work for approximately 330 hours to complete this course, though the amount of time may vary depending on a student’s work habits and comfort with the material.
Course Essential Questions:
- How can modularity in object-oriented programming allow one to use abstraction to break complex programs down into individual classes and methods?
- How are variables used to create, store, retrieve or abstract data?
- How is control achieved by using algorithms to define and interpret processes in a program?
- What is the impact of computers and computing on society?
Course Learning Objectives:
- Determine required code segments to produce a given output.
- Determine the output, value, or result of given program code given initial values.
- Write and implement program code.
- Analyze program code for correctness, equivalence, and errors.
- Describe the behavior and conditions that produce identified results in a program.