CPSC 229 Foundations of Computation Spring 2026

CPSC 229 Schedule

Readings are listed on the schedule page on the day when they will be discussed in class. Sections and chapters refer to the textbook. Readings are the first introduction for most material — it often takes more than one encounter to fully absorb something, and class time is more effective if it can be used to fill in the gaps and answer questions about things you have already started to think about. You are encouraged to complete the assigned reading before class to identify the main ideas and note questions, and then revisit the reading after class to more fully understand the material.

Dates for things in light gray are for planning purposes and are subject to change.

 Assignments

Week 1: 1/21-1/23

Topics: course introduction; propositional logic

 

Wed Materials from class: introductory survey
(on Canvas)
   

Fri Reading:
  • chapter 1 introduction (logic and proof)
  • section 1.1 (propositional logic)
Materials from class:
homework 1

due Fri 1/30
   

Week 2: 1/26-1/30

Topics: boolean algebra, logic circuits, predicates and quantifiers

 

Mon Reading:
  • section 1.2 (boolean algebra)
Materials from class:
   

Wed Reading:
  • section 1.3 (logic circuits)
Materials from class:
 

Fri Reading:
  • section 1.4 (predicates and quantifiers)
Materials from class:
homework 2

due Fri 2/7
lab session
logic circuits

1:10-2:10pm

due Fri 3/13

(updated!)
 

Week 3: 2/2-2/6

Topics: deduction and proof

 

Mon Reading:
  • section 1.5 (deduction)
Materials from class:
   

Wed Reading:
  • section 1.6 (proof)
Materials from class:
   

Fri Reading:
  • section 1.7 (proof by contradiction)
Materials from class:
homework 3

due Fri 2/13
   

Week 4: 2/9-2/13

Topics: mathematical induction; sets

 

Mon Reading:
  • section 1.8 (mathematical induction)
Materials from class:
   

Wed Reading:
  • section 1.9 (recursion and induction)
Materials from class:
   

Fri Reading:
  • section 2.1 (sets)
Materials from class:
  • slides: sets (concepts and definitions)
homework 4

due Fri 2/20
   

Week 5: 2/16-2/20

Topics: sets; bitwise operators, flags, and masks; functions

 

Mon Reading:
  • section 2.2 (boolean algebra of sets)
Materials from class:
   

Wed Reading:
  • section 2.3 (programming with sets)
Materials from class:
 

Fri Reading:
  • section 2.4 (functions)
Materials from class:
homework 5

due Fri 3/6
(Mon 3/2 recommended)
lab session
programming with sets

1:10-2:10pm

due Fri 3/13
 

Week 6: 2/23-2/27

Topics: counting past infinity, relations

 

Mon Reading:
  • section 2.6 (counting past infinity)
Materials from class:
   

Wed
exam
  revise-and-resubmit for hw1, hw2, hw3 #1-8

due Wed 2/25

comments on hw2, comments on hw3

Fri Reading:
  • section 2.7 (relations)
Materials from class:
  • slides: relations (with a little wrapup of counting)
   

Week 7: 3/2-3/6

Topics: applications (functions and relations); regular expressions, finite state automata

 

Mon Reading:
  • section 2.5 (programming with functions)
  • section 2.8 (relational databases)
Materials from class:
 

Wed Reading:
  • section 3.1 (languages)
  • section 3.2 (regular expressions)
Materials from class:
   

Fri Reading:
  • section 3.4 (finite-state automata)
Materials from class:
homework 6

due Fri 3/27
lab session
functional interfaces

1:10-2:10pm

due Mon 5/4
 

Week 8: 3/9-3/13

Topics: finite-state automata

 

Mon Materials from class:    

Wed
exam
  revise-and-resubmit for hw3 #9, hw4, hw5

due Wed 3/11

comments on hw4, comments on hw5 (updated!)

Fri Reading:
  • section 3.5 (nondeterministic finite-state automata)
Materials from class:
  application labs 1-2 (logic circuits, sets)
due Fri 3/13

Spring Break: 3/14-3/22


Week 9: 3/23-3/27

Topics: finite state automata and regular languages, non-regular languages

 

Mon Reading:
  • section 3.6 (finite state automata and regular languages)
Materials from class:
   

Wed Materials from class:    

Fri Reading:
  • section 3.7 (non-regular languages)
Materials from class:
homework 7

due Fri 4/3
   

Week 10: 3/30-4/3

Topics: using regular expressions (applications); context-free grammars, parsing and parse trees

 

Mon Reading:
  • section 3.3 (using regular expressions)
Materials from class:
 

Wed Reading:
  • section 4.1 (context-free grammars)
Materials from class:
   

Fri Reading:
  • section 4.3 (parsing and parse trees)
Materials from class:
homework 8

due Fri 4/10
lab session
regex patterns

1:10-2:10pm

due Mon 5/4

data.txt
 

Week 11: 4/6-4/10

Topics: parsing and parse trees; pushdown automata

 

Mon Materials from class:    

Wed Reading:
  • section 4.4 (pushdown automata)
Materials from class:
   

Fri Materials from class: homework 9

due Mon 4/20
   

Week 12: 4/13-4/17

Topics: general grammars; applications of grammars

 

Mon Reading:
  • section 4.6 (general grammars)
Materials from class:
   

Wed
exam
  revise-and-resubmit for hw6, hw7

due Wed 4/15

comments on hw6, comments on hw7

Fri Reading:
  • section 4.2 (BNF)
lab session
1:10-2:10pm
 

Week 13: 4/20-4/24

Topics:

 

Mon homework    

Wed HWS Day (no class)    

Fri    

Week 14: 4/27-5/1

Topics:

 

Mon
exam
   

Wed    

Fri    

Week 15: 5/4

Topics:

 

Mon     application labs 3-5 (functional interfaces, regex, parser generator)
due Mon 5/4

Reading Period: 5/5-5/7

 

Tue      

Wed      

Thu      

Exams: 5/8-5/11

 

Fri      

Sat      

Sun      

Mon
exam 1:30-4:30pm
end of semester deadline
no work accepted after 4:30pm