302 continues on from C301 in the TechSmartKids Python curriculum. Students will continue to learn the core concepts of the Python language, including the use of code libraries. In particular, in this course students will learn to use the PyGame library, which allows students to code games and other visual programs. C302 expands on the basic coding concepts learned in C301 and introduces the ability to make more complex, graphics-based games. Students will work their way through the advanced coding topics that make games (and other visual programs) possible - including procedural drawing and complex input from mouse and keyboard. Students will code a variety of exercises both on their own and with the teacher that make use of these techniques to create games, art projects, and more. Coding concepts covered in C302 include: * Review of Loops and Conditionals * Code Libraries * Randomness * PyGame * Procedural Drawing * Coordinates * Lines * Shapes * Colors * Animation * Complex Input * Mouse Clicking * Mouse Movement * Keyboard Input * Code Organization & Game Structure * Event Loops * Commenting Best Practices * Timing & Timers The exercise-based structure of the C302 course allows students to cover topics first by working with the class directly under the teacher’s guidance, and then by exploring and practicing the concepts at their own pace with teacher support. The exercises allow for a variety of learning styles, building skills in code writing, code debugging, and code analysis.