AP Computer Science A – Grade: 10,11,12
Prerequisites
Computer science is founded upon mathematical reasoning; this foundation is regularly referenced and applied throughout the course. Students must feel comfortable with function notation when expressed as f(x) = x+2 and f(x) = g(h(x)). Typically, these concepts are introduced in an Algebra 2 course. There are no programming language prerequisites for AP Computer Science.
This course has an AP fee. See Additional requirements for details.
Description
**Please Note: VHS AP Computer Science is under minor revisions for the 14-15 academic year. This course will meet all College Board requirements set forth in the new 2014 AP Course Description. This course remains an approved AP course in the College Board’s records. This description and syllabus are subject to changes.**
Advanced Placement (AP) Computer Science A is designed to prepare students for the College Board’s AP Computer Science A Exam. The course curriculum covers the topics and activities of a first-year computer science course at the undergraduate level. It is designed to be engaging and motivating for the high school student.
AP Computer Science 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. 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.
Students in AP Computer Science will begin by encountering situations that involve solving problems with the use of primitive data types, methods, and control statements. Later, this inquiry will evolve into the use of Object Oriented Programming (OOP), which is today’s most common and practical way to develop software.
Throughout the course, students will also grow to understand how computers process information. This understanding will deepen as students apply concepts like string manipulation, the behavior of elements in arrays and lists, and the use of external data to interact with algorithms.
The College Board’s AP Computer Science curriculum presents three hands-on laboratory practice sets that will help students synthesize course concepts. These labs will expand and secure their knowledge of programming and prepare them thoroughly for the AP Computer Science exam in May.
Students enrolled in Advanced Placement VHS courses are required to take the AP exam, and are required to report their AP® examination scores to VHS (note: students who are failing their AP class are not required to take the exam). Upon receipt of the student’s exam score, each score will be recorded by VHS and assigned an anonymous tracking number to ensure student anonymity and confidentiality. By enrolling in an AP VHS class, the student authorizes their school site coordinator and school administration to report AP examination scores to VHS. Exam results will not affect the student’s VHS grade or future enrollment in VHS courses.
Course Objectives
1. To be able to discuss and debate about programming languages, the software development process and computer technology.
2. To be able to design and implement computer-based solutions to problems in a variety of applications.
3. To be able to design and analyze portions or complete code structures to drive decisions towards improvement and implementation.
4. To be able to use and implement well-known algorithms.
5. To be able to develop and select appropriate algorithms and data structures to solve problems.
6. To be able to code fluently in an object-oriented paradigm using the Java programming language.
7. To be able to use standard Java library classes from the AP Java subset.
8. To be able to read and understand the College Board’s APCS Case Studies.
Additional Requirements
Please refer these requirements to your school’s technology staff prior to registering for the course. Schools must install and allow student access to the resources listed here, in order for a student to participate in the course.
Please see software manufacturers’ websites for further information and system requirements.
In addition to VHS system requirements:
Software used: The most recent stable release of the Java Standard Edition (SE) Development Kit (JDK); the Eclipse Kepler Standard IDE version 4.3.2 or newer for Windows or Mac OS.
Specific URLs accessed: multiple addresses at domains: “oracle.com,” “eclipse.org,” “collegeboard.com”
Syllabus
Week 1: Introduction to APCS
1. To introduce yourself to your fellow classmates by establishing your personal profile in the course.
2. To demonstrate your mastery in navigating the online course interface.
3. To reflect upon your individual academic and technical skill set.
Week 2 & 3: Establishing our Programming Environment and Working Guidelines
1. To demonstrate skill in use of the VHS learning environment.
2. To familiarize yourself with www.collegeboard.com and the APCS course description.
3. To successfully establish the Java programming utilities on your machine.
4. To acquire the necessary skill in the IDE before beginning in-depth programming projects.
5. To share your thoughts on the topic of computer ethics.
6. To demonstrate skill in sending compressed Java project files back to the instructor.
Week 4: Introduction to Object Oriented Programming.
1. To be able to edit, compile and run a program using the Java Development Kit.
2. To understand the structure of a Java Program.
3. To distinguish between Java Virtual Machine and byte code.
Week 5 & 6: Java Syntax, Semantics, Readability, and Coding Style
1. To be able to use basic Java syntax and semantics.
2. To identify variables and their declarations.
3. To construct arithmetic expressions using Java language syntax.
4. To adopt a proper coding style using typographical considerations for readability.
Week 7: Strings and Methods
1. To demonstrate ability in the implementation of standard String methods.
2. To revise the construction of methods in a program.
3. To successfully solve a problem using programming.
Week 8: Control Statements
1. To effectively use the standard Math Methods and Math operators.
2. To apply concepts for constructing appropriate conditions and looping structures.
3. To successfully develop an independent Java project.
Week 9: Control Statements Revisited
1. To analyze complex Boolean expressions that involve logical operators.
2. To connect nested “if” statements with simple conditional structures.
3. To test and prove conditional statements sufficiently.
Week 10 – 12: External Data and the StringTokenizer
1. To apply concepts of files to import and use external data from text files.
2. To use the StringTokenizer class to manipulate Strings.
3. To effectively solve various programming challenges.
Week 13 & 14: An Enhanced Version (Strings and Loops Together)
1. To connect the theory of Strings with the power of control statements.
2. To design a solution for a major programming project.
Week 15: Major Project Completion
1. To demonstrate the ability to construct effective programs.
2. To effectively utilize the Random class.
3. To continue demonstrating success in the use of methods and modular programming.
Week 16: Classes and Objects
1. To understand the internal structure of classes and objects.
2. To organize a class in terms of its name, instance variables, constructors, and helping methods.
3. To analyze in depth the difference of primitive types, reference types and the null value.
Week 17: Methods and Parameters
1. To understand how parameters transmit data to methods.
Week 18: Arrays
1. To demonstrate understanding of arrays.
2. To demonstrate ability to use arrays to store data.
3. To develop skills in processing data held in arrays.
4. To create methods to manipulate 1D, 2D, and parallel arrays.
Week 19: Arrays Extended, and Group Project Completion
1. To use arrays to solve a programming project.
2. To manipulate objects stored in arrays.
Week 20 & 21: Classes and Inheritance
1. To apply concepts of inheritance to extend a class and its inherited characteristics.
2. To analyze the role of Java Interfaces in a software development system.
3. To understand the structure of hierarchy in object oriented programming.
Week 22 & 23: Polymorphism and ArrayList
1. To understand how polymorphism is applied to associated objects.
2. To recognize the types of collections and resources.
3. To effectively use methods from the List interface and implement an ArrayList.
Week 24 & 25: Recursion
1. To be able to describe what recursion is and how it differs from iteration.
2. To be able to write simple recursive methods.
3. To prove a recursive method for correctness.
Week 26: Searching and Sorting
1. To analyze the complexity of different types of searching algorithms.
2. To revise the efficiency of a sorting algorithm.
3. To create a sorting algorithm implemented for different data types.
Week 27: Searching and Sorting and Lab Completion
1. To analyze a complete Java project.
2. To assess the knowledge acquired during the course.
3. To draw conclusions about best practices in programming.
Week 28 & 29: Picture Lab (Content Summary)
1. To introduce two dimensional arrays using the context of manipulating digital pictures.
Week 30 – 32: AP Exam Review
1. To identify any gaps in knowledge that need to be reviewed before the AP Exam.
2. To gain familiarity with the types of questions that will appear on the AP Exam.
3. To be able to function within the time constraints imposed by the AP Exam.
Week 33: Self-evaluation and Closure
1. To complete the course exit interview assessing the nature and difficulty of the course.
2. To complete the AP Exam exit interview assessing the nature and difficulty of the test.
Media Kit
Item Title/Name: eBook: Fundamentals of Java™: AP* Computer Science Essentials
ISBN: 9780538744928
Pub: Cengage
Author: Lambert and Osborne
Edition/Date: 4th Edition, 2011
Item Title/Name: eBook: Be Prepared for the AP* Computer Science Exam in Java
ISBN: 9780982477533
Pub: Skylight Publishing
Author: Litvin, Gary and Maria
Edition/Date: 6th Edition, 2014