Schedule

Table of Contents

This schedule page will probably be your main landing site for the course. Bookmark it! We’ll try to keep all the key information linked from here.

1 Calendar

See the Piazza All the Things! post for a list of all the key course material with links. (Suggest links we’re missing in comments, please!)

See our course’s PrairieLearn assessment schedule for key assessment dates. Use the little “question mark” button to see details (e.g., the available times for quizzes—which will generally be 10‐15 minutes longer than the quiz time limit!—or the full set of alternate due dates for assignments).

Also review the sections below and the important dates section of the syllabus.

2 Lecture and In-Class Exercises

Our lectures are Mondays, Wednesdays, and Fridays 12–12:50PM held either online or in-person in DMP 310 except on quiz days. For in-person attendance, as of the start of the term, masks are required but see the syllabus for details. (If you feel as or more comfortable with online instruction compared to in-person, we would appreciate it if you start with online attendance and adjust as the COVID situation becomes clear.)

In-class exercises will generally be due the day before each quiz at the end of the day. See PrairieLearn for schedule and details!

Number Title Notes Code
13 A Brief Introduction to Definite Clause Grammars and Difference Lists notes
12 Negation as Failure notes
11 Unification notes
10 Binary Search Trees in Prolog notes
9 Full Prolog, Syntax and Semantics notes
8 Prolog as a Programming Language notes
7 Introduction to Prolog notes
6 I/O, Yay!! pre-class in-class
5 Ad Hoc Polymorphism with Type Classes pre-class in-class
4 Polymorphism and Higher-Order Functions pre-class in-class
3 Algebraic Data Types pre-class in-class
2 Intro to Haskell pre-class in-class
1 Welcome to CPSC 312! pre-class in-class

3 Help Sessions

Pending provincial/UBC health rules, we expect to have regular open help sessions every week (not on holidays):

Day/Time Location Staff Occupancy limit Masks?
Mondays 1–1:20PM DMP 101 Eric 15 students required
Mondays 4–5PM help session Zoom room Steve none! online
Wednesdays 1–1:20PM DMP 101 Eric 15 students required
Wednesdays 3:30–5PM ICCS X237 Tarcisio ~3 students required
Thursdays 9:30–11AM help session Zoom room Steve none! online
Thursdays 11AM–12:30PM ICCS X237 Tarcisio ~3 students required
Thursdays 12:30–1:30PM help session Zoom room Andy none! online
Fridays 11–11:50AM DMP 201 Eric 15 students required

NOTE: Andy’s planning to see how online goes for the first 1-2 help sessions, discuss with you all (probably on Piazza), and decide on a long-term solution.

We will post times/locations for all one-off help sessions on Piazza.

4 Quizzes

Our quizzes will be on Fridays during our regular lecture time on the following dates:

Plus a final one during our scheduled final exam slot.

You will need a computer for quizzes. We hope most people can use their own computers for quizzes. If not, we will schedule you into labs. Keep an eye on Piazza for a scheduling survey that includes a request for help with a computer. (Except the final one, quizzes will in our regular classroom, an alternate classroom, or a computer lab. We will assign you into a room based on that Piazza survey.)

In addition, there will be two opportunities for make-up/retake of a limited number of quizzes:

As these dates approach, we will post a survey to determine who plans to retake which quiz(zes) and how many need lab space. (You may not be allowed to retake quizzes unless you reply to the survey; so, keep your eyes out for that!)

We plan to allow students to opt to make-up or retake up to two quizzes that were already completed by the time of the session. The new grade will replace your old one. We will try to make the new quiz comparable to the original, but that can be hard to ensure! (If you do not wish to make-up/retake any quiz, you do not need to attend the Oct 25 evening session, and you can leave the final exam session after the quiz time is over.)

5 Assignments

Assignments will generally be due at the end of the day (Vancouver time) each Thursday following a quiz week. We plan to offer a little bit of extra credit for submitting early. (See PrairieLearn for details.)

Title Due Early "Due Date" Late Due Date
Assignment 3, Animal Crossing Out 2021 Nov 8 2021 Nov 5 2021 Nov 12
Assignment 2, Unify Two Tree-Structured Terms 2021 Oct 21 2021 Oct 14 2021 Oct 24
Assignment 1, Looking Out for Number One? 2021 Sep 23 2021 Sep 16 2021 Sep 27

6 Projects

See the Project Requirements for additional details, including format and rubric.

You will work in a team of 2–4 students on the project. We will ask for your team selection as part of the Haskell project proposal submission on PrairieLearn. (We’re still learning to use PrairieLearn groups; so, be patient if we have to revisit that part!)

The three key deadlines for your project are:

  1. Haskell project proposal: end-of-day Friday Oct 22
  2. Prolog project proposal: end-of-day Tuesday Nov 16
  3. Final project submission: end-of-day Tuesday Dec 7

Each proposal will be a written document outlining what you plan to do in the project, along with a small prototype. The prototype should be a proof-of-concept that takes a SINGLE SMALL but important element of the project and builds it out into code. It’s fine for portions of this to be “stubbed out” as long as enough is there to learn from and play with a bit.

The final project submission will include a brief written document to describe what you’ve accomplished, the code for your project, and a video demo of what you have done.

We expect to post a rubric and more details about project facilitation and submission formats over the coming weeks, and at least two weeks before each relevant deadline.