Course Overview
The CodeHS Advanced Python and AI Programming course teaches students advanced programming concepts in Python and how to apply them to real-world problems. Students move well beyond the basics: they implement advanced data structures and algorithms, apply object-oriented programming, tackle classical AI challenges, and explore a wide range of Python libraries. Across the course, students build three substantial portfolio projects, including an original text adventure game, a working music player, and a machine learning classifier they design, train, and evaluate themselves. By the end, students are equipped to reason about efficiency, model real-world entities in code, and build AI-powered applications from the ground up.
Who Should Take This Course?
This is a high school course aimed at students who already have a solid foundation in Python programming and are ready to go deeper. It is best suited for students who have completed an introductory Python course (or equivalent) and are comfortable with variables, control structures, loops, and functions. Motivated students who learned programming in another language can take the course but may need extra support with Python syntax early on.
For students who need to build or refresh those fundamentals, the course includes a supplemental Python Programming Fundamentals module (see What's Covered below) that can be used as a warm-up or a just-in-time review.
Course Duration and Format
Length: Year-long (approximately 110 contact hours)
Format: Concept instruction paired with hands-on coding, culminating in three milestone-based build projects and a cumulative final exam
Language: Python
Level: High School
What's Covered
For the full course syllabus, click here.
The course is organized into ten core modules plus a supplemental fundamentals module. Below is a summary of what students learn and do in each.
Module 1: Welcome to Advanced Python and AI:
Students review and extend core Python skills, including program structure around a main() function, comments and docstrings, formatted output with f-strings, exception handling with try/except, lambda functions, and control-flow keywords, to prepare for the object-oriented and data-driven work ahead.
Module 2: Object-Oriented Programming:
Students learn to design and implement classes, using constructors, getters and setters, inheritance, polymorphism, composition, and magic methods to model real-world entities in code.
Module 3: Libraries and Packages:
Students use standard and third-party Python libraries to work with web data, perform numerical computing, clean and structure datasets, visualize data, and test their own code.
Module 4: Build Your Own Adventure Game (Project):
Students plan and build an original text adventure game across a series of milestones, applying classes, packages, and program design skills from earlier modules to their own story.
Module 5: Data Structures:
Students implement and apply core data structures, including sets, stacks, queues, linked lists, hash tables, trees, heaps, and graphs, to solve realistic problems.
Module 6: Algorithms:
Students analyze algorithm efficiency using Big O notation and implement classic search, sort, and recursive algorithms (linear and binary search; bubble, selection, insertion, merge, and quick sort; recursion) to understand their tradeoffs.
Module 7: Build a Music Player (Project):
Students design and build a working music player across a series of milestones, applying custom data structures and search and sort algorithms to their own project.
Module 8: Algorithms That Think:
Students explore foundational AI concepts, including graph search (breadth-first, depth-first, Dijkstra's, A*), heuristic and greedy search, and core machine learning models such as linear regression, k-nearest neighbors, decision trees, neural networks and perceptrons, and clustering.
Module 9: Build a Classifier (Project):
Students design, build, train, and evaluate an original machine learning classifier across a series of milestones, culminating in a documented and presented final project.
Module 10: Final Exam:
Students complete a cumulative, multiple-choice exam assessing understanding from Python fundamentals through object-oriented programming, data structures, algorithms, and AI/machine learning.
Module 11: Python Programming Fundamentals (Supplemental):
An optional review module covering the language of computers, printing, variables and types, user input, comments, if statements, while and for loops, flowcharts and pseudocode, functions, string methods, and lists. Use this to onboard students who need to build or refresh Python basics before the core content.
Prerequisites
There are no hard prerequisites, but this is an advanced, fast-paced course, and students should arrive with prior Python programming experience. We recommend that students complete Introduction to Computer Science in Python, or an equivalent introductory programming course, before enrolling. Students coming from a different language can succeed but should expect to spend extra time on Python syntax at the start. The supplemental Python Programming Fundamentals module (Module 11) is available for review or onboarding.
Curriculum Pathways
This course is part of the CodeHS High School Python Pathway, where it serves as an advanced offering that builds on introductory Python coursework. To see how it fits into a full course sequence, visit the High School Python Pathway or explore all CodeHS Curriculum Pathways.
Additional Resources
Other Python courses: Choosing which Python Course to Teach
Visit the CodeHS Course Catalog to explore all our available courses. If you have any questions, please email us at support@codehs.com.
