This introductory course builds a rigorous foundation in computer science through hands-on problem solving and real-worl...

Build core mental models for problem solving, data representation, and the computing ecosystem.
Learn the C toolchain and core syntax to express algorithms precisely and efficiently.
Manipulate collections of data and reason about elementary searching and sorting.
Analyze time and space complexity and implement efficient recursive solutions.
Master low-level memory control, pointer mechanics, and persistent storage.
Implement and compare foundational data structures for performance and use cases.
Transition to Python to prototype faster with readable, expressive code.
Structure larger programs with classes, iterators, decorators, and typing.
Model data and write efficient SQL to query, transform, and maintain integrity.
Build accessible, responsive pages and add interactivity with client-side JavaScript.
Create dynamic server-side apps with Flask, templates, and databases.
Write safer code by understanding common threats and defensive techniques.
Adopt processes and patterns for building maintainable, scalable software.
Use Git and collaborative workflows to manage change and work in teams.
Plan, implement, test, deploy, and present a polished final project.