CPSC 421/501 Page, Fall 2019

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 essay to write for 20% of the grade.

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 is on Dec 10, Tuesday, at 7pm in DMP 310. See final exam study guide just below.

Office hours in December:

Dec 3 (Tue): Joel (location ICCS X561), 3-4pm.
Dec 4 (Wed): Joel (location ICCS X530), 3-4pm.
Dec 5 (Thu): Adam: 1-2:30pm (DLC, Table 6).
Dec 6 (Fri): Joel (location ICCS 104), 10:30-11:30am.
Dec 6 (Fri): Adam: 2-3:30pm (DLC, Table 6).
Dec 9 (Mon): Joel (location ICCS 104), 9:30-11:00am.
Dec 9 (Mon): Adam 1:00-2:30pm (DLC, Table 6).
Dec 9 (Mon): Yuchong (location ICCS X341), 3:00-4:30pm.
Dec 10 (Tue): No office hours. Final exam at 7pm in DMP 310.
Final Exam Study Guide Your may bring 2 two-sided 8.5 x 11 sheets of notes for the exam.
Practice problems for the final exam include all homework problems for credit, the study guide for the midterm, plus the following study guide for the final.
Midterm Study Guide Our midterm will be on Wednesday, October 30, during class hours (3-4pm). The location is SWNG 121 (SWNG is located at West Mall 2175).
Topics covered on the midterm: Self-Referencing, Uncountability and Uncomputability in CPSC 421; Chapter 1 of [Sip] plus the Myhill-Nerode theorem explained in this article, but with Section 1.4 omitted. Chapter 3 of [Sip], specifically: all of 3.1, and the part of 3.3 after Hilbert's problem (i.e., describing graphs, Turing machines, etc.) [3.2 is omitted, including multi-tape Turing machines].
Practice problems for the midterm include all homework problems for credit, and this additional midterm practice (problems may be added to this list). Solutions will not be released; some solutions or hints will be given to problems that do not resemble anything assigned on the homework or solved in the textbook.
Here are solutions to the mideterm.
Overview This is an introductory course to Computer Science Theory. This policy webpage describes the course policy, including the prerequisites and grading scheme.
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 article(s):
  • The course will begin with material from: Self-Referencing, Uncountability and Uncomputability in CPSC 421; this version is a draft which may modified.

  • Some other topics covered in class are not covered adequately (or at all) by the textbook and handouts; and students should use class notes for these topics:
  • This article on the Myhill-Nerode theorem. (We will skip Section 1.4 of the textbook on the Pumping Lemma.)
  • These notes on SNEAKY-NP, a language that is NP-complete for simple reasons, and SNEAKY-PSPACE, that is similarly PSPACE-complete.
  • Midterm The midterm was held during class hours on Wednesday, October 30, 2019.
    Here are solutions to the mideterm.
    Readings and Boards Scans
    Homework Homework will be assigned most weeks, posted on Thursday and due the next Thursday (at 11:59pm). 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. Homework will be submitted and graded using gradescope.com. I will enroll you in gradescope.com, using the name "A Student" and your "a1b2c" at ugrad.cs.ubc.ca email address.

    Homework generally consists of (1) exercises for credit, (2) optional (and more difficult) exercises not for credit, and (3) some sample exercises with solutions (to give you an idea of how much detail your explanations should have).

    Homework 1 is due on gradescope.com at 11:59pm Thursday, September 19. Solutions.
    Homework 2 is due on gradescope.com at 11:59pm Thursday, September 26. Solutions.
    Homework 3 is due on gradescope.com at 11:59pm Thursday, October 3. Solutions.
    Homework 4 is due on gradescope.com at 11:59pm Thursday, October 10. Solutions.
    Homework 5 is due on gradescope.com at 11:59pm Thursday, October 17. Solutions.
    Homework 6: Problems 1 and 2 on Midterm 2017 [the format of Midterm 2019 will likely be similar, but the topics covered in 2017 and 2019 differ], and Problems 1(d), 1(e), and 6 on additional midterm practice.
    Solutions to Problems 1 and 2 of Midterm 2017 are here; the soltion to the other two problems are here.
    Homework 6 will not be collected or graded.
    Homework 7 is due on gradescope.com at 11:59pm Thursday, November 7. Solutions.
    Homework 8 is due on gradescope.com at 11:59pm Thursday, November 14. Solutions.
    Homework 9 is due on gradescope.com at 11:59pm Thursday, November 21. Solutions.
    All other homework will not be collected (or graded).
    Recommended homework/study: Final Exam 2017, all problems except the last true/false question of problem 1 (see the study guide for the final). Additional homework/study: other problems on this study guide.
    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.

    For office hours in December, please see the top of this page.
    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