COURSE OVERVIEW

An in-depth course about two of the fundamental topics in computer science — data structures and algorithms. This course is designed for those who have basic knowledge of Java programming and ready to move a step beyond programming language. Data Structures & Algorithms course is divided into two subcourses, each consists of multiple sessions with the difficulty gradually increases. It covers everything you need to know for competitive programming, from basic concepts to practical experience. If you’re able to master all the content in this course, trust me, you’ll be able to stand out in USACO open contests (or even get a job in Silicon Valley). Most importantly, this course develops the skills of modeling and logical thinking, and clears the way towards advanced topics in computer science and artificial intelligence.

Curriculum in Detail

Part I – Design and Implementation of Games (and Applications)

  1. Interlude – Using the Debugger (1 hour)
  2. Project 4a – Designing Hangman with Flowcharts (1.5 – 2 hour)
  3. Project 4b – Writing the Hangman Code (2 – 3 hours)
  4. Project 4c – Extending Hangman (2 hours)
  5. Project 5 – Tic-Tac-Toe (3 – 4 hours)
  6. Project 6 – The Bagels Deduction Game (2 – 3 hours)
  7. Interlude – The Cartesian Coordinate System (1 hour)
  8. Project 7 – Sonar Treasure Hunt (4 hours)
  9. Project 8 – Caesar Cipher (2 – 3 hours)
  10. Project 9a – The Reversegam Game (4 – 5 hours)
  11. Project 9b – Reversegam AI Simulation (2 – 3 hours)

Part II – Introducing PyGame – 2-D Graphics Game Design using Python

  1. Project 10 – Creating Graphics (1.5 – 2 hours)
  2. Project 11 – Animating Graphics (1.5 – 2 hours)
  3. Project 12 – Collision Detection (1.5 – 3 hours)
  4. Project 13 – Using Sounds and Images (1.5 – 3 hours)
  5. Project 14 – A Dodger Game with Sounds and Images (1.5 – 3 hours)