UMBC CMSC331-01&04, Programming Languages, Fall 2021


Submitting Haskell Programs on GL


We are using shared directories on GL's Andrew File System (AFS) to submit the Haskell programs in your homework assignments. In AFS, we can specify that certain directories are only accessible to an individual student and the instructors and teaching assistants. These directories are the "shared directories". You will submit your Haskell programs simply by copying your files into these directories.


Initial Setup

Shared directories for each student have already been prepared. (If you added this class late, please contact Prof. Richard Chang chang@umbc.edu.) The first step is to make a symbolic link to your shared directories in your home directory on GL. In the examples that follow, we will use smurf19 as the example user name. You should replace this with your own user name.

Step 1: Log into GL (using Putty, TeraTerm, Terminal, ...). If you are unfamiliar with the GL system, the lecture notes from CMSC 121 Introduction to Unix will walk you through the steps.

Step 2: In the Unix shell, make a symbolic link to your shared directory in your home directory. Your shared directory resides in /afs/umbc.edu/users/c/h/chang/pub/cs331/ under your user name. So, if your user name is smurf19 your shared directory is /afs/umbc.edu/users/c/h/chang/pub/cs331/smurf19.

A symbolic link will allow you to refer to your shared directory in a more convenient form. The following Unix command will add a link called cs331hw to your home directory. (If you already have a directory called cs331hw, you should rename it.)

ln -s /afs/umbc.edu/users/c/h/chang/pub/cs331/smurf19 ~/cs331hw
Henceforth, you can refer to your shared directory as ~/cs331hw.


Shared Directory Layout

Explore your shared directory. You will notice that there are already subdirectories in your shared directory.

linux2% cd ~/cs331hw/
linux2% ls
00Gradesheets/   hw03/            hw05-late4/      hw08/            hw10-late4/
exception/       hw03-late2/      hw05-late-pass/  hw08-late2/      hw10-late-pass/
hw01/            hw03-late4/      hw06/            hw08-late4/      hw11/
hw01-late2/      hw03-late-pass/  hw06-late2/      hw08-late-pass/  hw11-late2/
hw01-late4/      hw04/            hw06-late4/      hw09/            hw11-late4/
hw01-late-pass/  hw04-late2/      hw06-late-pass/  hw09-late2/      hw11-late-pass/
hw02/            hw04-late4/      hw07/            hw09-late4/
hw02-late2/      hw04-late-pass/  hw07-late2/      hw09-late-pass/
hw02-late4/      hw05/            hw07-late4/      hw10/
hw02-late-pass/  hw05-late2/      hw07-late-pass/  hw10-late2/
The idea is quite simple. For example, to submit your code for Homework 3, simply copy all your files from Homework 3 into the hw03 subdirectory. After the due date for Homework 3, you will no longer be able to write into the hw03 subdirectory. You would need copy your files into hw03-late2 in order to submit Homework 3 up to two days late. Three and four days after the due date, you would have to submit to hw03-late4 because you will not be able to write into either hw03 or hw03-late2. Five days after the due date for Homework 3, you can submit to hw03-late-pass, but only if you haven't already used the late pass for that group of homework assignments. (See late submission policy in the Course Description.)

If you have files submitted to more than one of the directories for a particular homework, we will assume that you want to have the files in the most late directory graded. The appropriate late penalty will then be applied.

You might notice that you do not have write permission at the top level of your shared directory. Thus, you cannot create additional subdirectories in your shared directory or rename the subdirectories. These actions would break the scripts used to collect your homework for grading. At the homework level (e.g., ~/cs331hw/hw03/) you have all of the AFS permissions to read and write.


Submitting Your Files

If you already know how to copy files to the GL system, then whatever you are using now is fine. For example, you might be using scp on a Linux or MacOS and WinSCP on a Windows machine. Just make sure that you are copying the files into the correct homework directory. Also, make sure that the files reside in the top level of the homework directory and not in a subdirectory. For example, a listing of the directory for hw03 might look like:

linux2% ls ~/cs331hw/hw03
Postfix.hs
and NOT LIKE
linux2% ls ~/cs331hw/hw03
myhw3/

Some Tips:


Compiling Your Submission

You should test that your code compiles and runs on GL using the Haskell compiler on GL.


Copies and Storage Limits

Even though you can read and write in your shared directory, you should not use this space for permanent storage. You should use the shared directory for submission only. Files in the shared directories may be deleted without warning. We will routinely remove extraneous files, executable files and past submissions from the shared directory to free up storage space.

Thus, the files in the shared directories should NOT be your only copy of the programs. You should have a copy of your programs on your own computer or in a separate location in your GL account.


Last Modified: 27 Sep 2021 16:46:08 EDT by Richard Chang
Back to Fall 2021 CMSC 331 Sections 01&04 Homepage