Code Submissions
The following applies to all code submissions.
Non-code submissions will be given instructions in the assignments.
Purpose
Code submission guidelines are structured to conform to professional
software engineering practices as much as is reasonable for an academic setting.
The purpose of these guidelines is to train the student in professional
coding practices to better prepare them for a career in software development.
All code submitted must conform to the following guidelines.
Failure to do so will result in your submission being penalized, up to and
including being rejected and an assigned grade of zero.
See grading guidelines for details
regarding grading.
Use the code checklist along with these guidelines to ensure your
code meets best practices and requirements for submission.
Files Submitted Through GitHub
Most of your coding work will be submitted this way.
-
Your repository on GitHub must be generated by a
GitHub Education
invite. No other repos are accepted.
-
Commit only source code, a .gitignore, and a README file
unless instructed to do otherwise.
-
Commit everything your project needs to be
built. Do not commit
any files that are not needed to build your project except a README and .gitignore.
-
Use a proper .gitignore and ensure that no extra
files are present in the repo. Never commit any of the
following:
- IDE Project files
- Executables
- Data files (unless directed to do so)
- Stray files such as MacOS files.
-
Submit a proper README file with your project.
The README file should contain the following:
- A brief description of the project.
- Instructions on how to build and run the project.
- Any special instructions for the project.
- Any special requirements for the project.
- Any special dependencies for the project.
- Any special notes for the project.
-
When you submit, you will submit your GitHub repo url
according to the following:
-
Use the write submission feature.
-
Do not submit SSH links or .git links or links to branches. Submit the URL from your browser window
which points to your repository as a whole, not branches, or files, or anything else.
Files Submitted Through Blackboard
-
For files submitted directly to Blackboard you will be given instructions
in the assignment itself.
- If you are asked to zip your files and submit a zip file,
follow these guidelines for your zip file:
-
If your submission is code, then the same rules apply to the zip
file as applies to repositories. Code only, no stray files, no executables, etc.
- Do not include top level directories. See Images Below
- Mac users, if your zip files contain MacOS
files, your assignment will not be accepted. You cannot see these
directories and files normally on a Mac. You have to use a
3rd party zipping tool,
or you have to zip at the command line (preferred). To use the command line:
zip -r dir.zip . -x ".*" -x "__MACOSX"
-
Examples (click to enlarge)
File Names
- Use only lowercase filenames without spaces or "strange" characters (this applies to zip
files as well). The only allowed characters are a-z, 0-1, dash, underscore,
and one period for the extension.
-
All files will be run, viewed, compiled/interpreted on Linux. Linux (and Mac) is
case-sensitive. If you mix cases between resource names and calls to that resource, it
will not work on Linux and you will receive a zero for that assignment. Examples:
- Web Programming: If you use an image tag like this:
<img src="image.jpg">
but your actual file is named Image.jpg,
your image link will break on Linux
(note the lower and uppercase "i" in the file name).
-
C/C++: If you use an include like this:
#include "functions.h"
but your actual file is named Functions.h,
your include will break on Linux
(note the lower and uppercase "f" in the file name).
-
Python: If you use an import like this:
import MyLibrary
but your actual file is named mylibrary.py,
your import will break on Linux
(note the lower and uppercase "m" and "l" in the file name).