CS 241e - Foundations of Sequential Programs (Enriched)

Piazza Info
Assignment Info
IntelliJ IDEA Setup
Marmoset Link
Exam Information

General Information



Assignments must be submitted using Marmoset.

You may do the assignments either on your own computer (recommended) or on the linux.student.cs.uwaterloo.ca server managed by CSCF and accessible from the terminals in the labs. Either way, follow the appropriate instructions below to setup your environment.

Using your own computer

First ensure that you have the following software installed:

Using linux.student.cs.uwaterloo.ca

Login to one of the labs, and open a terminal connected to linux.student.cs.uwaterloo.ca. If you are using ssh to connect to linux.student.cs.uwaterloo.ca, use the -Y option to enable running graphical programs: ssh -Y linux.student.cs.uwaterloo.ca. After connecting to linux.student.cs.uwaterloo.ca, run the command source /u/cs241e/setup. This command sets your environment to give you access to all of the tools you will need for CS 241E.

The command idea.sh will then start IntelliJ IDEA.

Assignment skeleton code

To begin the assignments, download the skeleton code that we provide: Unzip it in a directory of your choice. Once you have done that, setup IntelliJ IDEA according to the instructions at this link.


Marmoset will run a number of automated tests on your solutions and grade them automatically. You may submit your solutions as many times as you wish prior to the submission deadline. Your assignment mark is determined by the number of tests that your submission passes.

You must test your submissions yourself prior to submitting them to Marmoset. You should not be using Marmoset as the only means of testing your solutions.

To prepare a submission to Marmoset, click on the sbt shell button near the bottom left corner of the window.

After the initializing message disappears from the console, type packageSrc.

This will package your code submission into the file target/scala-2.13/for-marmoset.zip, which can be submitted to Marmoset.