Schedule
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:
- Sep 17
- Oct 1
- Oct 15
- Oct 29
- Nov 19
- Dec 3
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:
- Mon Oct 25 6–8PM in Buch A101 (plus a lab space for those in need of a computer).
- Our final exam session (plus a lab space)
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:
- Haskell project proposal: end-of-day Friday Oct 22
- Prolog project proposal: end-of-day Tuesday Nov 16
- 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.