CS 175, Project in Artificial
Intelligence - Fall 2007
I'm the TA for CS 175 for
Fall 2007, taught by Professor Smyth. If you have any
questions regarding the course, policies, etc, please
see his
website
for the course.
I am basically at my computer all the time, or am close to it.
If you have any questions, please do not hesitate to contact me.
Updates
10/18/2007 : Assignment 3 Grades up on eee
Generally things went well for this assignment. Here is the point breakdown.
Point Distribution :
Three functions @ (6 for correctness, 2 for error checking, 2 for comments) = 30 points.
Two slight function modifications/plot additions @ 5 points each = 10 points.
One write-up @ 10 points.
Total possible : 50 points.
The
interesting thing about this assignment is that most everyone got a
very high score. It seems that you either completely got the
requirements of the assignment (and missed points on minor details), or
simply didn't get it (or didn't turn parts of the assignments in).
One
notable improvement is that there was almost no one with significant
speed issues with their code. This is great, as I have a sense
that everyone is really starting to get comfortable in MATLAB.
Good work on this one.
10/16/2007 : Assignment 2 Test Cases
For
problems that involve doing a large number of operations that can
possibly scale badly in the number of datapoints, I typically test
three things. I usually do two tests that are fairly simple, with
a small number of data points (in this case). The third test I
usually throw in a large number of points (for the KNN example, the 3rd
and 4th part). People who have not properly optimized their code
usually have trouble with this third part, in that they are using lots
of for loops (analogously no vectorization), no pre-allocated arrays,
or other issues that can make your code run terribly slow. So,
when testing your code, you should throw the kitchen sink at it to be
absolutely sure it won't have any issues being run when you turn it in.
For assignment 2, I gave everyone a 10 minute limit. If
your code didn't run in that time (on my machine), I considered it
"failing" that particular test. Note that for running KNN with an
increasing number of topics, optimized code should take about a minute
to finish, max. I figured 10 times this would be relatively
leniant as a requirement.
Here's my test cases for assignment 2. You can expect similar ones in future homeworks.
For
both KNN pieces of code, one test was a simple one with a small number
of simdata1 for the datapoints. The second was more points, still
simdata1. The third was half of simdata2, all mixed up (4000
points total).
10/11/2007 : Grades for Assignment 2 up on eee
Generally
everyone did well. A few people are starting to have issues with
scaling your implementations to larger sets of data - which will be
problematic in future assignments if you don't test for it prior to
submitting.
Breakdown of point distribution for this assignment :
Four functions @ (6 for correctness, 2 for error checking, 2 for comments) = 40 points
One write-up @ 10 points.
Total possible : 50 points.
Problems with knn :
Not returning the correctly sized vector/something completely unrelated
to the classification task at hand. knn computation not being
done properly.
Comments on plot functions :
In general these were all very good. Note that in particular if a
large K and/or a large data set were passed to the knn_errors function,
some people had problems dealing with the larger data sets (i.e., plot
not coming back for 10 minutes or so). You should in the future
test your code for scalability like this, as it is one thing we test
for.
Problems with write-up :
The assignment simply asks for a plot or two and a short discussion.
Many people put no significant discussion of the results, or
didn't include a plot for clarity. For future writing assignments
note that one sentence will not suffice as an analysis.
Also, you lost points if you really didn't at least try to discuss why
the error rate starts increasing as k->inf. All we expected
was some ideas about why this is happening.
10/05/2007 : Grades for Assignment 1 up on eee
Generally
everyone did well, but some people missed some points for not doing
simple error checking. We don't require anything elaborate, just
a few checks to make sure you are getting reasonable input.
Here is the point distribution for the assignment :
6
points per function for correct opetation. 2 for error checking,
and 2 for comments. A total of 10 points for each function was
possible, and 10 points for the writing assignment.
There were a few comments I had, which I've seperated out on a per-function basis :
Euclidean Distance :
Minus comments and error checking, this could have been effectively computed in one line of MATLAB code.
The statement sqrt(sum((v_1_a-v_1_b).^2)) will give you it. Try and use all the functions available to you, as they are optimized nicely.
Maxvalue :
Many
of you wrote complicated loops to calculate this that made your
programs relatively slow. A few MATLAB function calls would have
done the job easier. This will get very important as your
assignments get more complicated. Avoid loops if you can in
MATLAB! Email me for details on this if you'd like.
Nearest Neighbour :
Generally these were good. Some people lost a point for not handling more than one error case.
09/27/2007 : Welcome to the Course
Just a quick welcome to the course - if you have any questions about
assignments please contact me. My contact info and office hours
are listed below.
Contact Information :
I'm best reached by email, nsutter[at]ics[dot]uci[dot]edu.
Office Hours :
I'll
be holding office hours on Mondays from about 4:00-6:00pm in ICS 364 Lab. If you'd like to talk some other time, send
me an email and I'd be happy to schedule an appointment.
Notes on Projects :
Since each project in the course is due on a Tuesday, I'll
try my best
(barring unforseen natural disasters), to have your projects back to
you for the subsequent course (on Thursday). You'll get both
a print out of
your program including score and my comments in class, as well as on eee in the course gradebook. Also, I may
post some statistics about how the class did overall on the project
here.
Info on Grading :
Below are the criteria I'll be keeping in mind when grading projects:
- Correct
formatting of assignment as per specifications.
- Overall
clarity of program. That is, there should be enough
comments so that I can discern what is going on in the program without
trouble. Also, I'm a stickler for proper spacing of code, so
_please_ put some time into spacing your code effectively and
consistently.
- Appropriate
amount of error checking of input. If I pass
innappropriate data to your functions, will they blow up?
Will I get a message about improper input?
- Correct
functionality. See specific project
specifications for functionality requirements.
There are multiple things that one can do for their program to not
adhere to these criteria. Be sure to thouroughally check that
your program is
designed, implemented, and functions to specification to avoid
deduction of points.
If you have any questions regarding these criteria, please contact me for clarification.