Course Overview
Course in Brief
This course teaches the foundations of programming through Python. You will learn to read, write, and trace small programs, organize code into named and tested functions, work with files and structured data, use libraries to summarize and visualize data, and develop a practical stance toward AI coding assistants.
The course is currently only available for credit at Aalto University, but the materials are freely available for anyone to study. The course is designed to be self-contained and assumes no prior programming experience.
Workload
This is a 5 ECTS course. A workload of 5 ECTS corresponds roughly to 135 study hours. The actual time varies between learners depending on earlier background, study habits, and target depth of understanding.
High-Level Learning Objectives
After completing the course, you should be able to:
- read small Python programs and predict what they will do,
- write programs that handle input, perform arithmetic, branch on conditions, and repeat work,
- organize code into named, tested, specified functions,
- handle errors and validate user input,
- read and write data in files,
- model data using lists and dictionaries,
- use pandas to summarize tabular data,
- produce simple charts that answer questions about your data,
- and work productively with AI coding assistants by reading, verifying, and specifying with care.
The more detailed learning objectives are listed separately in the chapters.
Prerequisites
The course assumes no prior programming experience. The first three parts run entirely in the course’s in-browser sandbox, so no software needs to be installed initially.
Starting in Part 4, you will install Python on your own computer. From that point on, basic comfort with:
- a text editor,
- and running commands in a terminal,
becomes useful. Installation instructions are provided in the course when needed.
Course Structure
The course is divided into nine parts.
- Part 1 builds the foundation: how programs run, how to read them, variables, strings, numbers, tracing, and the first interactive program.
- Part 2 introduces control flow: branching with
if, repeating with loops, lists, and the habit of looking for edge cases. - Part 3 organizes code into functions and introduces the practice of specifying what you want before writing the code.
- Part 4 moves to a local environment and introduces files and defensive programming.
- Part 5 turns to data summaries — totals, averages, streaks.
- Part 6 introduces structured data using dictionaries and JSON.
- Part 7 uses pandas to summarize tabular data.
- Part 8 produces charts that answer questions about that data.
- Part 9 looks back at the project, iterates, and reflects on what changed across the course.
There is a small project — a study log — that grows alongside the parts. The project gives the abstract ideas a concrete place to live, and by the end of the course it is a real piece of software that uses your own data.
The course also has a parallel AI thread. Across the nine parts, you will develop nine concrete skills for working with AI assistants. The first three are reading code, verifying behavior, and specifying what you want. The later parts develop the rest.
How to Approach the Materials
This course works best when you treat it as something to study actively rather than only read through. When studying:
- read each chapter once before running the code,
- run the example programs whenever possible,
- trace short programs by hand before running them,
- predict what a program will print, then check,
- and verify what a piece of code does on more than the obvious input.
The project checkpoints are especially important. They are where the ideas of the surrounding chapters become part of one growing program.
Practicalities Pages
This practicalities section collects the main support pages for the course:
- Working Practices explains how to study the course, work responsibly, and use generative AI appropriately.
- Registration and Grading explains how progress is stored and where to look for grading information in active course offerings.
- Tools and Environments lists the main tools used in the course, including the in-browser sandbox and the local Python install that begins in Part 4.
- Project Roadmap summarizes how the study log project grows from Part 1 onward.
- Glossary collects the main Python terms used in the course.
- Python Quick Reference summarizes the most common Python patterns and safe working habits.