CSC 209H: Announcements


Tuesday, 10 January 2005

Unofficial grades available
I've posted the unofficial course grades to the online marks database. I don't know when official grades will appear on ROSI, but hopefully it won't be too long.

I hope you enjoyed the course and learned a lot. Thank you to everyone for all the effort you put into the course, and I wish you all the best in your future!


Monday, 9 January 2005

Final exam marks available
I've finally been able to post the final exam marks. If you want to know why you got the mark you did, look at the sample solutions on the Exams page (this should explain the marks for most students). The class average on the final (not that it means much) was 70.
A word of caution: computing the raw total is only an approximation of your final grade, since it does not include any adjustments. I'll let you know unofficially what your grade is once I have them.


Sunday, 8 January 2005

A4 marks available
Assignment 4 marks are now available. Your Marks.txt file has been added to your repository, and the online marks database has been updated. Some students have a TestReport.txt, some don't. Due to the nature of this assignment, the autotesting didn't always work. Our testing was composed of compiling your programs using a port we specified, testing your client with our server, testing our client with your server, and the majority of the testing involved your client with your server.

If there is a problem with any of your marks, you must let me know immediately! Final exam marks should also be posted soon. (edit: and A3 bonus marks in the next update too)


Friday, 30 December 2005

A3 marks available
Assignment 3 marks are now available. Your Marks.txt and TestReport.txt files have been added to your repository, and the online marks database has been updated. If there is a problem with your marks, please let me know as soon as possible.

Assignment 4 and the final exam marks, and unofficial course grades should be available the first weekend in January.


Wednesday, 21 December 2005

Happy Holidays
Well, the term is finally over, so you can all take a well-deserved break. The University is shut down now until January, and though we're madly marking your final exams, final marks won't be available until then. As soon as they're ready, I'll post the unofficial marks to the course website. Official grades will be posted to ROSI sometime later in January. In the meantime, please peruse the sample solutions to the final -- they're posted on the exams page.

I hope everyone had fun in the course, and I wish everyone well as you move on to greater things. Now as an end-of-term treat, here's to carolling in the shell. :)

MERRY CHRISTMAS
    better !pout !cry
    better watchout
    lpr why
    santa claus <north pole >town

    cat /etc/passwd >list
    ncheck list
    ncheck list
    cat list | grep naughty >nogiftlist
    cat list | grep nice >giftlist
    santa claus <north pole >town

    who | grep sleeping
    who | grep awake
    who | grep bad || good
    for (goodness sake) {
                         be good
                        }


Sunday, 18 December 2005

A3 and A4 solutions posted
Sample solutions for assignments 3 and 4 have been posted to the Assignments page.


Thursday, 15 December 2005

Final review session
I'll hold a final review session this Monday, December 19 from 5pm to 7pm in BA 3234. Bring your questions, from the course or from old exams. I am planning to run it more as an office hour Q&A, but we could go through the course topics in an orderly fashion if turnout is high.


Sunday, 11 December 2005

Office hours this week
I'll be changing some of the office hours due to it being exam week. This week, my office hours are:
Tuesday, 12-1pm in BA 3234 (changed time)
Wednesday, 1-2pm in BA 3234 (normal time)
or by appointment. Bring any questions related to the course, including old exam questions.
Next week I'll hold a review session on Monday (time and location to be announced).


Wednesday, 7 December 2005

Office hours this week
One of the TAs will be filling in for me in Wednesday's office hour.
We've also scheduled an extra office hour for Thursday, 2:30-3:30, in BA 3234. Bring any and all of your A4 questions.


Saturday, 3 December 2005

Assignment 4 announcements
Today I have a collection of assignment 4-related announcements.

Finally, I've decided to simplify the assignment by removing the ROSHAMBO and /play requirements. This will allow you to concentrate on getting your client/server communication working robustly.

So, to restate, we will not be testing or evaluating your ROSHAMBO or /play commands!


Thursday, 1 December 2005

Kill your left-over processes
I was looking around the CDF servers, trying to find out why the load averages were so high. I discovered hundreds of processes left behind (some running, some blocked) named rps1 or rps2.
If you left any rps processes behind when you logged off, please come back and kill them, for the benefit of other users (and yourself). Do a ps aux | grep yourlogin to get a listing of all processes you own on the machine.


Wednesday, 30 November 2005

