Fall 2026
  • Discord
  • Gradescope
  • Syllabus

CSCI 40: Computing for the Web

An introduction to computing, built around one idea: automate the boring stuff.


Instructor: R. Teal Witter. Please call me Teal.

Class Times: Mondays and Wednesdays from 1:15 to 2:30pm in Robert Day 126.

Office Hours: Tuesdays from 1:00 to 4:00pm in Adams Hall 213.

Labs: Most weeks have a short lab, auto-graded by Python. You keep resubmitting until you score 100%, so a lab is done when it is done.

Quizzes: Short weekly quizzes, taken on paper. They are open-note: bring any printed or handwritten notes you like, but no electronic devices. Each week’s practice bank is linked below; we work through it together in class, and the graded quiz is a short version I hand out on paper the day of.

Projects: Every two to three weeks you build something real: a webpage, a web scraper, your own ChatGPT, a Twitter clone. Projects carry generous extra credit and “choose your own adventure” tasks.

Resources: There is nothing to buy. Each week has a reading in place of a textbook; the primary references are Shay Howe’s Learn to Code HTML & CSS and Al Sweigart’s Automate the Boring Stuff with Python. Course materials are adapted from Mike Izbicki’s CSCI 040.

Big Picture: The course starts with a webpage and ends with a working web application, with each project reusing earlier tools.

  • The Web - A few lines of HTML and CSS can turn an idea into a public artifact that anyone with a browser can use.
  • Python Foundations - Python gives us a precise way to break repetitive work into small steps a computer can perform reliably.
  • Working with Data - Useful programs become powerful when they can collect, transform, and connect information from different places.
  • Web Applications - A web application brings the whole course together by responding to people, remembering state, and producing a new page on demand.
Date Topic Lab Quiz Project
The Web
Mon Aug 31 · Wed Sep 2 HTML Hello, Homepage Practice · Answers Project 0 (due Wed Sep 16)
Mon Sep 7 · Wed Sep 9 CSS Dress It Up Practice · Answers
Python Foundations
Mon Sep 14 · Wed Sep 16 Python Doctests Practice · Answers
Mon Sep 21 · Wed Sep 23 Strings & Files Video Download & Encodings Practice · Answers Project 1 (due Wed Oct 7)
Mon Sep 28 · Wed Sep 30 Exceptions Cowsay & Password Cracking Practice · Answers
Working with Data
Mon Oct 5 · Wed Oct 7 Web Scraping Trump Tweets & Selector Golf Practice · Answers Project 2 (due Wed Oct 21)
Mon Oct 12 · Wed Oct 14 The Shell The Messy Repo Practice · Answers
Mon Oct 19 · Wed Oct 21 Objects & Classes Pull Requests & Classes Practice · Answers
Mon Oct 26 · Wed Oct 28 LLMs More Project Setup Practice · Answers Project 3 (due Wed Nov 11)
Mon Nov 2 · Wed Nov 4 Syntactic Sugar Wardialing Practice · Answers
Mon Nov 9 · Wed Nov 11 Regular Expressions Redacted Practice · Answers
Mon Nov 16 · Wed Nov 18 JSON & Alternatives Rosetta Stone Practice · Answers Project 4 (due Wed Dec 2)
Web Applications
Mon Nov 23 · Wed Nov 25 SQL APIs & Web Interfaces Practice · Answers Final Project (due Wed Dec 16)
Mon Nov 30 · Wed Dec 2 Backend Web Dev FastAPI App Practice · Answers
Mon Dec 7 · Wed Dec 9 Last Day Capture the Flag Practice · Answers
Finals Week (No Class)