CS 315: Algorithms & Data Structures (Fall 2009)

How to Turn in the Programming Assignments

Assignments are due 11:59pm on the date listed (except for project 1). To submit your assignments, login to your CS department Unix account, cd to the directory where your source files are, and type the following command:

turnin --submit <TA> <project> <filenames>

where <project> is proj2, proj3, etc. (project 1 will only be collected on paper.)

and <TA> depends on which session you are in.

M 10

wdong86

M 11

yulinli

M 12

wdong86

M 1

varunjn

T 9

yulinli

T 10

yulinli

T 12

varunjn

T 1

varunjn

For example, to submit the Recursion and Lists assignment, you would type:

turnin --submit wdong86 proj2 Cons.java README OR

turnin --submit varunjn proj2 Cons.java README OR

turnin --submit yulinli proj2 Cons.java README

You can check to make sure that your files were submitted successfully by doing:

turnin --verify <TA> proj2

If you want more information on the turnin program itself, from within the Linux shell type:

man turnin

Which will bring up the manual for the turnin command. To exit the manual, press the "q" button.


You are expected to include some additional information for every assignment: your name (important for a class of this size, so don't omit it), the departmental computer you have tested your code on (it is a good idea to run your code on some CS machine before turning it in), any parts of the assignment you were unable to complete, and anything else you would like to say about your work. Put this information in a separate README file. To facilitate grading, please do not change the names of the files or signatures of the functions given to you. Normally, you should not have to modify anything existing; your job is to add new stuff. The one exception is with the *.asgx.java files. For example, you need to change Cons.asg2.java to Cons.java in order to compile. In these cases, submit the files under the new names. Also make sure you turn in all files necessary to run your program as an independent unit, thus include even files you have not modified from the class directory in your submission.

If you choose to do the assignments at home, you will need to transfer your files to the departmental machines before using turnin. One way is to email them to your CS address as attachments. Another is to use a FTP program such as the SSH client available from Bevowere. If you use Mac, you may also use Fugu.

In any case, you will need to use SSH to connect to the Linux machines over the Internet in order to submit your assignment. The following guide details on how to use SSH both to transfer your files and to submit your assignment. It is kindly provided to you by Phillip Verheyden and adapted by Yulin Li.

The basic order of things is:

  1. Transfer the files from your machine over to the Linux machines

  2. Run the program on the Linux machine you transferred the files over to in order to test your program and complete the README file

  3. Use turnin to turn the files in

Transferring Files

A list of the Linux machines can be found on this page . In order to connect to them, you have to concatenate ".cs.utexas.edu" onto the end of the machine name. For instance, if I am trying to connect to the machine called apu, I would use apu.cs.utexas.edu as the host name. Check out this page to see some example programs to use in order to connect via SSH. Since I use Windows as my personal computer, I just download SSH Secure Shell from Bevoware because it has a nice GUI to transfer the files over.

As earlier mentioned, the hostname will be <computer_name>.cs.utexas.edu, and the username is your “CS account username”. If you were connecting to the Linux machines using the Mac OSX terminal, it would look something like:

ssh <cs_username>@<computer_name>.cs.utexas.edu

On some SSH applications it will ask you for the port number. Port 22 is the standard port; use this.

After you connect to the linux machine, it will say something about saving a public key to the database. You want to do this so it doesn't have to keep re-authenticating your key every time you try to log in.

Now that you are logged in, if you have a GUI you can transfer files over that way. By default, the default folder that you transfer the files into will be the folder that you start in when you log in at the command line interface.

Testing Output

Now you should have the files transferred over. You need to execute the files on the Linux machine itself. SSH to a Linux machine (or make sure you are on the command line if you have already done this) and do:

javac Cons.java

Which will invoke the java compiler to compile your java file. If you type ls (which is the command to list files) you will now see a Cons.class file. Now you just need to execute the actual Java code which is done by:

java Cons

Where Cons is the class where the main() method resides that you want to run. You should see the expected output.

Turning In

Now that you have successfully tested your file on the linux machines, you are ready to turn it in. The instructions at the beginning of this page should apply from this point.