Coursework and Submission
This page describes both your coding environment and the manner
of submission.
Coursework and coding environment
Let's start by describing how you will work. You really
have two options:
- Option 1: Work on the SEAS Unix server but using your laptop (or any lab PC)
to access the server. Then, when you need to submit something,
create a zip file and upload into Blackboard.
- Option 2: Work natively on your laptop and upload zip files into Blackboard.
Let's explore these a bit further.
Option 1: Working on the SEAS Unix server:
- What this means:
- You will get an account on a Unix server via
your GW credentials (GW net ID)
by following the instructions below in the "what to do" section.
- This login occurs in a browser and
the entire interaction (session) takes place in your browser.
- The Unix machine will have a "desktop" that you will see
in your browser. In this "remote desktop",
you will be able to open a terminal
window, open files, edit files, compile and execute. It's as if
you were sitting at that server machine.
- You will be able to access this server from any kind of
laptop (Windows, Mac etc).
- All your files will be saved on the Unix server so that
you don't need to worry about backing them up.
- You can access this server both from home and in the lab,
but there's one additional step needed if you are at home:
you need to first fire up the VPN client (see below) and login.
- What to do:
- First, install the
GW VPN client
(there are different versions for Windows and Mac)
so that you can access from off-campus.
- If you are off campus, you need to execute the VPN client
by finding it and double-clicking.
- Windows users, use Internet Explorer. Mac users, use Firefox.
Mac users, you may need to install Firefox on your laptop.
- Follow these remote-unix-desktop instructions to
get started. As mentioned, if you are off-campus, you'll need get the VPN
started (which also uses your GW net ID and password).
- Learn basic Unix.
- Open a terminal window in the remote desktop.
- Initially, you can start off by using the nano
or pico editor to edit files. Then, after a week or so
you can use the more powerful emacs editor.
- When you complete an assignment, you'll need upload into
Blackboard by firing up Firefox from inside the Unix environment.
- Advantages of this option:
- This is the easier of the two options, especially if you
are not already savvy with getting your laptop properly set up.
- All your files are saved and backed up.
- If you forget to bring your laptop to class, you can
use the lab machines in exactly the same way, and all your files
will already be there.
Option 2: Working natively on your laptop:
- What this means:
- You install the tools needed for Unix development:
- Mac OS-X comes with Java and pico but
you'll need to install a C compiler and Emacs.
- On Windows, you'll need to install Cygwin (which
includes a C compiler), the nano or pico
editors, or emacs.
- When you complete an assignment, you create a zip and upload
into Blackboard.
- You are responsible for backing up your files.
- You'll need to bring your laptop to class, where we'll
be doing programming.
- What to do:
- We will not be able to help you with the installation
process in detail.
- Installation on Mac OS is relatively straightforward:
- First, install Xcode by typing xcode-select --install
in a Terminal window (use spotlight to find Terminal).
- Follow instructions on the LLVM website. Then, use
the clang compiler for C programs.
- Mac OS already comes with Java, pico and
basic emacs. Type
javac in the Terminal to confirm (it'll print a
bunch of options) and pico in the Terminal (which
will put you in the editor). Try the same with emacs.
- There is a GUI version of Emacs, if you prefer.
You can find a pre-built
dmg to download.
- Windows is another story.
- Installing the Java JDK is easy because there's a
setup.exe that does this for you.
- To provide a Unix-like environment on Windows, you need
to install Cygwin. This
is easy because there's a setup.exe to do it for you.
But it takes a while to learn how to use it.
- Then install nano or pico from
within Cygwin. There are emacs versions for
Windows, but then you'll need to use the Windows path
to the files, yet compile and execute from Cygwin.
- You can set up the PATH and CLASSPATH variables in
Cygwin (using "export" in the .bashrc file) to
access the Java compiler once that's downloaded.
- Cygwin comes with gcc for C programs.
- Advantages of this option:
- It's faster than doing everything in a browser.
- Natively run programs will run with higher graphics resolution.
- Ultimately, this is what you'll do in your life
outside the course, so why not start now?
Our recommendation: start with Option 1 and then gradually switch to
Option 2.
Important: For the remainder, we'll assume you will
have the Unix terminal prompt, whether using remote-desktop,
or your own laptop. Accordingly, further instructions
will feature Unix exclusively.
There are five categories of coursework:
- Quizzes. Unannounced in-class quizzes that will
be performed on paper and submitted right after the quiz.
- Module or in-class exercises. Many of these will
begin in class and some will be completed in class. Others
you will complete on your own, ideally, the same week
as the particular module is covered.
These will be submitted as a single zip file (described) below,
one zip file per module.
- Exercises. These are one-week exercises called
Exercise-1, Exercise-2 etc and will be submitted as a zip.
- Assignments These are due in two weeks, and submitted
as a zip file.
- Exams. There are two in-class programming exams,
submitted during the exam.
Almost all your coursework will involve C or Java files.
A particular submission might feature many such files, all of
which will need to be in a folder, making it convenient to create
and upload a zip file.
Submission
- Module exercises. Suppose you are uploading all your
solutions to the module exercises for Module 12. You will
have written your solutions in a folder called module12.
Go outside this folder and zip up the folder into a zip
file called module12.zip. Upload this into Blackboard
in the appropriate place.
- Some module exercises have a text response or a
figure. Put all of these in a single PDF in the folder.
Thus, for example, if module exercise 3.2 has a text response
and exercise 3.7 has a figure to draw, put both the text
and figure in a PDF called answers.pdf in the module-3 folder.
- Thus, a typical module zip will have a bunch of programs
(one program for each exercise that involves a program) and
one single PDF with answers to all the questions that need
text or drawings.
- As an example, see this
sample template. Of course, the zip file needs to include
both this AND your programs.
- Exercises. As mentioned above,
these are the one-week exercises called
Exercise-1, Exercise-2 etc. For example, for Exercise-2,
upload a zip file called ex2.zip that will
have all the needed files in your folder ex2.
- Assignments. For example, for Assignment 3, you would
upload a3.zip.