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 box icon in the bottom-left corner of IntelliJ IDEA, and select SBT Console from the menu. Click on the green play triangle icon. In the console, type packageSrc. You should get the message: Packaging .../target/scala-2.12/for-marmoset.jar. This file now contains all of your code, ready to be submitted to Marmoset. Load Marmoset in your web browser, and submit this for-marmoset.zip file to Marmoset.