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 May 12, due May 27 (11:59 pm)
- A2: out May 28, due
June 12 June 15(11:59
pm)
- A3: out June 23, due July 8 (11:59 pm)
- A4: out July 9, due July 24 (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 May 27
(11:59 pm)
- Click here for the assignment
- Click here for the test
problems. The problems are taken from www.websudoku.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.
- Milad Khaki (mkhaki [at] uwaterloo [dot] ca) is the TA in
charge of Assignment 1.
He will hold special office hours on Friday May 22,
2-4pm in the AI lab (DC2306C).
Assignment 2:
due June 12
June 15 (11:59
pm)
- Click here for the assignment.
- Hadi Hosseini (h5hossei [at] uwaterloo [dot] ca) and Shengying
Pan (s5pan [at] uwaterloo [dot] ca) are the TAs in charge of
Assignment 2. They
will hold special office hours on Tuesday June 9, 10am-noon in
the AI lab (DC2306C).
Assignment 3:
due July 8 (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.mprovides
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.
- Daniel Patrick Recoskie (dprecosk [at] uwaterloo [dot] ca) and
Milad Khaki (mkhaki [at] uwaterloo [dot] ca) are the TAs in
charge of Assignment 3.
They will hold special office hours on Friday July 3,
11:30am-1:30pm in the AI lab (DC2306C).
Assignment 4: due July 24
(11:59 pm)
- Assignment handout
- Datasets: trainData.csv, trainLabels.csv, testData.csv, testLabels.csv
- This data is a modified version of the Optical Recognition of Handwritten Digits
Dataset from
the UCI repository. It contains preprocessed black and
white images of the digits 5 and 6. Each attribute
indicates how many pixels are black in a patch of 4 x 4
pixels.
- Format: there is one row per image and one column per
attribute. The class labels are 5 and 6.
- In Matlab, you can easily load a file by typing "load
filename.csv"
- Wei-Shou Wilson Hsu (wwhsu [at] uwaterloo [dot] ca) and
Shengying Pan (s5pan [at] uwaterloo [dot] ca) are the TAs in
charge of Assignment 4. They will hold special office hours
on Wednesday July 22, 3-5pm in the AI lab (DC2306C).