COMP 3007 Fall 2021

Course Outline


Douglas Howe.


The calendar prerequisites are COMP 2402 and COMP 1805. We won't be apply much of the specific content of those courses, but it's important to have proficiency in an imperative language (like Java) and an understanding of some basic mathematical foundations.Students would have gotten this from 2402 (and its prerequisites) and 1805.

Course learning outcomes

General course structure

The course will have synchronous lectures in the published time slot. The lectures will be done via Zoom. They will be recorded and uploaded to Brightspace.

The lectures will not usually use prepared slides. The instructor will produce handwritten slides in real time and upload a pdf of them after the lecture.

Extensive use will be made of "Ed Discussion", a new Q&A tool being used by most of the top US universities. This will be the place where you can ask questions and have them answered. Answers can be from other students or from course staff (instructor and TAs), and answers by students can be annotated/approved/highlighted by staff. It is expected that most interaction outside of class will be done this way, and that conventional 1-1 office hours will only only be for unusual issues. More information on this tool will be given early in the term.

Much of the work of the course will be using the Haskell programming languages (see below on course software). There will be five assignments and they will mostly be based on Haskell. All assignments are to be submitted using the course Brightspace site.

Three of the lecture slots will be used for proctored quizzes. We will probably be using CoMas, a Carleton proctoring tool that enables students to use their own programming environment.

There will be a final exam during the scheduled exam period. It is currently undecided whether the exam will be using CoMas or will be conventional test with textual answers.

Important Dates

Date Event
Mon Oct 04 A1 due
Wed Oct 06 Quiz 1
Mon Oct 11 Thanksgiving
Wed Oct 20 A2 due
Mon Oct 25 Break starts
Mon Nov 08 A3 due
Wed Nov 10 Quiz 2
Wed Nov 24 A4 due
Wed Dec 08 A5 Due
Fri Dec 10 Quiz 3


Course software

We will be using the language Haskell for this course. To run Haskell, you'll need the Haskell compiler ghc and the package manager cabal. You can download both from There are numerous IDES that support Haskell, but you don't really need one. The programs you will write for the course will be small. Syntax highlighting is pleasant but certainly not necessary.

For most students it will be enough to edit programs as regular text files (though with a ".hs" extension), and run/test them inside ghci, which is a read-eval-print loop accepting Haskell expressions and a limited command set (e.g. to load a file). Typing :help in ghci will give you a list of all available commands.

If you do want a full-featured programming environment, I strongly recommend VSCode. The VSCode Haskell extension requires the) Haskell Language Server, which can be downloaded from the same page as the compiler. VSCode runs on basically everything (Mac, Windows, Linux).

Note: the Windows Haskell install looks a bit off-putting (but I'm a Mac person). Try it if you like, it's probably fine, but if you don't have access to Linux or Mac OS machine, and the Windows install is too clunky, you can use a Linux virtual machine. To do this, follow these instruction to install VirtualBox, and then get a recent Ubuntu vm from the School's Course Virtual Machines page. The COMP 2401 vm is fine.

Course grading scheme

Weight Component
40% Best four of five equally weighted assignments
35% Best two of three equally weighted quizzes
25% Final exam

In addition, getting below 40% on the final exam will automatically make the final grade F regardless of term work.

Missed and Late Course Work

Dropping the assignment with the lowest grade is intended, in part, to soften the policy that late assignments will not be accepted. Brightspace submissions will automatically close at the time stated for the assignment. There are some possible extenuating circumstances that might justify an exception, such as documented illness, but technical problems, such as loss of internet connectivity, will not be considered. If you're getting close to the deadline, you should probably submit something preliminary, and resubmit if you get more done. If you gamble on everything working at the last minute, the risk is entirely yours.

Missed quizzes will be graded zero except in the case of documented illness or pre-arranged accommodations.


This course follows Carleton's policies. For a description of the kinds of accommodations available, and how to request them, see Carleton's Academic Accommodations page.