Long Nguyen
Resources and online courses for Math and Computer Science.
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 Python
- Basic Datatypes(PPT, PDF)
- Operations and Variables(PPT, PDF)
- Conditionals(PPT, PDF)
- Animation with Processing(PPT, PDF)
Intro Processing Lab(ZIP)
Growing Circle Lab(ZIP)
Bouncing Ball Lab(ZIP)
Paddle and Ball Lab(ZIP)
Capture A Flag(ZIP)
Capture the Flags(ZIP)
List of Circles(ZIP)
Intro OOP Lab(ZIP)
Control Sprite By Keyboard(ZIP)
Creating a 2D Map of Sprites (ZIP)
Top-Down Games Collision(ZIP, Slides PDF)
Breadth-First Search(PPT, PDF)
AI: Eight Puzzle Solver (ZIP)
Text Processing: Analyzing Shakespeare(txt, HTML, ZIP)
Luhn's Algorithm: Validity of Credit Card Numbers(PPT, PDF)
The Create Task
Computer Science Principles
- Understanding Data 1: Representing Data Digitally(PPT, PDF)
- Understanding Data 2: Images and Compression(PPT, PDF)
Image Processing Lab(ZIP, online notebook(MyBinder))
Intro Exploratory Data Analysis with Pandas(ZIP, online notebook(MyBinder))
Audio Basics Lab(ZIP, online notebook(MyBinder))
AP Exam Preparation (PPT, PDF)
Interesting Short Projects/Applications in Python
Computer Animation with Processing
- Introduction to Processing(Python Version)(PPT, PDF)
Processing Python Template(ZIP)
Create and Control Sprites Lab(ZIP)
Pick Up Coins Lab(ZIP)
Tank Shoots Bricks Lab(ZIP)
Top-Down Games Collision(ZIP)
How to write a very simple platformer game!
- How to Resolve Platform Collisions(Youtube)
- How to Jump(Youtube)
Platformer Game 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)
Additional Topics
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.
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.
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.