CS 111
  • Home
  • Syllabus
    (Spring 2025)

Schedule

week

lecture dates

topics, exams, due dates, and other special dates

0

1/22, 1/24

  • Course overview and introduction
  • Python basics
  • Data types and expressions
  • No labs this week

1

1/27, 1/29, 1/31

  • Strings and lists
  • A first look at functions
  • Making decisions (conditional execution)
  • Problem Set 0 (all) due on 2/2

2

2/3, 2/5, 2/7

  • Functions (cont.)
  • Local and global variables; the runtime stack
  • Recursion
  • 2/3: last day to add a class
  • Problem Set 1, part I due on 2/6
  • Problem Set 1, part II due on 2/9

3

2/10, 2/12, 2/14

  • Recursion (cont.)
  • Recursive design
  • List comprehensions
  • Problem Set 2, part I due on 2/13
  • Problem Set 2, part II due on 2/16

4

2/18, 2/19, 2/21

  • Lists of lists; encryption and decryption
  • Algorithm design
  • Representing information
  • No lecture on 2/17 (holiday)
  • Lecture on 2/18 (Mon. schedule)
  • No labs this week
  • Problem Set 3, part I due on 2/20
  • Problem Set 3, part II due on 2/23

5

2/24, 2/26, 2/28

  • Binary addition
  • Gates and circuits
  • Minterm expansion
  • 2/25: last day to drop without a ‘W’
  • Problem Set 4, part I due on 2/27
  • Problem Set 4, part II due on 3/2

6

3/3, 3/5, 3/7

  • Arithmetic circuits and modular design
  • Loops and imperative programming
  • Cumulative computations
  • Midterm 1 on 3/5 from 6:30-7:45 pm

Spring break

7

3/17, 3/19, 3/21

  • Loops (cont.); design using loops
  • Nested loops
  • Problem Set 5, part I due on 3/20
  • Problem Set 5, part II due on 3/23

8

3/24, 3/26, 3/28

  • References; mutable vs. immutable data
  • 2-D lists
  • Object-oriented programming
  • File processing
  • Problem Set 6, part I due on 3/27
  • Problem Set 6, part II due on 3/30

9

3/31, 4/2, 4/4

  • Classes: creating your own types of objects
  • Dictionaries
  • 4/4: last day to drop with a ‘W’ or to designate a course Pass/Fail
  • Problem Set 7, part I due on 4/3
  • Problem Set 7, part II due on 4/6

10

4/7, 4/9, 4/11

  • Classes (cont.)
  • Midterm 2 on 4/9 from 6:30-7:45 pm
  • Problem Set 8 (all) due on 4/13

11

4/14, 4/16, 4/18

  • Games and AI
  • Inheritance
  • Overview of the final project
  • Finite-state machines
  • Problem Set 9, part I due on 4/17
  • Problem Set 9, part II due on 4/20

12

4/23, 4/25

  • Finite-state machines (cont.)
  • Algorithm efficiency and problem hardness
  • No lecture on 4/21 (holiday)
  • Labs will meet (Wed. is a Monday schedule)
  • Final-project milestone due on 4/24
  • Problem Set 10 due on 4/27

13

4/28, 4/30

  • Efficiency and problem hardness (cont.)
  • Course wrap-up
  • Full final project due on 4/30
  • 5/2-4: Study period

14

  • Final exam: May 9, 9-11 a.m.

Last updated on May 15, 2025.