CS 111
Fall 2023
  • Home
  • Lectures
  • Labs
  • Problem Sets
  • Resources
  • Syllabus
  • Schedule
  • Staff
  • Office Hours
  • Collaboration
  • Participation
  • Blackboard
  • Python Tutor
  • Piazza
  • Gradescope

Schedule

week

lecture dates

topics, exams, due dates, and other special dates

0

9/6, 9/8

  • Course overview and introduction
  • Getting started in Python
  • Data types and expressions
  • No labs this week

1

9/11, 9/13, 9/15

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

2

9/18, 9/20, 9/22

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

3

9/25, 9/27, 9/29

  • Recursion (cont.)
  • List comprehensions
  • Recursive design
  • Problem Set 2, part I due on 9/28
  • Problem Set 2, part II due on 10/1

4

10/2, 10/4, 10/6

  • Lists of lists; encryption and decryption
  • Algorithm design
  • Representing information
  • Problem Set 3, part I due on 10/5
  • Problem Set 3, part II due on 10/8

5

10/10, 10/11, 10/13

  • Binary addition
  • Gates and circuits
  • Minterm expansion
  • No lecture on 10/9 (holiday)
  • Lecture on 10/10 (Mon. schedule)
  • No labs this week
  • 10/10: last day to drop without a ‘W’
  • Problem Set 4, part I due on 10/12
  • Problem Set 4, part II due on 10/15

6

10/16, 10/18, 10/20

  • Arithmetic circuits
  • Loops and imperative programming
  • Cumulative computations
  • Midterm 1 on 10/18

7

10/23, 10/25, 10/27

  • Loops (cont.); design using loops
  • Nested loops
  • Problem Set 5, part I due on 10/26
  • Problem Set 5, part II due on 10/29

8

10/30, 11/1, 11/3

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

9

11/6, 11/8, 11/10

  • Classes: creating your own types of objects
  • Dictionaries
  • Problem Set 7, part I due on 11/9
  • Problem Set 7, part II due on 11/12

10

11/13, 11/15, 11/17

  • Classes (cont.)
  • Midterm 2 on 11/15
  • 11/13: last day to drop with a ‘W’ or to designate a course Pass/Fail
  • Problem Set 8 (all) due on 11/19

11

11/20

  • Games and AI
  • No lectures on 11/22, 11/24 (Thanksgiving)
  • No labs this week

12

11/27, 11/29, 12/1

  • Games and AI (cont.)
  • Inheritance
  • Overview of the final project
  • Finite-state machines
  • Problem Set 9, part I due on 11/30
  • Problem Set 9, part II due on 12/3

12

12/4, 12/6, 12/8

  • Finite-state machines (cont.)
  • Algorithm efficiency and problem hardness
  • Final-project milestone due on 12/7
  • Problem Set 10 due on 12/7
  • Full final project due on 12/10

13

12/11

  • Efficiency and problem hardness (cont.)
  • Course wrap-up
  • 12/13-14: Study period

14

  • Final exam: Dec.21, 12-2 p.m.

Last updated on November 29, 2023.