22 August  Assignments can be picked up this Friday and the following Tuesday from 16:30 to 17:00 in SF3207. Anything left unclaimed will be given to the CSSU for distribution once their office reopens in September. 

21 August  Marks for Assignment #4 and the final exam have been posted. 
21 August  The marking scheme and markers' comments for Assignments #3 and #4 have been posted. Stay tuned for the office hour and marks. 
19 August  A solution and marking scheme for the final exam is now available. 
18 August  A partial solution for Assignment #3 has been posted. (It's partial in the sense that the program assumes the graph is connected, but otherwise it fulfills the assignment requirements.) A solution to the final, and marks for Assignment #4 and the final, will be posted later this week. I will also announce an office hour for you to retrieve your Assignment #4. Unclaimed assignments will be sent to the CSSU. 
10 August  The marks page has been updated to include nearly all remarking requests received so far. You can pick up your remarked and unclaimed assignments during office hours on Sunday. 
10 August  I've gotten requests for an additional office hour on Sunday night, so I have booked SF3207 that day from 17:00 to 18:00. Note that the University may be closed then. If you find the outside door to SF locked, please wait outside; I'll send someone down every once in a while to let people in. 
9 August 
The following typos in the notes have been
corrected:

7 August  Because the deadline for submission of course marks to the faculty is coming up soon, please try to submit any outstanding remarking requests before the final exam. 
7 August  Lecture notes and tutorial notes for 31 July have been updated to include the "backflow" fix (which I mentioned in today's lecture) to the maximum flow algorithms. 
7 August 
The following office hours have been scheduled:

4 August  Lecture notes for 7 August have been posted. The recommended reading list has been updated. The marks page has also been updated to include grades for Assignment #3. The marking scheme and sample solution will be posted later this week. 
2 August 
Tutorial notes for 7 August have been posted. There will be
two different tutorials given this week:

1 August 
Because Monday is a university holiday, office hours for
Assignment #4 have been rescheduled:

30 July  For those interested, I have posted a larger city map which you can use as input to your simulator. You can also see a graphical representation of the map. 
30 July 

30 July  A final exam study guide is now available. 
30 July  Tutorial notes for 31 July have been posted. 
30 July  Lecture notes for 31 July have been posted, and reading list has been updated. 
28 July 
Some people got errors when compiling the starter code on certain CDF machines. I've added using namespace std; to the files trafficsim.cpp, use_queues.cpp, and find_path.cpp, and changed #include <limits.h> to #include <climits> in shortest_path.cpp. This should (hopefully) fix most of the errors. Please either download these files again, or make the corresponding changes to your versions. Some compilers will still complain about the use of random() because it's nonstandard or conflicts with some other library. If you still have problems compiling, try doing your work on another CDF machine. I've tested the code on eddie.cdf and it works there. If you are in the CDF lab, you can connect to eddie by typing ssh eddie. If you are working from home, then tell your ssh client to connect to eddie.cdf.toronto.edu. Please do not contact me if you are having problems compiling the simulator on your home machine. Since the simulator requires the use of nonstandard functions such as random(), there's no one fix that works for every compiler, and moreover any fix that does work might prevent the program from compiling on CDF. 
25 July  A sample solution for Assignment #2 has been posted. Marking scheme and commentary will be added once the TAs send them. (In the meantime, check the newsgroup.) 
24 July  An introduction to makefiles has been posted on the lectures page. Assignment #4 will be posted later tonight. 
24 July  Lecture notes for 24 July have been posted, and reading list has been updated. 
24 July  The Faculty has posted its final exam schedule for this term. If you have any conflicts with other courses, please contact the Faculty directly, as I have no authority to change the date. 
22 July  The marks page has been updated to include all Assignment #2 marks. Also, I did some tweaking for your projected grades; you can now see the lowest grade you could possibly get ("Min"), the highest grade you could possibly get ("Max"), and the mark you can expect to get if you continue performing as well as you have ("Avg"). 
20 July 
An extra office hour has been scheduled:

20 July  Several students have written to me indicating that the deadline for Assignment #3 conflicts with midterms for other courses. Accordingly, the deadline is hereby extended to Friday, 26 July at 15:00. This extension applies to everyone, but if you are not writing a midterm this week, please try to hand in your assignment on Wednesday if possible. Besides being easier on the markers, this will increase the amount of time you have to work on Assignment #4 (for which there is no extension). 
17 July  The marks page has been updated to include all A0 and midterm remarking requests received to date. Also, solutions to the midterm questions not discussed in class have been posted on the course newsgroup. 
17 July  The marks page has been updated to include the midterm and some of the Assignment #2s (the markers are still working, so don't panic if your Assignment #2 mark isn't there yet). Midterm marks have been adjusted by marking the midterm out of 30 points instead of 35 points. I have also included a tentative "final" mark by adding the A0, Assignment #1, and midterm marks together, and scaling it to a mark out of 100. This represents roughly the mark you can expect to get in this class if you continue performing as you have. Of course, it could be much higher if you do well on the remaining assignments and the final. 
17 July  Lecture notes for 17 July have been posted. 
16 July  Recommended reading for 17 and 24 July has been posted. 
16 July 
The office hour schedule has been revised slightly:

14 July 
There is a typo in the 10 July lecture notes. The complete Euler circuit on page 3 reads C, E, A, C, D, A, E, D, F, Cwhen it should in fact be C, E, A, C, D, A, B, D, F, C.Thanks to Mazhar Khan for pointing out the typo. Also, I fixed a small typo in the C++ tutorial notes: on page 7, y++ should have been ++y (in order to agree with the text that follows). Instead of finishing up the notes on C++, this Wednesday's tutorial will cover the implementation of adjacency matrices and possibly Dijkstra's algorithm. 
14 July 

8 July  Assignment #3 has been posted. 
6 July  Lecture notes and recommended reading for 10 July have been posted. 
4 July 
Extra office hours have been scheduled:

1 July  Lecture notes for 3 July have been posted. 
30 June  Recommended reading for 3 July has been posted. 
30 June 
The following office hours have been arranged for help with
Assignment #2:

26 June  Assignment #2 has been posted. Also, I noticed after today's lecture that I miswrote on the board the initialization for the loop which computes the min(...) expression. I wrote for (k=0; ...) when it should have been for (k=i+1; ...). (The online lecture notes do not contain this error.) 
24 June  Marking scheme and grades for Assignment #1 have been posted. 
22 June  Tutorial notes up to 17 July have been posted. 
22 June  Lecture notes for 26 June have been posted. Also, fixed minor misprints in lecture notes for 19 June (return value should have read return max_val) and 29 May (there was one too many zeroes in the subtraction example on page 5). 
22 June  Solutions for Assignment #1 have been posted. Marking scheme to follow. 
21 June 
The following office hours have been scheduled:

19 June  Lecture notes for 19 June have been posted. 
18 June  Marks for A0 have been posted. 
18 June  Tutorial notes and recommended reading list for 19 June have been posted. 
17 June  The marking scheme for A0 has been posted on the course newsgroup and on the Assignments page. Unfortunately, the marker was not able to complete the marking on schedule, so stay tuned to the newsgroup for info on where to pick up your assignment tomorrow. 
17 June  An extra office hour has been scheduled for today from 15:00 to 16:00 in PT 378. Subject to demand, the office hour may be extended until 17:00. Assignments will not be handed back during this office hour; the earliest they will be available is today's regularly scheduled office hour at 19:00. 
16 June  A midterm study guide is now available. 
14 June  Sample solutions for Assignment #0 have been posted on the Assignments page. The marker will soon post the marking scheme on the course newsgroup; I'll post a copy here as soon as he does so. A0 will be returned during office hours on Monday and tutorial on Wednesday. Also, lecture notes for 12 June have been revised to fix a minor mistake (exercise 7 was impossible if the resulting tree was to remain binary). 
11 June  An extra office hour has been scheduled for Wednesday, 12 June from 16:30 to 17:30 in PT 266. (The Pratt Building is directly south of SF.) 
11 June  Tutorial notes and recommended reading for 12 June have been posted. I'd also like to remind everyone to attend their assigned tutorial section. 
10 June  Fixed misprint on point #2 of the IEEE handout. (Exponent should have been expressed in terms of k.) The printed version to be handed out in class will be correct. 
9 June 
In preparing the course midterm this weekend, I became rather confused when the numbers I was using for the question on IEEE floating point weren't quite adding up the way I expected them to. It's then that I noticed that the lecture notes on IEEE floating point representation contained an error. I did some more checking, and interestingly enough, most of the lecture notes for previous offerings of this course (from which I plan my lectures) contained the same error. I believe it may stem from the following passage in the course readings: Normalization is equivalent to selecting the exponent to ensure that the mantissa [significand] lies in the following normalized range: 0.5 <= normalized mantissa < 1. While this statement may be correct for some of the nonstandard floatingpoint representations, it is not correct for IEEE. In IEEE, a normalized significand is always in the range 1 <= normalized significand < 2. Put more succinctly, IEEE considers a normalized binary number to be in the form 1.xxxxxxxxx, not 0.xxxxxxxx as I had told you before. Therefore when we speak of removing the leading 1 before storing the number, we are actually subtracting the number 1 from the significand, so the binary number we store in the significand field, m, is a fraction in the range 0 <= m < 1. When the exponent field is allbits 0, the significand is not normalized, and there is no leading 1. Instead, we interpret the exponent to be 1(2^{k1}1). (The significand field is still interpreted as a fraction from 0 to 1; we just don't add any leading 1.) Note that this revelation will affect you you do question 4 on the assignment. In consideration for those who have already done question 4, I will accept as correct answers that are done based on the old information, but for your own benefit I would urge you to try doing it over the proper way. You will be tested on IEEEstyle representations on the midterm and final exams. I have revised the lecture notes for 29 May to account for this correction, and I have also prepared a handout on the IEEE format which clearly summarizes exactly the way it is supposed to work and how to perform conversions between fixed and floatingpoint representations. Both are available on the Lectures section of the course website, and I will print out some copies of the handout for distribution in class. I would like to sincerely apologize for this error and for any confusion this may have caused. 
8 June 
Office hours have been set for the following times:

7 June  Sample output for Assignment #1 has been posted. Note that this test run uses an undisclosed function f() and different user input than what is specified on the assignment. It's just there to give you an idea of what your program should do once it's working properly. 
7 June  In the starter code for Assignment #1, there was a newline missing in the printf() statements in the numerical method functions. I have updated the online copy. If you have already downloaded the code, please change printf("%9d\t%.12f",...); to printf("%9d\t%.12f\n",...); 
5 June  Assignment #1 has been posted. 
2 June  The A0 FAQ has been updated. 
2 June  Tutorial notes for 5 June have been posted. Fixed typo in lecture notes for 5 June. 
1 June  Lecture notes for 5 June have been posted. 
1 June  Recommended reading for lectures and tutorials has been added to the Lectures section. 
29 May  Fixed typo on 29 May tutorial notes. 
28 May 
Office hours have been set for the following times:

27 May  The CDF account list has been updated. 
27 May  Updated tutorial notes for 22 May (fixed a small bug in reverse() — see newsgroup for the complete explanation). 
26 May  The room for Yuan An's tutorial, LM157, has been changed to IN222 for the 29 May tutorial only. After this date, the tutorial will continue to be held in LM157. 
26 May  Lecture notes for 29 May have been posted. 
26 May  An observant student recently brought my attention to a small error on the A0 handout. In the polynomial problem, the line "the leading term does not have a + or " should be changed to "the leading term does not have a +" Obviously we need to use a negative sign if the leading coefficient is indeed negative. I've made the change on the online copy, though it's easier for you just to take out a pen and cross out the two words on your printed version. 
26 May  Tutorial notes for 29 May have been posted. 
24 May  Added a FAQ for A0. Please check it before posting to the newsgroup. 
22 May  Revised lecture notes (including reading assignment) from 22 May have been posted. Also the handout for A0 incorrectly specified the due date as 29 May; it is in fact 5 June. This has been fixed on the online copy. 
22 May  The CDF account list has been updated. 
21 May  Lecture notes for 22 May have been posted. For those who want an early start, Assignment #0 will be posted at midnight. (The printed handout will also be distributed in class.) 
20 May  Tutorial notes for 22 May have been posted. 
19 May  The list of CDF accounts has been posted. If your name is not on the list, you're probably not properly enrolled in the course, and you need to contact me and/or your registrar immediately. 
15 May  Lecture notes and exercise solutions for 15 May have been posted. (Don't look at the solutions until you've tried the exercises yourself.) 
13 May  There is an error on the course info sheet (which I have just fixed). The lecture room was listed as LM157, but it is in fact MP102. Make sure you come to the correct room on the first day of classes. 
7 May  I will be away from 30 May to 4 June, and also the week of 7 July (exact dates TBA). I will therefore be unable to hold office hours then. Plan ahead! I will try to check my email and the course newsgroup daily during these times, and may schedule TA office hours if necessary. 