CSC270 — Announcements

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:
  • 31 July lecture, page 1: "h = (b-a)/n" should read "h = (b-a)/(n-1)".
  • 31 July tutorial, page 5, second paragraph: swap "c" and "e" in the first three sentences.
  • 31 July tutorial, page 5, fourth paragraph: "densite" should read "density".
  • 10 July lecture, page 3: "higher weight" should read "lesser weight".
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:
  • Friday, 9 August, 17:00–18:00 in SF3207
  • Saturday, 10 August, 17:00–18:00 in SF3207
These office hours may be extended, or additional hours scheduled, subject to demand. If you aren't able to make it at the above times, please send me an e-mail or post a newsgroup message indicating what times you are available.
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:
  • In MP102, Tianhan will be covering dynamic programming and random number generation.
  • In MP118, Frank will be covering dynamic programming and Dijkstra's algorithm.
You may attend either tutorial, depending on the topic you would most like to see reviewed. Note that there will be no tutorial in LM157 or MP134 this week.
1 August Because Monday is a university holiday, office hours for Assignment #4 have been rescheduled:
  • Friday, 2 August, 15:00–16:00 in SF3207, with Frank
  • Tuesday, 6 August, 17:00–18:00 in PT376, with Frank
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 Office hours for Assignment #4 have been scheduled:
  • Friday, 2 August, 15:00–15:40 in SF3207, with Frank
  • Monday, 5 August, 15:00–15:40 in SF3207, with Frank
  • Monday, 5 August, 19:00–19:40 in SF3207, with Frank
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 non-standard 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 non-standard 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:
  • Wednesday, 24 July, 16:00–17:00 in SF3207, with Niloofar
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:
  • Thursday, 18 July, 18:00–18:30 in SF3207, with Niloofar
  • Friday, 19 July, 12:00–13:00 in SF3207, with Yuan
  • Monday, 22 July, 18:00–19:00 in SF3207, with Yuan
  • Tuesday, 23 July, 12:00–13:00 in SF3207, with Niloofar
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, C
when 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 Office hours have been scheduled:
  • Thursday, 18 July, 18:00–18:30 in SF3207, with Niloofar
  • Friday, 19 July, 12:00–13:00 in SF3207, with Yuan
  • Monday, 22 July, 18:00–18:30 in SF3207, with Niloofar
  • Tuesday, 23 July, 12:00–13:00 in SF3207, with Yuan
If these times are inconvenient for you, write me an e-mail or post a newsgroup message indicating what days and times are best for you, and additional time may be scheduled.
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:
  • Friday, 5 July, 11:00–11:30 in SF3207, with me
  • Tuesday, 9 July, 18:00–18:30 in SF3207, with Niloofar
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:
  • Wednesday, 3 July, 12:00–12:30 in SF3207, with Tianhan
  • Thursday, 4 July, 18:00–18:30 in SF3207, with Niloofar
  • Friday, 5 July, 12:00–12:30 in SF3207, with Tianhan
  • Monday, 8 July, 18:00–18:30 in SF3207, with Niloofar
If all of these times are inconvenient for you, additional office hours can be arranged for this week. Note that, pursuant to the announcement of 7 May, I will be away at a conference the entire week of 7 July. I will attempt to check my e-mail daily while I am away, and the newsgroup will be monitored daily by the TAs. The class on 10 July will proceed as scheduled with a guest lecturer.
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:
  • Saturday, 22 June 16:30–17:30 in SF3207
  • Tuesday, 25 June 16:00–17:00 in PT378
I have most of the unclaimed Assignments #0, so you can pick them up during office hours.
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 non-standard floating-point 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 all-bits 0, the significand is not normalized, and there is no leading 1. Instead, we interpret the exponent to be 1-(2k-1-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 IEEE-style 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 floating-point 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:
  • Friday, 14 June, 13:30–14:30 in SF3207, with Tianhan
  • Monday, 17 June, 19:00–20:00 in SF3207, with Yuan
If you have any major inconvenience with both of these times, please post a message to the newsgroup indicating your availability and I will schedule an additional hour.
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:
  • Wednesday, 29 May, 17:30–18:00 in SF3207, with me
  • Thursday, 30 May, 15:00–16:00 in SF3207, with TA Iluju Kiringa
  • Monday, 3 June, 18:00–19:00 in SF3207, with TA Iluju Kiringa
If you have any major inconvenience with all of these times, please post a message to the newsgroup indicating your availability. Remember that I will be away from 30 May to 4 June.
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 MayLecture notes and exercise solutions for 15 May have been posted. (Don't look at the solutions until you've tried the exercises yourself.)
13 MayThere 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 MayI 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 e-mail and the course newsgroup daily during these times, and may schedule TA office hours if necessary.

Tristan Miller
Last modified: Thu Aug 22 20:56:59 EDT 2002