CPSC 421/501 Page, Fall 2020

This page concerns CPSC 421 Section 101 and CPSC 501 Section 101. The courses have been combined, except that CPSC 501 students have an additional presentation to give during the last two weeks of classes.

The class this term will be given FULLY ONLINE.

This page has the most up-to-date information on the course(s) and supersedes any other document.

Materials below may have errors! Errors will be corrected either here or in class. If you are not attending my classes: use these materials at your own risk!

News The final exam on Thursday will be given in two parts as follows:
  • Part 1: 60 minutes, plus 7 minutes to upload Part 1 to Gradescope.
  • Break: 10 minutes.
  • Part 2: 70 minutes, plus 7 minutes to upload Part 2 to Gradescope.
You will be asked to login via Zoom and to keep your cameras on at all times except during the break.

We have added three office hours on the day before the final, in addition to the usual weekly office hours:
  • Monday, December 14, 5:30-6:30pm (Joel);
  • Tuesday, December 15, 3-4pm (Amir);
  • Wednesday, December 16: 11am-12:30pm (Amir), 3-4pm (Adam), 5:30-7:00pm (Joel);
  • Thursday, December 17: no office hours; the final begins at 7pm.

The course Canvas page is available on UBC's Canvas system.
Final Exam Our final exam will be held on Thursday, December 17, at 7pm (pacific time); you must take the final exam at this time. Similarly to the midterm, the final exam is open book, meaning you can use the textbook, the material on our course webpage (handouts and homework and solutions), and any number of printed note sheets. You cannot use any other sources, online or otherwise, including other books.
Here is a study guide for the final exam (last revised Dec 11, 7:20pm).
Breakout Room Problems As per class survey, as of September 29 we will use breakout rooms only on Thursdays.
Some of these problems will be suggested for breakout room discussion; you might want to think about and discuss others outside of class. Some problems involve terms like "convince yourself," which is not a precise homework/exam type problem.
No more breakout rooms!
Older Breakout room problems (these problems also appear in the Board Scans section below):
09_17, 09_22, 09_24, 09_29, 10_01. 10_08. 10_15. 10_22. 10_29. 11_12. 11_19.
Overview This is an introductory course to Computer Science Theory. This policy webpage describes the course policy, including the prerequisites and grading scheme.
To get an idea of the course material and exams, you can look at the CPSC 421/501 from fall 2019; the material covered and the exams will likely be a bit different.
Fully Online This term (September to December, 2020), the course will be fully online. Classes will consist of lectures and some problem solving sessions. We will use UBC's Canvas system to communicate, sign into Zoom and or Collaborate Ultra, and to access recordings of lectures.
All lectures will be recorded (barring technological problems) and will be available via Canvas.
Board scans of all lectures will be posted below.
All material covered in class can be found in the references below.
References The required course textbook is "Theory of Computation," by Michael Sipser, 3rd Edition; all homework from the textbook is based on the 3rd edition. Tentatively we will cover most of Chapters 1, 3-5, and 7, and part of Chapters 8 and 9.

