Intro to Computer Science

A self-paced course covering the fundamentals of programming and computer science no prior experience required.

Browse Modules

Course 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