AP Computer Science Principles
This is a resource for teachers and students for AP Computer Science Principles. This curriculum is being updated for newly revised 2020-21 College Board curriculum. The official language for the course is Python.
Course Outline and Lecture Notes
Introduction to Programming with PythonWe will cover the essentials of the Python language: data types, conditionals, loops, basic data structures including lists, tuples and dictionaries, functions, object-oriented programming and inheritance.
- Python Datatypes: Integers, Floats, Booleans and NoneType (PPT, PDF)
- Operations and Variables(PPT, PDF)
Computer Science PrinciplesWe will cover general computer science principles here.
- Number Systems and Character Encoding(PPT, PDF)
- (Optional)Unicode Character Encoding with Python (PPT, PDF)
- Images and Their Pixels (PPT, PDF)
- Audio and Video (PPT, PDF)
- Digital Audio Processing with Python: Part 1: Audio Basics (PPT, PDF)
- Digital Audio Processing with Python: Part 2: The Discrete Fourier Transform (PPT, PDF)
- The Internet: An Introduction to Networking (PPT, PDF)
- Global Impact(PPT, PDF)
- Cryptography(PPT, PDF)
- Cybersecurity(PPT, PDF)
- Machine Learning(PPT, PDF)
Image Processing Lab(ZIP)
Audio Basics Lab(ZIP)
Discrete Fourier Transform Lab(ZIP)
Interesting Short Projects/Applications in Python
Computer Animation with ProcessingWe will introduce computer graphics using Processing.
- Introduction to Processing(Python Version)(PPT, PDF)
- Keyboard and Mouse Inputs(PPT, PDF)
- Collision Detection(PPT, PDF)
Processing Python Template(ZIP)
Pick Up Coins Lab(ZIP)
Tank Shoots Bricks Lab(ZIP)
Text Processing: Analyzing Shakespeare
A short problem set and tutorial on how to perform a simple word frequency analysis: total words, total unique words and most frequently used words in all of Shakespeare's collection of works. (HTML, ZIP)
Introduction to Neural Networks
A 2-3 weeks curriculum designed for AP Computer Science Principles on Neural Networks. Students will implement from scratch a Python program that recognizes handwritten digits! The full course resources page can be found here.
Introduction to the Discrete Fourier Transform
This course explains the math behind the Discrete Fourier Transform and illustrates its utility through analyzing and manipulating audio files in Python. The full course resources page can be found here.