You have a choice to write a term paper or do a software project. This will constitute to 60% of your class grade. You have plenty of time to make this choice and if you find you struggle with programming you may want to consider a term paper instead of a project.
In case you chose a project your maximum grade for the entire class could be an A+. However, an A+ project must be truly outstanding and include an exceptional project report. Such a project and report will have the potential quality of being able to be published in a conference.
In case you chose a Term Paper your maximum grade for the entire class will be an A-.
Please note that a project includes also writing a project report/paper. However the length is a bit lower than for a term paper.
Software projects and term papers can be conducted with one, two or three class members. We do not allow more than three members in a project. It will be up to you to determine a team, but we recommend that you chose wisely. Naturally if a team member does not contribute to the project you need to address this early on. Please do not come to us a week before the deadline is due and say a team member has not contributed, this is far to late to do any adjustment to the team. It is in your responsibility to manage the team.
Both Projects and Term paper have the following common deliverables
All reports will be using the our common format. This format is not the same as the ACM format, so if you use systems such as overleaf or sharelatex, you need to upload it and use it there.
The format for LaTeX and Word found here:
Please copy all files into your project directory and modify accordingly. Naturally you do not need to copy the sample images. A README.md file is included with additional information.
There will be NO EXCEPTION to this format. In case you are in a team, you can use either github while collaboratively developing the LaTeX document or use MicrosoftOne Drive which allows collaborative editing features. All bibliographical entries must be put into a bibliography manager such as jabref, endnote, or Mendeley. This will guarantee that you follow proper citation styles. You can use either ACM or IEEE reference styles. Your final submission will include the bibliography file as a separate document.
Documents that do not follow the ACM format and are not accompanied by references managed with jabref or endnote or are not spell checked will be returned without review.
More details about the format can be found at
Projects may be executed on your local computer, a cloud or other resources you may have access to. This may include:
The following artifacts are part of the deliverables for a project
You must deliver the source code in github. The code must be compilable and a TA may try to replicate to run your code. You MUST avoid lengthy install descriptions and everything must be installable from the command line. We will check submission. All team members must be responsible for one or all parts of the project.
Code repositories are for code, if you have additional libraries that are needed you need to develop a script or use a DevOps framework to install such software. Thus zip files and .class, .o files are not permissible in the project. Each project must be reproducible with a simple script. An example is:
git clone ....
make install
make run
make view
Which would use a simple make file to install, run, and view the results. Naturally you can use cmd5 (we teach this in class), ansible or shell scripts. It is not permissible to use GUI based DevOps preinstalled frameworks. Everything must be installable form the command line.
A report must be produced while using the format discussed in the Report Format section. The following length is required:
In case you chose the term paper, you or your team will pick a topic relevant for the class. You will write a high quality scholarly paper about this topic. The following artifacts are part of the deliverables for a term paper. A report must be produced while using the format discussed in the Report Format section. The following length is required:
Grading for homework will be done within two weeks of the submission on the due date. For homework that were submitted beyond the due date, the grading will be done a month after the submission. A 10% grade reduction will be given for residential students if the project is late. Some homework can not be delivered late (which will be clearly marked and 0 points will be given if late; these are mostly related to setting up your account and communicating to us your account names.)
It is the student’s responsibility to upload submissions well ahead of the deadline to avoid last minute problems with network connectivity, browser crashes, cloud issues, etc. It is a very good idea to make early submissions and then upload updates as the deadline approaches; we will grade the last submission received before the deadline.
Note that paper and project will take a considerable amount of time and doing proper time management is a must for this class. Avoid starting your project late. Procrastination does not pay off. Late Projects or term papers will receive a 10% grade reduction.
All other assignments are pass/fail assignments and are geared towards you being able to explore rather than you being bound by small assignments.