CS 111: Introduction to Computer Science

Spring 2025

Instructors:

This schedule is approximate and dates may shift slightly as the semester goes on.

Week's Lecture Topics & SlidesDateRelated ReadingsLab LinksHomework & Project Due Dates / Test Dates
Week 1
Mon
Apr 28
Tue
Apr 29
Getting Started
Python Environments Things As They Really Are 2.0
Lab 00: Getting Started & Python SetupFirst day of classes.
Wed
Apr 30
Introduction
Standard Types
Operators
Input
Print
Files
Formatting Text
Lab 01: Basic Python, Booleans, Conditionals, & Console I/OCanvas Quiz: CS 111 or CS 110? Readiness Self-Assessment
Thur
May 1
Defining Functions
Built-in Functions
More on Lists
Loops
Lab 02: Functions, While loops, & File I/O
Fri
May 2
Sat
May 3
Homework 0: Pizza!
Week 2
Mon
May 5
Strings and Slicing
Ranges
List Comprehensions
Lab 03: For loops, Strings, & Comprehensions
Tue
May 6
Scopes
Python Tutor
VS Code Debugging
PyCharm Debugging
Lab 04: Debugging
Lab XX: Programming Environment Passoff
University Add/Drop Deadline
Wed
May 7
Pytest
Doctests
Lab 05: Computational ThinkingHomework 1: College Admissions Algorithms
Thur
May 8
Tuples
Dictionaries Overview
Dictionary Methods
Exceptions
Lab 06: Testing
Fri
May 9
Midterm 1 Study Guide
General Studying Guide
Sat
May 10
Project 0: Grade Calculator
Week 3
Mon
May 12
Iterators
Generators
More on Generators
Lab 07: Exceptions
Tue
May 13
Lab 08: Picture Puzzles & FiltersTake Midterm 1
Wed
May 14
Command Line Arguments
Explanation of Classes
Classes Overview
Lab 09: Command Line ArgumentsHomework 2: Image Manipulation
Take Midterm 1
Thur
May 15
Modules
Dunder Methods
Inheritance
Lab 10: Classes
Fri
May 16
Free Coding Project Proposal Due
Sat
May 17
Project 1: Image Processor
Week 4
Mon
May 19
Lab 11: Starting the Grid class
Tue
May 20
Higher Order Functions
free lab
Wed
May 21
Lambda Functions
Lab 12: Functional ProgrammingHomework 3: The Grid Class
Thur
May 22
Mutability
Lab 13: Higher Order Functions
Fri
May 23
Sat
May 24
Homework 4: The Sand Class
Week 5
Mon
May 25
Memorial Day Holiday
Tue
May 26
Intro To Recursion
Khanacademy Recursion
Python Tutor
Comparing Iteration with Recursion
Lab 14: Recursion
Wed
May 27
Linked Lists
Lab 15: Linked List
Thur
May 28
Visualizing Mergesort
Mergesort
Midterm reviewProject 2: Sand
Fri
May 29
Midterm 2 Study Guide
General Studying Guide
Sat
May 30
Homework 5: Merge sort
Week 6
Mon
Jun 2
Intro to Trees
Lab 16: Trees
Tue
Jun 3
University Withdrawal DeadlineLab 17: ParsingTake Midterm 2
Wed
Jun 4
RegExr
Regex101
W3Schools Regex
Regex Python Docs
free labHomework 6: Parsing
Take Midterm 2
Thur
Jun 5
Big O Notation
Big O Guide
How the web works
HTML
Lab 18: Regular Expressions
Fri
Jun 6
Free Coding Project Pass-off Starts
Sat
Jun 7
Project 3: Calculator Interpreter
Week 7
Mon
Jun 9
Requests
Beautiful Soup Docs
Lab 19: HTML & Web Fundamentals
Lab 20: Using Beautiful Soup
Tue
Jun 10
Urllib
Robots.txt Files
Lab 21: URLlib
Wed
Jun 11
Lab 22: Web crawl Scavenger huntHomework 7: Robots
Thur
Jun 12
Matplotlib
Matplotlib Quick Start Docs
Lab 23: Plotting
Fri
Jun 13
Final Exam Study Guide
General Studying Guide
Sat
Jun 14
Week 8
Mon
Jun 16
Last day of classes. Deadline for all late assignments.free labProject 4: Web Crawler
Free Coding Extra Credit
Tue
Jun 17
Exam Preparation Day
Wed
Jun 18
Final exam
Thur
Jun 19
Juneteenth Holiday
Fri
Jun 20
Final exam