Homework and Project Assignments

Homework 1:   Assigned: Jan 16;       Due: Jan 29, 11:30 pm
Homework 1 (PDF). Solution (PDF).

Project 1:          Assigned: Jan 30;       Due: Feb 12, 11:30 pm
• Project 1(PDF)
• Sample input and output files are posted below.
• During re-grading, a student is allowed to make minor changes to source code to reclaim the lost points by making sure both test cases run correctly after the modification. A minor change is equivalent to changing a symbol such as changing "a + b" to "a - b". If you add a new statement "x = 25 * x + y", it would be counted as three minor changes (one multiplication, one addition and one assignment). Every minor change will cost you 5% of the lost score. In other words, if you make more than 19 minor changes during regarding, you will not get back any points. Consider an example to understand how minor change affects your score. Assume that you have received 8 (out of 10) points and after making four minor changes your code works perfectly for both tests. In this case, you will lose 20% of 2 i.e., 0.4. In other words, after the adjustment, your final score would be 9.6.

Homework 2:   Assigned: Feb 13;       Due: Feb 26, 11:30 pm

MIDTERM:   Thursday, March 12 in class from 10:40 am - 12:35 pm.
• SAMPLE MIDTERM has been posted (PDF). Please note that this sample is for reference only. The actual midterm this year is different in terms of duration (120 versus 60 minutes), types of questions (e.g., analytical, quantitative, descriptive or multiple-choice) and coverage of topics.
• An announcement will be posted later in eLearning with information specific to midterm this year.
• Midterm solution is available (midtermSolution.pdf).

Project 2:           Assigned: Mar 19;       Due: Apr 3, 11:30 PM
• Project 2 (PDF)
• Three sample files are posted below. The first one is the sample input file for compression. The second one is for your reference only -- it shows compression in a line-by-line manner. The third one is the expected output of compression which has two parts. First, the compressed patterns are stored in a serial fashion (each line has 32 bits) -- the remaining part of the last line of the compressed pattern is padded with 1's. The second part is the sixteen dictionary entries, separated by the marker xxxx.
• 6 points for the sample input (original.txt).
• Matches exactly correct compressed output (compressed.txt), receives 4 points.
• Matches exactly correct decompressed output (original.txt), receives 2 points.
• Program looks correct but does not run correctly, receives 3 points.