This is the archived website of SI 335 from the Spring 2016 semester. Feel free to browse around; you may also find more recent offerings at my teaching page.

Submitting Code

All code for the projects must be submitted electronically, from the USNA cs linux environment. If you need help accessing the environment from Bancroft hall, ask the instructor or a fellow classmate. All code is expected to be clearly commented and cleanly written so it is easy to understand. As always, you will be graded on the CLARITY of your submission and not just the CORRECTNESS.

Naming

Unless otherwise specified, all code must be submitted as Java, C++, or Python programs. Unless otherwise indicated, all the code should be in a single file that ends with ".java", ".py", or ".cpp" as appropriate. the following commands, where program is the name of your code file and arg1, arg2, etc. are any command-line arguments:

  • Java:
    javac program.java
    java program arg1 arg2 arg3 ...
    Note: the name of the class with a main method must match the name of the file exactly! So for example if the file is sel.java, then there must be a class called sel that has a public static void main method defined.
  • C++:
    g++ -O6 program.cpp -o program
    ./program arg1 arg2 arg3 ...
  • Note: I will not compile with any other extra special flags or anything like that. However, I recommend that you use the -Wall -Wextra flags when compiling yourselves, to help you catch mistakes.
  • Python:
    python3 program.py arg1 arg2 arg3 ...
  • Note: I am using python3 not the regular python (which is really Python 2).

Environment

I've set up some useful aliases for you so you don't have to type so many directories every time. To get these aliases at your command prompt, just run the following from one of the Linux lab machines:

/courses/roche/335/setup

This will define some shortcuts (aliases) to run any programs we will need for this class. After you add this line, any new terminals will get the new commands. To update the current terminal, just run source ~/.bashrc from the command line.

The submit program

The program you will use to submit is located at /home/scs/roche/sub/submit, but can be run by typing 335sub if you ran the setup program described above. This program is accessible from the usna CS linux environment. You can use it from the MI 302/316 lab or log into one of the machines remotely.

When you run 335sub with no arguments, it will display something like

Open submissions matching your search:
proj 1
This means, unsurprisingly, that SI 335 has one thing open for submission, it's a project, and it's number 1. To submit your file or files for this lab, you make a directory in your account (like mkdir proj1), then put any files to submit in there.

Once you have your local directory, and you confirm that the assignment is open for submission, you cd to that directory and run

335sub proj 1
(for example) to submit your files. This will check your files, and then bundle and submit them to your instructor. At the end you will see something like:
Submitting 335 proj 1 for user roche to Dr. Roche..
roche/
roche/hi.txt
Submission successful.
You can see that there is one file that was submitted, called hi.txt. Note the last line, telling me that it was successful. If you don't see this line, then something went wrong.

IMPORTANT: Any extra files that do not follow the proper naming convention will NOT be submitted. Make sure you check the list of files that was actually submitted to me, because that's all you will be graded on!

All this does is put all your files in a place where I can see them, with a timestamp and your username. You are free to submit the same assignment repeatedly, and I will only look at the most recent submission for grading purposes.