CS486/686 - Assignments
There will be four assignments, each worth 10% of the final mark
(7% for CS686). Each assignment will have a theoretical part and a
programming part. Assignments are done individually (i.e.,
no team). You are free to program in the language of your
choice, however Python and Matlab are recommended since they
provide a convenient high-level programming environment for matrix
operations. If you decide to program in Matlab, the IST
group maintains a nice set of online references for Matlab
including a tutorial.
The approximate out and
due dates are:
- A1: out Jan 14, due Jan 29 (11:59 pm)
- A2: out Jan 30, due Feb 24 (11:59 pm)
- A3:
out Feb 27, due Mar 17 (11:59 pm) out
March 4, due Mar 19 (11:59 pm)
- A4:
out Mar 18, due Apr 2 (11:59 pm) out Mar
20, due Apr 4 (11:59 pm)
On the due
date of an assignment, the work done to date should be submitted
electronically on the LEARN website; further material may be
submitted for half credit within 24 hours. Assignments
submitted more than 24 hours late will not be marked.
Assignment 1: due January 29 (11:59 pm)
- Click here for the assignment
- Click here for the test
problems. The problems are taken from www.sebsudoku.com
and are labeled "easy", "medium", "hard" and "evil" to reflect
the category that each problem is taken from. Note that it
is not clear how those labels are assigned and therefore they
may not reflect the level of difficulty encountered by search
algorithms.
- Submit a pdf file or zip file that contains your code and
answers to each question in the dropbox for assignment 1 on LEARN. If you are
not familiar with LEARN follow the instructions posted here.
- Abdullah Rashwan (arashwan [at] uwaterloo [dot] ca) is the TA
in charge of Assignment 1. He will hold special office
hours on January 27, 1-2:30pm in the AI lab (DC2306C).
Assignment 2: due February 24 (11:59 pm)
- Click here for the assignment.
- Abdullah Rashwan (arashwan [at] uwaterloo [dot] ca) is the TA
in charge of Assignment 2. He will hold special office
hours on February 24, 12-1:30pm in the AI lab (DC2306C).
Assignment 3: due March 19
(11:59 pm)
- Click here for the assignment
- Train and test your algorithms with a subset of the 20
newsgroup dataset. More precisely, you will use the
documents posted on the alt.atheism and comp.graphics
newsgroup. To save you the trouble of writing a parser for
arbitrary text, I converted the relevant documents to a simple
encoding (files below). Each line of the files trainData.txt
and testData.txt
are formatted "docId wordId" which indicates
that word wordId is present in document docId.
The files trainLabel.txt and testLabel.txt
indicate the label/category (1=alt.atheism or 2=comp.graphics)
for each document (docId = line#). The file
words.txt
indicates which word corresponds to each wordId
(denoted by the line#). If you are using Matlab, the file
loadScript.m
provides a simple script to load the files into appropriate
matrices. At the Matlab prompt, just type "loadScript" to
execute the script. Feel free to use any other language
and to build your own parser if you prefer.
- Abdullah Rashwan (arashwan [at] uwaterloo [dot] ca) is the TA
in charge of Assignment 3.
Assignment 4: due April 4
(11:59 pm)
- Click here for the assignment.
- Click here for a description
of the transition and reward models in Matlab.
- Matlab tutorial designed for assignment 4 if you choose to do
the assignment in Matlab (slides: one per page, two per page)
- Daniel Recoskie (dprecosk [at] uwaterloo [dot] ca) is
the TA in charge of Assignment 4. He will hold special
office hours on March 31, 3:30-5pm in the AI lab (DC2306C).