Course Resources


There are no required books to purchase in this course. Required and optional readings will come from free online sources, especially including:

  • How to Think like a Computer Scientist: an interactive book with many embedded activities.
  • Foundation of Python programming: another interactive book with a fair amount of overlapping with “How to think like a Computer Scientist”
  • ThinkPython: please note that despite providing a good introduction to Python, the language and examples used in this book are not the most inclusive. Most of the examples are drawn from the comedy routines of the British surrealist comedians “Monty Python (Links to an external site.)” which, to someone who has never seen any of their material, will not be particularly helpful.
  • Course notes: together with other members of the CS Department, we are putting together our own interactive notes for the intro courses. This is still a work in progress and they are constantly edited so, go back often to check since there might be new goodies appearing over time.
  • Python 3.7 Documentation: This is the official documentation for the Python programming language. Following along with the Tutorial is an excellent way to develop your skills, and the Language Reference is also extremely helpful. Note that this is the documentation for Python 3.7, rather than the most current Python 3.10. This is because Python 3.7 is the version that comes bundled with Thonny, and is therefore the version we will use in this class. The differences between 3.7 and 3.10 are minimal and unlikely to ever come up in CSCI 0145.

Python: Thonny

We’ll write most of our Python code in Thonny. Thonny is a simple integrated development environment (IDE): a place to write, run, and troubleshoot code. It can be installed on Windows, Mac and Linux. Please see the Thonny website for installation instructions. Thonny comes bundled with Python version 3.7, which is the version that we will use throughout CSCI 0145.

A screenshot of the Thonny Python IDE, showing some sample code and some pop-out windows for debugging.

The Thonny IDE.

You may already be familiar with a different IDE, and may prefer it to Thonny. While you are welcome to use your IDE of choice on your own time, we expect you to use Thonny during class time and when working with partners on labs. This is to ensure that we don’t have to spend precious group time with one partner getting used to another partner’s IDE.

Collaborative Python: replit

We’ll have regular group assignments that will ask you to collaborate on coding projects. In general, the expectation is that only one person will be coding at a time. However, in order to ensure that you don’t need to do things like swap laptops when it comes time to change roles, we’ll complete these assignments in an online collaborative coding environment called replit. You’ll sign up for our CSCI 0145 team on replit using an invite link posted in Canvas. You’ll then be able to work with partners on guided discovery and lab assignments in the replit interface. It’s a bit more complex than Thonny, but has the same core functionality.

A screenshot of replit, showing a file browser, source code, and output in a terminal.

The replit online IDE.

Help Forum: Campuswire

We will use Campuswire as a question-and-answer forum related to course content. You’ll join Campuswire by clicking on a link provided on Canvas. A few basic policies:

A screenshot of Campuswire, showing a menu sidebar, a list of recent posts, and a question/answer exchange involving a mathematical formula.

Campuswire, our Q&A forum.

  1. Questions should usually be posted publicly. I reserve the right to make private questions public.
  2. Please ask questions using your name (i.e. not anonymously). Use of names helps us establish a healthy and respectful learning community.
  3. Before posting your question, please follow the steps outlined in Asking for Help.
  4. Conceptual questions are always fine.
  5. Code that is directly related to lab or homework solutions should never be posted on Campuswire.
  6. If you are having trouble with code in a lab or homework assignment, you should create a minimal reproducible example of your issue. A minimal reproducible example is sometimes called a reprex.

Campuswire isn’t here just for me to help you – it’s also for you to help each other. Both excellent, thoughtful questions and

Assignments: Gradescope and Canvas

Gradescope is one of the places in which you’ll submit graded assignments for this course. Most assignments, including homework assignments, labs, and guided discovery activities will be submitted to Gradescope. Homework assignments and labs will be assessed for correctness, while guided discovery activities will simply be assessed for completion.

A screenshot of Gradescope, showing a coding submission and a grading rubric with some items marked.

Gradescope, our primary tool for submitting graded work.

We’ll also submit some assignments through Canvas. Canvas is also where we’ll keep things like lecture recordings, grades, and other non-public content.

© Philip Claude Caplan, Andrea Vaccari, and Phil Chodrow, 2022