AP Computer Science A Syllabus
Course Overview
AP Computer Science A is an introductory college-level computer science course that emphasizes object-oriented programming and problem-solving. The course is designed to prepare students for the AP Computer Science A Exam while fostering a deep understanding of programming concepts, algorithms, and data structures. Students will use Java as the primary programming language and will engage in hands-on projects, coding exercises, and algorithmic problem-solving.
This course will also incorporate foundational computer science concepts from the textbook "Invitation to Computer Science" by G. Michael Schneider and Judith L. Gersting, providing a broader context for understanding computational thinking and the principles of computer science.
Course Objectives
By the end of the course, students will be able to:
- Design, implement, and analyze solutions to problems using object-oriented programming in Java.
- Understand and apply fundamental programming constructs, including variables, loops, conditionals, and methods.
- Develop and use algorithms to solve computational problems.
- Work with data structures such as arrays, ArrayLists, and 2D arrays.
- Understand and apply principles of inheritance, polymorphism, and abstraction.
- Analyze and debug programs to ensure correctness and efficiency.
- Prepare for and succeed on the AP Computer Science A Exam.
Textbook
Title: Invitation to Computer Science
Authors: G. Michael Schneider and Judith L. Gersting
Edition: Latest Edition (as available)
This textbook provides an introduction to the theoretical and practical foundations of computer science. While the primary focus of the course is Java programming, selected chapters from the textbook will be used to explore topics such as algorithms, computational theory, and the history of computing.
Grading Policy
Grades will be based on the following components:
Category | Percentage |
---|---|
Attenence | 15% |
Class Participation | 15% |
Homework | 20% |
Exam | 50% |
- Late Work Policy: Assignments submitted late will incur a penalty of 10% per day, up to a maximum of 5 days. After 5 days, no credit will be given.
- Extra Credit: Occasionally, extra credit opportunities may be provided, such as solving advanced coding challenges.
Classroom Expectations
- Be Respectful: Respect your peers, instructor, and the learning environment.
- Be Prepared: Bring your materials (textbook, notebook, laptop) and complete assignments on time.
- Engage Actively: Participate in discussions, ask questions, and collaborate with classmates.
- Follow Academic Integrity: Plagiarism or copying code is strictly prohibited. All work must be your own.
- Practice Regularly: Programming is a skill that improves with consistent practice.
AP Exam Information
- Exam Date: Refer to the College Board website for the official AP Computer Science A Exam date.
- Exam Format:
- Section I: Multiple Choice (40 questions, 50% of the score)
- Section II: Free Response (4 questions, 50% of the score)
- Topics include methods and control structures, classes, arrays, and algorithms.
- Preparation:
- Weekly practice exams and coding challenges will simulate the AP Exam format.
- Review sessions will be held in the final 9 weeks of the course.
Course Schedule
Weeks 1 - 2 : Introduction to Computer Science and Java
- Topics:
- Overview of computer science (Textbook: Chapter 1)
- History of computing and algorithms (Textbook: Chapter 2)
- Introduction to Java programming
- Setting up the development environment (e.g., IntelliJ, Eclipse, or BlueJ)
- Writing your first Java program
- Assignments:
- Simple Java programs (Hello World, basic input/output)
- Reading: Chapters 1-2 of the textbook
Weeks 3 - 5 : Basic Programming Constructs
- Topics:
- Variables, data types, and operators
- Input/output in Java
- Control structures: if/else, switch, loops (for, while, do-while)
- Debugging techniques
- Assignments:
- Coding exercises on loops and conditionals
- Mini-project: Create a simple calculator program
- Reading:
- Textbook: Chapter 3 (Algorithms and Problem Solving)
Weeks 6 - 8 : Methods and Object-Oriented Programming
- Topics:
- Defining and calling methods
- Parameters, return values, and method overloading
- Introduction to object-oriented programming (OOP)
- Classes and objects in Java
- Assignments:
- Write programs using custom methods
- Mini-project: Create a class for a simple banking system
- Reading:
- Textbook: Chapter 5 (Object-Oriented Paradigms)
Weeks 9 - 11 : Arrays and ArrayLists
- Topics:
- One-dimensional arrays
- ArrayLists and their methods
- Iterating through arrays and ArrayLists
- Searching and sorting algorithms (selection sort, insertion sort)
- Assignments:
- Practice problems on arrays and ArrayLists
- Mini-project: Develop a gradebook application
- Reading:
- Textbook: Chapter 6 (Data Structures)
Weeks 12 - 14 : Advanced OOP Concepts
- Topics:
- Inheritance and polymorphism
- Abstract classes and interfaces
- Encapsulation and access modifiers
- Assignments:
- Coding exercises on inheritance and polymorphism
- Mini-project: Create a library management system
- Reading:
- Textbook: Chapter 7 (Advanced OOP Concepts)
Weeks 15 - 18 : Recursion and 2D Arrays
- Topics:
- Introduction to recursion
- Writing recursive methods
- 2D arrays: Declaration, initialization, and traversal
- Assignments:
- Solve recursion problems (e.g., factorial, Fibonacci)
- Mini-project: Create a Tic-Tac-Toe game using 2D arrays
- Reading:
- Textbook: Chapter 8 (Algorithms and Recursion)
Weeks 19 - 28 : AP Exam Preparation
- Topics:
- Review of all topics
- Practice AP-style multiple-choice and free-response questions
- Timed mock exams
- Assignments:
- Weekly practice exams
- Coding challenges to reinforce weak areas
Week 28 - 34: Final Project
- Objective: Apply all concepts learned in the course to create a comprehensive project.
- Examples:
- Develop a simple game (e.g., Hangman, Snake)
- Deliverables:
- Final project code and documentation
- Presentation to the class
Contact Information
- Instructor: [Feng Gao]
- Email: [york@ghedu.com]