If you're seeing this message, it means we're having trouble loading external resources on our website.

If you're behind a web filter, please make sure that the domains *.kastatic.org and *.kasandbox.org are unblocked.

Main content

Course overview

This course currently contains practice materials for units on variables, conditionals, loops, and functions. We're making continuous improvements, so stay tuned for new instructional materials and additional units!
In this course, you’ll use programming as a tool to design recommendation engines, simulate natural selection, invent game levels, and more. Through lessons designed with beginner programmers in mind, you'll learn how to read and write Python programs - no prior computer science experience required!

A practical approach

In designing this course, we focused on the skills you need to start building meaningful programs now. You'll see a focus on problem solving and program design over computer science theory.
We also heavily feature reading and working within existing code. There will be few cases where you'll see a blank screen and be asked to write a program from scratch. Programmers reference, reuse, and extend code in almost everything they do, so we think new programmers should, too!

What you'll learn

This course covers programming fundamentals in Python, including:
  • Data types, expressions, and variables
  • User input
  • Boolean logic and conditionals
  • Loops
  • Module imports and random numbers
  • Functions
Each unit introduces a new theme, like simulations or game design, so you can explore some of the many applications of programming along the way.

How you'll learn

This course includes three types of practice materials:
  • In Exercises, you'll practice reading programs.
  • In Challenges, you'll practice modifying programs.
  • In Projects, you'll design your own programs.

Exercises

Exercises are multiple choice problems that focus on tracing how a program executes and translating user requirements into code. When practicing a new skill, we recommend you start with the associated Exercise.

Challenges

Challenges are guided programming assignments in which you'll modify or extend an existing program. They provide step-by-step instructions and use automated evaluation tools to provide feedback along the way.

Projects

Projects are open-ended programming assignments that serve as the capstone for each unit. They provide a broad outline of a problem to solve and a rubric with a set of requirements, but the rest is up to you!

Frequently asked questions

Where are the videos and articles?

They're coming! We recognize that the Exercises, Challenges, and Projects may be challenging in the course's current state. That's because we haven't yet included any videos or articles to actually teach you how to do them - that's on us, not on you.
Adding instructional materials for the first four units is our top priority.

Will there be more units?

We're working hard to bring you more content that covers string manipulation, lists, 2D lists, dictionaries, and more. Stay tuned!

Is this course standards-aligned?

This course most closely matches the AP CS A learning objectives, but uses the Python programming language instead of Java. Due to the difference in languages, it is not recommended as a supplement for students in an AP CS A class, but rather as an alternative introductory computer science curriculum.

What version of Python does this course use?

Our programming platform uses Python 3.

Want to join the conversation?