CS494/594: Projects in Machine Learning

Project Assignments

Spring 2006


Machine Learning home page Syllabus Schedule/Readings Project Assignments Resources

All projects are due at 23:59:59 on the due date, unless otherwise noted.

Project NameDate AssignedDue DateFeedback
1. Reinforcement learning for robot navigation Jan. 24 Feb. 12 Project 1 Feedback
2. Neural network & backpropagation for character recognition Feb. 9 Mar. 7 at 10:00 AM Project 2 Feedback
3. Genetic programming for solving the 8-puzzle Mar. 7 Part I:
   Due at 23:59:59 Mar. 15
Part II:
    Due at 08:00:00 April 6
Project 3 Feedback
4. Parametric modeling versus clustering on two data sets:
1) abalones and 2) echocardiograms
Apr. 6 Apr. 27 Project 4 Feedback
5. Project Poster

(Hints on how to prepare a poster)

Apr. 25 7:15PM - 9:15PM May 4  


Grading System

Projects 1 through 4 count 100 points each.
Project 5 (poster) counts 50 points.
The extra credit points (from the in-class design projects) are added to the total.
Your overall grade will be based on the percentage of 450 points that you earn.



General Stuff of Importance

Collaboration vs. Cheating

  1. It is permissable to talk to other students about your strategy for solving the projects. However, any code and any written material you submit must be written exclusively by you or provided by Professor Parker. Note that the word "exclusively" means that you may not use code written by anyone else, including but not limited to former or current students, or various sources off the internet. Failure to follow this guideline is considered cheating.

  2. It is not permissable to give code or written material that solves or partially solves a project assignment to another student. Doing so is considered cheating. If you leave your directories or files publicly readable, we will consider that to be evidence that you have voluntarily given your code or written material to other students. Therefore you should read protect all directories and files associated with this course. If you're not sure how you do this, here's how: Say you have a directory named cs494; then you can read and write protect it using the following command:
    	UNIX> chmod 0700 ~/cs494
    	

  3. Cheating will be dealt with harshly. At best you will receive a 0. At worst you will be referred to the office of student affairs for academic misconduct.

Late Projects

You are allowed one late project without penalty. Notify the instructor (parker@cs.utk.edu) before the project deadline that you plan to turn in your project late. You will have one week from the due date to complete the project. After your first late project all subsequent late projects will receive a grade of zero, with no exceptions. The reason for this policy is that I want you to hand in whatever you have completed with a project and move on to the next one. In the past when I have permitted late projects with a per day penalty, students have fallen hopelessly behind trying to complete projects and have ended up with extremely low project averages.

The one late project policy makes it imperative that you do not procrastinate and start your project a day or two before the deadline. I will not look kindly upon excuses that the computers in the labs crashed a couple hours before the deadline. If you plan your time wisely, you will have your project mostly complete a day before the lab is due.

Commenting Your Code

You will be graded on commenting. Something like 15%. You should comment your code by blocks of comments at the beginning of your files, and before subroutines. Variables should be commented inline. You may also want to comment large blocks of code. You should not comment with a ``running commentary'' to the right of your code, because that is often useless, hard to maintain, and disconcerting. Here's an example of what I would consider a well documented program:
 
#include < stdio.h >

/* sumnsquared.c
   Author:  Ima Smart
   Date:    January 22, 2006

   This program prompts for and reads a value n from standard
   input, and then calculates and prints the sum of squares
   from one to n.  It uses a for loop instead of using the 
   closed form expression.
   */


main()
{
  int n;                   /* The value */

  int sum;                 /* The running sum of squares */
  int i;                   /* An induction variable */

  /* Prompt for and read in a value of n */

  printf("Enter a value n: ");
  fflush(stdout);
  if (scanf("%d", &n) != 1) {
    exit(1);
  }
  
  /* Calculate sum for each value of i from one to n */

  sum = 0;
  for (i = 1; i <= n; i++) sum += (i*i);

  /* Print the final summation */

  printf("%d\n", sum);
}