Aside from the textbook, we will use the following articles, which may be revised:
  • Self-Referencing, Uncountability and Uncomputability in CPSC 421; last revised September 3, 2020.
  • This article on the Myhill-Nerode theorem; last revised September 3, 2020. (We will use the Myhill-Nerode theorem instead of the Pumping Lemma in Section 1.4 of the textbook.)
  • This introduction to circuit complexity, (last revised 1:03pm on Nov 26) which summarizes the first part of Section 9.3 of [Sip] and explains some broader context.
  • Midterm Here are the midterm of 9:30am, the midterm of 8:30pm, and solutions to both.
    The midterm is open book, meaning you can use the textbook, the material on our course webpage (handouts and homework and solutions), and any number of printed note sheets. You cannot use any other sources, online or otherwise, including other books.
    The midterm will be delivered to you via Canvas. I have sent out a test message via Canvas (at 8:21am, November 3, 2020).
    The midterm will be held during class hours on Thursday, November 5, 2020. If you are unable to attend class due to your local time zone, you can take an alternate midterm at 8:30-9:50pm on Thursday, November 5; if so, you will need to enter your local time zone on Canvas in September. [It will cover material introduced up to Thursday, October 22.]
    Readings and Boards Scans The following is the rough class plan and corresponding readings; it may be modified.
    • Roughly 2 weeks: Course policy and Self-Referencing, Uncountability and Uncomputability in CPSC 421; this includes parts of Chapter 0 and Section 4.2 of [Sip].
      Board scans: 09_10 (policy, alphabets and strings). 09_15 (languages, set theory terminology). 09_17 (countability, Cantor's theorem). 09_22 (set theory subtleties, Russell's paradox).
    • Roughly 2 weeks: Chapter 1 of [Sip] (Regular languages); we will replace the Pumping Lemma in Section 1.4 with this article on the Myhill-Nerode theorem. In Section 1.3 we will not cover the algorithm to convert a DFA to a regular expression; we do explain that (1) it is not as often needed in practice as the reverse algorithm, and (2) it yields very large expressions for small DFA's like a DFA for the language {0,3,6,9,12,...}.
      Board scans: 09_24 (finish paradoxes, start DFA's). 09_29 (DFA's, concatenate and star, start NFA's). 10_01 (finish NFA's and NFA's in practice, i.e., breakout problem 3). 10_06 (regular expressions and the Myhill-Nerode theorem); on 10_06 we also referred to the the regular expression for {0,3,6,9,12,...} (from the 2019 section). 10_08 (nonregular languages).
    • Roughly 1.5 Weeks: Chapter 3 of [Sip] (Turing Machines).
      Board scans: 10_13 (Section 3.1: Turning machines). 10_15 (Section 3.1: recognizing and deciding; Section 3.2: multitape TMs). 10_20 (Section 3.2: multitape converted to 1-tape algorithm. Section 3.3: descriptions: of graphs, of formulas, etc., as finite strings.) Part of 10_22 (Section 3.3, descriptions of Turing machines)
    • Roughly 0.5 Weeks: Chapter 4 of [Sip] (Universal Turing machines, undecidable and unrecognizable problems). Part of 10_22 (Section 4.2: A_TM is undecidable, universal Turing machines). 10_27 (Logistics regarding CPSC 501 presentations, some logistics regarding midterm, end of Chapter 4.)
    • Roughly 2 weeks Chapter 7 [Sip] (P and NP, the Cook-Levin Theorem, NP-completeness). 10_29 (logistics--midterm and presentations--and P and NP). 11_03 (midterm review). 11_10 (more on NP, start of Cook-Levin theorem). 11_12 (end of Cook-Levin Theorem, with a lot of Boolean algebra). 11_17 (definition of NP-complete, SUBSET-SUM). 11_19 (more NP-complete problems, e.g., CLIQUE, PARTITION).
    • Roughly 0.5 Weeks: Section 9.3 of [Sip], until Theorem 9.20: Circuit complexity, i.e., how some people are trying to solve P versus NP. 11_24 (the above topics).
    • Roughly 1.5 Weeks: CPSC 501 Presentations and Review for Final Exam. Presentations:
      • Nov 24: The Pumping Lemma.
      • Nov 26: Building a Godel Sentence; Kolmogorov Complexity; The Sequence Memorizer (CACM 2011 paper).
      • Dec 1: PAC in Machine Learning; Parsing CF Grammars; Probabilistic Automata and Stochastic Languages.
      • Dec 3: Probabilistic Deterministic Infinite Automata; Neural Turing Machines; a bit of Final 2017 discussion 12_03.
    Homework Homework will be assigned most weeks. We may grade only some of the problems on the homework. Late homework will not be accepted; however, your three lowest scores will be dropped in the overall homework computation.
    All homework involving Sipser's textbook is based on the 3rd edition of this book.
    You should connect to the course Gradescope page via UBC Canvas.
    Individual Homework 1 and Group Homework 1 are due on gradescope.com at 11:59pm Wednesday, September 23. Solutions.
    Individual Homework 2 and Group Homework 2 are due on gradescope.com at 11:59pm Wednesday, September 30. Solutions.
    Individual Homework 3 and Group Homework 3 are due on gradescope.com at 11:59pm Wednesday, October 7. Solutions.
    Individual Homework 4 (corrected on Oct 12: 2(a): 51, not 50 states) and Group Homework 4 are due on gradescope.com at 11:59pm Wednesday, October 14. Solutions.
    Individual Homework 5 and Group Homework 5 are due on gradescope.com at 11:59pm Wednesday, October 21. Solutions.
    Group Homework 6 is due on gradescope.com at 11:59pm Wednesday, October 28. Solutions. For individual practice (not to be handed in), do the 2019 midterm (here are solutions to this midterm).
    Here are some addition practice midterm questions.
    Solutions will not be provided, but will be discussed during class on Tuesday, November 3.
    Individual Homework 7 and Group Homework 7 are due on gradescope.com at 11:59pm Wednesday, November 18. Solutions.
    Group Homework 8 (there is no individual homework this week) is due on gradescope.com at 11:59pm Wednesday, November 25. Solutions.
    Homework 8 is the last homework to be handed in.
    Piazza and Office Hours There will be an online discussion of this course on www.piazza.com; use this link to sign up (for both CPSC 421 and 501). Please post all questions related to the course material to our piazza site. In person office hours (staring Sept 21) can be reached via Canvas, and are currently:
    Joel (Instructor): Monday, 5:30-6:30pm.
    Amir (TA): Tuesday, 3-4pm.
    Adam (TA): Wedesnday, 3-4pm.
    Diversity and Equity UBC is trying in earnest to encourage diversity and alleviate biases and inequities to which some members of its community are subjected; this includes, for example, UBC's Indian Residential School History and Dialogue Center, and well as the Computer Science Department's various programs described on its Diversity in CS webpage. I try to act reasonably free of bias; for example, I do not view sexual orientation or gender as set in stone from birth or as classified by some fixed, finite set of choices; I try to use language accordingly. I will undoubtedly goof upon occasion, and I welcome feedback on these and related matters.

    UBC CS Home| Joel Friedman Home| Course Materials