AP Computer Science
Offered: full year course
Prerequisite: must have completed Algebra II and have taken a programming course or have programming experience.
AP Computer Programming A is a year-long course that follows the syllabus of the AP Computer Science curriculum, introducing the key concepts and techniques of object-oriented programming in Java. Both engaging and challenging, this course emphasizes the creative aspects of computing and approaches programming as a problem-solving tool. The analytic, critical-thinking, and problem-solving skills developed in this course will transfer to programming in other languages on a variety of platforms. Each student should leave this course not only with a confident understanding of programming techniques, but also with excitement about what one can do with computer programming.
This course is designed with the idea that programming should be fun, engaging, and intuitive. The primary topics of the AP curriculum will be covered using a variety of tools: Processing, BlueJ, and GridWorld. Processing is a Java-based electronic sketchbook that, by making graphics, sound, video, animation, and keyboard and mouse events easily accessible, encourages tinkering and exploration in a visual environment. BlueJ is a development environment that is more formally Java than Processing . In GridWorld, the AP curriculum’s case study, students explore, extend, and create a variety of actors that interact in a grid-shaped world. Students will explore each main programming topic by working through increasingly involved projects, in order to develop sound problem-solving approaches and come to understand the interrelation between and proper use of these various programming tools.
In today’s world, the importance of developing both an understanding of programming concepts and the ability to approach problems with a “programmer’s eye” cannot be overstated. Although this course will not take you directly to programming high-level games or mobile apps, it will give you a solid foundation from which to launch into a wide and widening range of computer programming areas.











