Fall 2026
  • Discord
  • Gradescope
  • Syllabus

CSCI 40: Syllabus

Course Purpose

CSCI 40 is an introduction to computing for people who have never programmed before, organized around a hacker’s favorite idea: automate the boring stuff. We will make computers handle tedious tasks such as renaming files, collecting information from a website, answering questions from documents, and serving a page to the world.

We start on the web with HTML and CSS, spend most of the term on Python, and finish by building web applications backed by a database. Along the way, you will use git, GitHub, automated tests, and large language models. You will learn how programmers break a vague task into small steps, test each step, and respond when something fails.

By the end of the course, you should be able to:

  • build and publish a clear, accessible webpage with HTML and CSS;
  • write Python programs that automate work with files, websites, and text;
  • use tests, error messages, and a debugger to locate and fix problems;
  • track and share a project with git and GitHub;
  • build a small web application that stores and retrieves data; and
  • read unfamiliar code, change it carefully, and explain how it works.

Course materials are maintained by R. Teal Witter.

Prerequisites: None.

Meetings, Resources, and Communication

We meet Mondays and Wednesdays from 1:15 to 2:30pm in Robert Day 126. My office hours are Tuesdays from 1:00 to 4:00pm in Adams Hall 213.

Each topic has a reading on this site, and there is nothing to buy. The two references we use most are Shay Howe’s Learn to Code HTML & CSS and Al Sweigart’s Automate the Boring Stuff with Python. You can step through Python code at pythontutor.com, and I recommend keeping a printed Python cheat sheet nearby when you code.

Please post course questions on the class Discord rather than emailing; include the error message and a small relevant piece of code when asking a technical question. Please do not post a complete assignment solution.

Electronic Devices: Please keep phones away during class.

Grading

Your final course percentage is weighted by category. Assignment points determine your average within each category; Canvas then applies these weights:

Percent Category What It Measures
20% Labs Focused practice with immediate automated feedback
40% Quizzes Independent understanding of the week’s skills
40% Projects Combining several skills in a substantial program

The optional Capture the Flag lab and the computing-and-society reflection each add one percentage point to your final course percentage.

Labs. The labs are the primary way you get to practice the concepts from class. They are designed so that you should get 100%, as long as you keep fixing the errors reported by the automated grader.

Quizzes. Quizzes are weekly on Wednesdays, open-note, and completed on paper without electronic devices. Each quiz covers the previous topic and draws from the kinds of problems in the practice bank linked from the schedule.

Projects. Every two or three weeks, you will build a larger project such as a webpage, web scraper, small language model, or social web application. Projects let you choose which optional tasks to complete, and many of those tasks offer extra credit.

Computing and Society Extra Credit. You may earn 5 extra-credit points by completing one nontechnical reading or viewing about hacker culture and submitting a short reflection on Gradescope. Options include watching WarGames, Citizenfour, or Zero Days. The reflection is due Wednesday, December 9 at 11:59pm, and must include one idea you learned that connects to the course.

Your percentage determines your letter grade. The highest threshold you meet determines the grade:

Grade A A- B+ B B- C+ C C- D+ D D- F
Minimum Percentage 93% 90% 87% 83% 80% 77% 73% 70% 67% 63% 60% 0

Late Work and Missed Assessments

You have a 48-hour, no-questions-asked late bank for labs and projects. It does not apply to quizzes. Gradescope timestamps determine the elapsed time; you do not need to email me before using the bank. After you exhaust the bank, every additional 24 hours of lateness deducts one percentage point from your overall course grade.

If illness, an emergency, a religious observance, or college travel affects you beyond the bank, contact me as soon as reasonably possible. If you must miss a quiz for one of those reasons, contact me as soon as reasonably possible so that we can arrange a makeup or an equivalent assessment.

Collaboration and Large Language Models

You may discuss approaches, compare program output, and look together at the small part of the code needed to locate a bug. Do not copy a completed solution or submit code written by someone else. Type your own code, write your own comments, and make sure you can explain every part of what you submit.

We will study LLMs near the end of the course. You may use one to explain an error message, clarify syntax, suggest test cases, or discuss an approach after you have tried the problem yourself. Do not submit code or prose from an LLM unless you understand it and have tested it.

Academic Accommodations

If you have a Letter of Accommodation, please contact me as early in the semester as possible. If you do not have a letter and believe you may be eligible, please contact Accessibility Services at accessibilityservices@cmc.edu.