Intro to Computer Science
A self-paced course covering the fundamentals of programming and computer science no prior experience required.
Browse ModulesCourse Modules
Modules
Binary
The foundation of how modern computers store and process everything from numbers to video to AI predictions.
- What is binary
- Counting in binary
- Conversions
- Arithmetic
- ASCII encoding
Logic
How computers answer yes/no questions and why chaining those answers together lets them decide, compare, and compute anything.
- Boolean values
- Boolean operations
- Operator precedence
- Logic gates
- Boolean theorems
Hardware
From abacus to modern PCs understanding the physical components that make software possible and how they work together.
- Evolution of computers
- PC components
- Hardware-software bridge
- Code to circuits
Data & Variables
What types of data do we worry about in programming? Here we'll explore Python's core data types, how to store them in variables, and the naming conventions that keep code readable.
- Data types
- Variables
- Naming conventions
- Type checking
Data Structures
How do you organize data in an effective way? Learn how lists, tuples, sets, and dictionaries impact readability and performance.
- Lists
- Tuples
- Mutability
- Sets
- Dictionaries
- Performance tradeoffs
Control Structures
Learn how programs make decisions using comparisons and boolean logic with if/elif/else (branching only — loops later).
- Control flow
- Comparisons
- and/or/not
- if/elif/else
- Readable rules
Looping
Learn how computers repeat actions efficiently using loops, then practice tracing and debugging repetition patterns in Python.
- Why loops matter
- Loop anatomy
- for loops
- while loops
- Loop debugging
Functions
Learn how to define reusable tasks in Python with parameters, arguments, and return values, then practice tracing and debugging function calls.
- Why functions matter
- Function anatomy
- Parameters and arguments
- Return values
- Scope and defaults
- Function debugging