A2 marks available
Your assignment 2 has been marked. Your Marks.txt and TestReport.txt files have been added to your repository, and the online marks database has been updated. If there's a problem with your marks, please let me know.

Problems with email
There was a serious problem with the email servers the past few days, and messages may have been lost. The problem has been corrected, but if you don't get a response from me, either post the question to the newsgroup or resend it to me.

Warning regarding final exam aids
I've been asked to pass along this warning:
The Faculty of Arts and Science has become very strict about unauthorized aids at final exams. This is a response to some innovative cheaters. The consequences have been significant for students who have been caught with unauthorized aids, whether or not they intended to use them to cheat.
For example, simply having a calculator or cell phone on your desk may cause you to have to explain yourself to the dean. I have seen this happen in the past, and since the final exams are run by the Faculty, instructors have no control over what happens. Be careful, and listen to the instructions carefully! If in doubt, ask before the exam begins.


Tuesday, 29 November 2005

RPSpro Tournament to be held
The tournament for part 3 is to be held at 12:30 this Thursday (right before class), in the regular lecture room. If you still want to enter (for half bonus marks), submit by 10pm Wednesday night. Your program must beat one of my programs to qualify (and though my programs are really simple, I'm not saying how they play).


Monday, 28 November 2005

Final exam "cheat" sheet posted
I've posted the "cheat" sheet for the final exam on the exams page. This sheet will be provided with the final exam, so you do not need to bring it with you. You may also bring your own "cheat sheet", but size is limited to one letter-sized handwritten sheet (both sides).


Thursday, 24 November 2005

Assignment 4 posted
Assignment 4 is posted in the usual place.


Wednesday, 23 November 2005

Sockets notes updated
I've updated the sockets lecture notes to include a few new slides that I added after the initial posting.


Saturday, 19 November 2005

Grace days FAQ
Q: Can I use grace days for assignment 3, now that it was extended?
A: Yes. The grace days will still extend your hand-in date like normal.

Q: Do I get bonus marks if I have grace days left over at the end of the course?
A: No. Grace days are meant to be used if you have a last-minute emergency that prevents you from finishing your assignment on time. If you don't need to use your grace days, then good for you!

Q: Can I use multiple grace days for assignment 4?
A: Yes. Thanks to the exam being late in the exam period, I don't need to rush to get the assignment marked, so I can allow multiple grace days to be used. Be sure to submit your grace days form before the due date, as we'll start marking assignments as soon as possible (and if we mark your assignment before you submit the form, we won't know you didn't finish it yet).


Thursday, 17 November 2005

Assignment 3 extension granted
Due to popular demand, but mostly due to lots of good questions and good attendance in class today, I've agreed to extend the due date for Assignment 3 by two days. Assignment 3 is now due Saturday, November 19 at 10:00pm.

First draft of Assignment 3 part 3 posted
The first details for the optional part 3 component are now posted on the assignments page. Additional details and hints will be added in the coming days.


Tuesday, 15 November 2005

Assignment 3 clarifications and hints
EOF (end of file) is a state of a read file descriptor, not a string being sent over the pipes. When you've opened a file descriptor for reading, and you've already read everything in the file (where file may mean pipe), the read functions (read, scanf, fgets, etc.) will return something indicating that you've reached the end of the file. To end a file coming from the keyboard, press Ctrl+D at the start of a new line. To end a file that's actually a pipe, close all the write ends of the pipe.

You will need a separate child process for each player instance in the tournament. So, if you specify 5 competitors, you will have one roshambo parent process and 5 children processes. You (the roshambo parent) will need to interact with each of the children processes, so you will need 10 pipes to do it (5 pipes for parent writing to child, and 5 pipes for child writing to parent).

Further hints are constantly being posted to the course newsgroup, so make sure you take a look there if you encounter problems.


Tuesday, 8 November 2005

Assignment 3 sample programs
I have posted an sample executable in the /u/csc209h/fall/pub/a3 directory on CDF. The rps0 program is a random player and prints lots of debugging output to stderr, and might help testing your assignment. A sample umpire program is named roshambo.sample in the same directory.
To eliminate the debugging ouput from the rps0 program, redirect the stderr to /dev/null. For example,
$ ./roshambo.sample rps0 rps0 2> /dev/null

If you notice any bugs or poor error handling in the sample programs, please let me know and I'll fix it.

Remember: The programs you submit should not print the debugging / diagnostic information to stderr like the sample programs do. I've added these statements to the sample only to help you get your programs working correctly!

History's Worst Software Bugs
Wired has a new article on History's Worst Software Bugs. Most of these bugs are problems we might encounter or discuss in this class. Several of them are simply buffer overflows, which I'm sure everyone has accidentally done at least once already. Take comfort in that though buffer overflows might cost you some marks, you probably won't end up killing anyone.


Friday, 4 November 2005

Assignment 3 available
Assignment 3 has been posted here. Almost everything you need to know to complete the assignment has already been covered in class, so get started now! Dealing with processes and interprocess communication can be tricky, so make sure you start as early as possible.


Wednesday, 2 November 2005

Midterm sample solutions available
Midterm test solutions are available as PDF or postscript. The midterms will be returned in class on Thursday.


Tuesday, 1 November 2005

Online marks available: A1 and midterm
The class marks database is now online here. Make sure you change your password.

Midterm marks
The midterm has been marked, and marks posted online. The tests will be returned this week. Due to the fire alarm at the start of the test, and the added stress and shorter writing time resulting, I have adjusted the marks by adding 4 points to everyone's score (the MTadj mark). It was an unfortunate event, but I think this is the fairest way to deal with it. If your resulting score is above 100%, enjoy your bonus!

Office hours cancelled today and tomorrow
This week my regular office hours are cancelled. If you need an appointment to talk with me this week, please email me.


Sunday, 30 October 2005

Assignment 2 solution posted
Sample solutions for assignment 2 have been posted to the Assignments page.

Midterm cheat sheet
The "cheat sheet" I will be providing with the midterm is available posted here as a PDF or PS.


Friday, 28 October 2005

Midterm test information
The midterm will take place Tuesday, November 1 during regular class time in the regular room (BA 1180). The focus will be on the concepts covered so far in the course. Specific syntax details that can easily be looked up on a man page or errors that would be caught by the compiler will not be important, and such minor errors will not be penalized.

I will provide a "cheat sheet" that will list any C library function declarations you might need to use, switches for test, etc. This will resemble the cheat sheet provided in the Winter 2005 exam. Note that processes will not on the exam this term.


Tuesday, 25 October 2005

Extra pre-midterm office hours
I've scheduled extra office hours for this Monday, October 31, from 2:30 to 4:30 in BA 3234. Bring questions from old terms, textbooks, or topics that you're having trouble with. In lieu, my office hours on November 1 and November 2 are cancelled, so I can get the exams marked as quickly as possible.

Assignment 1 marked
Two files have been added to your assignment 1 CVS repository. TestReport.txt contains our tests, the output of your scripts for each of our tests, and the expected output, if your output differed. Marks.txt contains a copy of the marking scheme, breakdown of your marks on each point, and comments from the grader. The files we used for the part 2 testing are available in the /u/csc209h/fall/pub/tests/a1 directory on CDF.

If you think an error has occurred in the marking of your assignment, please fill out an online Remark Request form, which will be available shortly in the forms section of the website.

The class average for the assignment was 20.3 out of 30. Many people neglected to read the specs closely, and named their .macros file incorrectly or stored it in the wrong location. Be sure to read and follow the assignment specs carefully!


Monday, 24 October 2005

Final exam schedule posted
The Faculty of Arts and Science has posted the final exam schedule. I'm not allowed to tell you when or where the exam is just in case I make a mistake, so you'll have to look it up yourself.


Friday, 21 October 2005

Sample C file from tutorial posted
The printdirs.c example from tutorial has been posted to the Assignments page (since it may be useful in writing your assignment).


Tuesday, 18 October 2005

newerthan clarifications
Some clarifications have been added for newerthan. Only one of -u or -c can be specified, and clarifies that only one of the stat time fields should be checked (depending on options specified). Also, if -a is not specified, don't print hidden files.


Thursday, 13 October 2005

newerthan example correction
There was an error in the example for newerthan. I included a directory (specifically .) when the specification specifically asks for only regular files. The example has been corrected to properly omit directory names.

CDF default dictionary fixed
The CDF administrators have indeed fixed the default dictionaries. You can now choose from Canadian, American and British English word lists in the /usr/share/dict directory.


Tuesday, 11 October 2005

Assignment 2 posted
Assignment 2 is now available from the usual spot.


Friday, 7 October 2005

Previous weeks notes reposted
I've reposted all previous lecture notes in 4-slides-per-page and 1-per-page formats.

Using grace days
Also, if you wish to use (or change your use) of assignment grace days, use the online form. We'll use the latest form submission to determine how many days you want to use (so if you want to change from 1 to 2, just resubmit the form saying 2 days).


Wednesday, 5 October 2005

Grace days form is available
If you wish to use your grace days for an assignment, please complete the online form now available here.

Regular expressions/grep tutorial added
In the Online Tutorials section, I've added a link to a grep tutorial I found on the Internet. Some of you might find it useful.


Tuesday, 4 October 2005

Assignment 1 example error

An error in the part 1 example has been brought to my attention. It should read:

seawolf$ macro -l countusers
macro "countusers" is undefined

The -l was accidentally omitted. The assignment spec has been corrected.


Friday, 30 Sept 2005

Another assignment correction
There are actually two system include directories you should look in: /usr/include and /usr/include/linux. If a relative path is specified in a #include directive (for example, #include <sys/cdefs.h>), you should search relative to your search directories.

[Reasons for the second system include directory: Most Unix-like systems behave in a very similar way, but run on different kernels and hardware. We have a common set of library functions to make systems look almost identical for programming, but the details will vary. The generic header files are placed in the top level, and system details are placed in separate directories, which are included depending on which machine we're compiling on. On CDF, we run Linux, hence we should also consider the /usr/include/linux directory. There are also additional directories for files required by different compilers and different programming languages, but for simplicity, we'll ignore these other directories for the assignment.]

Please also note that included files do not need to have a .h extension. They may have any extension (commonly, we may want to include .c files too) or even no extension at all (most C++ headers omit the .h extension).

The assignment spec has been revised to reflect these clarifications.


Friday, 30 Sept 2005

Typo in assignment example
Due to the way HTML tags work and my poor job of proofreading, an error crept into the assignment 1 specs with regard to the helloworld.c example. I've corrected the HTML, now properly encoding the < and > characters (thus not misleading your browser into thinking this was some strange looking HTML tag).

The helloworld.c example should have read:

#include <stdio.h>

int main()
{
  printf("Hello world!\n");
  return 0;
}

There was also a small (but obvious) error in the sample output (I used a different filename to generate the example, but forgot to go back and update the output).

My apologies for any confusion. The assignment specification has now been corrected.


Thursday, 29 Sept 2005

General questions and the newsgroup
Please try to post general questions to the course newsgroup, ut.cdf.csc209h. Everyone in the class then benefits from the answer, and you'll probably get it answered sooner too (and maybe even by one of your classmates).

If you haven't used network news before, there's some information on the CDF website here.


Tuesday, 27 Sept 2005

Running your scripts
Are you having trouble running the script you wrote for assignment 1? Check the following common problems:

Also, I've updated the Using CVS tutorial to reflect the proper paths for this term; sorry I missed fixing this before.


Monday, 26 Sept 2005

Assignment 1 posted
Assignment 1 is posted here. Make sure you test out your CVS repository now and let me know if you are having any problems.


Thursday, 22 Sept 2005

Repositories
The CVS repositories have been created. If you were registered before today, then you should have a repository. If you registered later, you will probably need to email me about getting a repository set up. If you want to check out a local copy of your repository on CDF, you will need to set CVSROOT as follows. Replace yourid with your CDF user id.

# in tcsh (the default shell on CDF)
setenv CVSROOT /u/csc209h/fall/pub/repo/yourid

# in bash
export CVSROOT=/u/csc209h/fall/pub/repo/yourid

If you are trying to connect to the repository from home, you will need to set your CVSROOT to the following string. (Please note that it may be slightly different depending on the application you are using.)

:ext:yourid@cdf.utoronto.ca:/u/csc209h/fall/pub/repo/yourid

You will also need to set CVS_RSH to ssh if you are connecting from a remote machine.

Finally, you can check out the repository:

cvs co assignments

Now you will have a directory called assignments containg 5 directories: CVS, a1, a2, a3, a4. You should do your work for assignment 1 in the a1 directory, and commit your work early and often to take advantage of the version control features. Make sure you check out the repository and make sure you know how to use it before the due date for assignment 1.


Valid HTML 4.01 Transitional