Programming Assignment Guidelines


This document aims to clarify important issues relevant to programming assignments for the course. Following the guidelines explained here will greatly simplify submission, testing, and grading of your work.

Submission

The homework should be submitted on Canvas. The submission should contain:

Include all the files in a zip file named hwX_yourNetID.zip (where X is the homework number), and upload to Canvas. This zip file should have a single directory named hwX_yourNetID, which contains all the files listed above.

An easy way to get the directory structure right is by doing the following steps:

  1. download the file MATLAB.zip from Canvas,
  2. unzip it to get a folder also named MATLAB,
  3. rename the folder MATLAB to hwX_yourNetID,
  4. do the homework in this new directory hwX_yourNetID, keeping in mind the other guidelines listed below,
  5. and finally, zip the folder hwX_yourNetID, creating the file hwX_yourNetID.zip.

More notes/guidelines

The runHwX.m file serves as a framework for the homework and guides you through the individual programming milestones. In this file you will need to enter your name, your NetID, and possibly to complete some skeleton code or to fill in certain parameters. It also interfaces with all the functions you need to implement and will help you run and test your solution. As such, we cannot allow you to change the signature of any function required to be implemented in the HW.

runHwX.m contains a set of sub-functions prefixed with the string walkthrough or challenge, which are test cases for walkthroughs and challenges. To execute a test, type runhwX(“test_name_string”) at the MATLAB command prompt. To execute the entire set of tests, type runHwX(“all”) at the MATLAB command prompt.

We would also like you to keep the following in mind when writing your code or preparing your submission:

  1. Make sure you can run runHwX.m without errors before submission.
  2. Do not use absolute paths. For instance, if there's a file named Vincent_Van_Gogh.jpg in the directory hwX_yourNetID, your code should refer to its path as just 'Vincent_Van_Gogh.jpg', and not something like 'C:\My Documents\CS 639\Assignments\Vincent_Van_Gogh.jpg'. (To elaborate, we always run your code from the directory hwX_yourNetID, so relative paths allow us to run each student's submission reliably without changing any code.)
  3. Use imshow only for the final output; comment out any intermediate occurrences. We will uncomment or add them as necessary when grading.
  4. Again, do not remove input files from the submission unless explicitly requested. And please keep your generated output in the directory as well.

Using built-in MATLAB functions

MATLAB comes with a large collection of functions and toolboxes. In the context of this course, some of the classic algorithms have been implemented as built-in functions in Image Processing Toolbox or Computer Vision Toolbox. Thus, only basic MATLAB functions are allowed in assignments, unless otherwise specified.

In particular, you may not use any functions from MATLAB’s Image Processing or Computer Vision toolboxes, except for functions that are explicitly permitted. To check if a particular function is from one of these toolboxes, type doc function_name into the Command Window to view the function’s documentation. At the very top of the documentation window, the source of the function will be listed. For example:

Example of finding the toolbox holding a particular MATLAB function
Finding the toolbox holding a particular MATLAB function

In addition, the usage of one or more specific built-in MATLAB commands may be barred. Special instructions regarding allowed or disallowed functions will be explicitly stated in the description of each programming problem.

Pay attention to the instructions specified in each assignment. If you are unsure whether a built-in function can be used or not, please ask before assuming. You will receive no credit for using built-in functions where you should be coding them. When in doubt, please ASK!

Academic Honesty Policy

The course requires you to read the Code of Academic Integrity as stated by University of Wisconsin-Madison Dean of Students Office. You are permitted and encouraged to discuss ideas with other students. However, you may not share answers or your code with others. Also, copying code/solutions from other sources, including online files, MATLAB sources or solutions from other educational institutions, but not limited to these, is prohibited. We will be monitoring source code for individuality. Ramifications for students who violate the Code of Academic Integrity may include an F grade for the course, documentation on your academic file, and even probation.