Introductory Python

Introductory Python is a open set of materials for learning introductory programming in Python.

This website is a public version of the Introduction to Python course, taught as COGS 18 at UC San Diego.

If you are in the COGS18 class at UC San Diego, this website is not the same as course materials for the class.


The goal of Introductory Python is to serve as a hands-on course for learning Python.

This course is focused on practical elements on becoming a code user, meaning it’s designed for people who want to learn to use code to do things.

In terms of content, this course focuses on ‘standard library’ Python, meaning the collection of core functionality available in Python.

Note that this course was developed in a Cognitive Science department, such that some of the examples and assignments are somewhat related to Cognitive Science. However, no previous knowledge in Cognitive Science is required.


This set of online materials are an openly available version of the materials from the class version, that are available to anyone outside of the official course.

Available materials include:

  • Materials are guided introductions to key topics for learning Python

  • Labs are hands-on notebooks for practicing coding

  • Assignments are problem sets that can be worked through

  • Projects describes how to pursue an independent coding project

All the materials are available through the table of contents on the left.

How to Use These Materials

These materials are created as Jupyter Notebooks, and are intended to be executed and explored in a hands-on manner.

There is a download link at the top left of the page, that can be used to download each page as a notebook. This allows you to use the notebook locally, executing code, and answering questions.

Issue Tracking

If you have any find any bugs or issues, or have any suggestions for these materials, please open an issue.

Source Materials

This website hosts materials and code from a university course, COGS 18, which is taught at UC San Diego.

This set of materials are an openly available version of materials and coursework developed for and used in the course.

These materials may still contain some references to the course or to grading, which can be ignored.


The materials on this website are openly available under a CC-BY 4.0 license.


Introduction to Python, as well as this website, was originally created by Tom Donoghue, and is currently primarily taught & developed by Shannon Ellis.