How to submit your programming projects

Your projects will be submitted and automatically tested via the web. You will use the online submission system at https://csi-info.baylor.edu/upload/. The system currently only works properly with Internet Explorer; so please use that browser when submitting and testing your programs.

Using the system the first time

Please do the following as soon as possible. The system uses a username/password system so you can log in to submit and test your code. The username is your Bear ID (such as "John_Doe"), and your password is initially "baylor" (without quotes). The first time you log in you should use this password, and the system should immediately ask you to choose a new password. Once you have changed your password, you will be sent back to the login page, where you can log in with your Bear ID and your new password.

Submitting your code

When you log in, find the project which you want to submit. There will be submission fields for each file you should submit for that project. You should use the "Browse" button to locate each file you want to submit, and then click "Upload" for each file to send that file to the server. After you have submitted all of your files, you can click "Test Program" to compile and test your program on the server. Note that if you make any changes to your code, you will need to upload the code again to the server for the server to notice the change.

You can submit each file as many times as you wish, until the deadline for that project. There is no penalty for multiple submissions.

The goal

For each project, your should accomplish two high-level goals:

  1. Submit a program which successfully compiles, runs, and gives the correct output for my hidden test cases. When you pass this part, you will receive a message from the judging robot which says "YES. Your code passes the tests, and will be considered for style and implementation."
  2. Your code should comply with the style guidelines. After you have gotten a YES from the upload site, you will recieve an email from me (or the TA) telling you that your code does pass the style check (in which case you are done), or does not pass (in which case you must re-submit to the judging robot).

Your code could fail to pass the judging robot for several reasons. If your code doesn't pass, the system will tell you "NO" and give you a reason why. The reasons are:

Remember that completing the project means passing both the judging robot and the style check, and if you don't pass all the projects, you will not pass the course. So it is extremely important that you start immediately and work hard on your projects.

Note that there is a column on your test screen named "SOLUTION OUTPUT:", but it will always be empty. You can ignore this column.

Testing your program

First of all, you should be testing your program on YOUR OWN COMPUTER, and not using the upload website as a testing/debugging/development platform. The upload website is for GRADING your program, but you should TEST your program on your own computer. I will often provide a sample executable (which is my solution) which you can use to run on your own computer.

In order to verify that your output is exactly the same as my output, you should use a diff utility. Sometimes files look exactly the same to the naked eye, but they are different because of spaces and newlines (or some other hidden characters). Diff utilities will catch these differences you can't see.

I recommend using WinMerge (if you are using Windows). Here is a link to download WinMerge directly. When you run WinMerge for the first time, make sure you do the following:

Setting these options will make sure that WinMerge catches every difference.

Metrowerks CodeWarrior also allows you to compare two files (see menu Search, option "Compare Files"). However, I have seen that CodeWarrior will (by default) ignore differences in newlines, so that is a problem. I recommend using WinMerge.

Here are some important tips to make sure you are comparing files correctly:

Other than comparing your output with my output, you should use your debugging skills to find problems in your programs. Use print statements, and check them for behavior that you expect. Use your IDE's debugger.

Don't use exceptions

You should never use exception handling in projects for this class. Exception handling is a poor substitute for correct logic in a program, and it doesn't work the same on all computers and all compilers.

Exception handling is a mechanism for error handling, not normal program function.

Using assert()

If you use an assert() in your code, and your program stops on an assert() during my judging script, the judging script will give you the information of that assert. That includes the file name and line number of the assert() that failed. This can be very useful for debugging. The output may look something like this:

NO. Your program crashed on assert() during execution. Here is the assert output:
test.cpp:5: int main(int, char**): Assertion `myPtr != NULL' failed.

If you use them wisely, asserts can be very useful for tracking down bugs in your code.

After you get a YES

If your code passes the online tests, then you are almost done. Make sure that your code follows the style guidelines, and that you are using the data structures in a correct manner for the project. You must have proper style to pass the project. So, for example, if your code passes but is not well-formatted, you should re-submit the code when you have it formatted properly.

Having problems?

If the submission system is not working properly, it could be due to several reasons.

Thanks

Many thanks to Bill Booth for providing the uploading system.


Copyright © 2006 Greg Hamerly.
Computer Science Department
Baylor University

valid html and css