CS 111
Fall 2018

Schedule

week

lecture dates

topics, exams, due dates, and other special dates

0

A/B: 9/5, 9/7
C: 9/4, 9/6

  • Course overview and introduction
  • Computing fundamentals with Scratch
  • No labs this week

1

A/B: 9/10, 9/12, 9/14
C: 9/11, 9/13

  • Getting started in Python
  • Data types and expressions
  • Strings and lists
  • A first look at functions
  • Making decisions (conditional execution)
  • Problem Set 0 (all) due on 9/16

2

A/B: 9/17, 9/19, 9/21
C: 9/18, 9/20

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

3

A/B: 9/24, 9/26, 9/28
C: 9/25, 9/27

  • Higher-order functions and list comprehensions
  • Recursive design
  • Problem Set 2, part I due on 9/27
  • Problem Set 2, part II due on 9/30

4

A/B: 10/1, 10/3, 10/5
C: 10/2, 10/4

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

5

A/B: 10/9, 10/10, 10/12
C: 10/11

  • Digital logic and circuit design
  • A/B: No lecture on 10/8 (Columbus Day)
  • A/B: Lecture on 10/9 (Mon. schedule)
  • C: No lecture on 10/9 (Mon. schedule)
  • No labs this week
  • 10/9: last day to drop without a ‘W’
  • Problem Set 4, part I due on 10/11
  • Problem Set 4, part II due on 10/14

6

A/B: 10/15, 10/17, 10/19
C: 10/16, 10/18

  • Digital logic and circuit design (cont.)
  • Assembly language
  • Midterm 1 on 10/17 from 6:30-7:30 p.m.
  • Problem Set 5, part I due on 10/21

7

A/B: 10/22, 10/24, 10/26
C: 10/23, 10/25

  • Assembly language (cont.)
  • Loops and imperative programming
  • Cumulative computations
  • Problem Set 5, part II due on 10/28

8

A/B: 10/29, 10/30, 11/2
C: 10/30, 11/1

  • Design using loops
  • Nested loops
  • References; mutable vs. immutable data
  • Problem Set 6, part I due on 11/1
  • Problem Set 6, part II due on 11/4

9

A/B: 11/5, 11/7, 11/9
C: 11/6, 11/8

  • 2-D lists
  • Object-oriented programming
  • File processing
  • Classes: creating your own types of objects
  • 11/9: last day to drop with a ‘W’
  • Problem Set 7, part I due on 11/8
  • Problem Set 7, part II due on 11/11

10

A/B: 11/12, 11/14, 11/16
C: 11/13, 11/15

  • Classes: creating your own types of objects (cont)
  • Dictionaries
  • Midterm 2 on 11/14 from 6:30-7:30 p.m.
  • Problem Set 8 (all) due on 11/18

11

A/B: 11/19
C: 11/20

  • Games and AI
  • A/B: No lectures on 11/21, 11/23 (Fall recess)
  • C: No lecture on 11/22 (Fall recess)
  • No labs this week

12

A/B: 11/26, 11/28, 11/30
C: 11/27, 11/29

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

13

A/B: 12/3, 12/5, 12/7
C: 12/4, 12/6

  • Finite-state machines (cont.)
  • Algorithm efficiency and problem “hardness”
  • Problem Set 10 (all) due on 12/6

14

A/B: 12/10, 12/12
C: 12/11

  • Problem “hardness” (cont.)
  • Wrap-up
  • Final project due on 12/11

15

  • Final exam: date and time TBD
    Please wait until your instructor informs you of the date. The initial date posted by the Registrar will not be correct.
    Make sure that you are available for the entire exam period – up to and including Friday evening, Dec. 21!