CSC 209: Software Tools and Systems Programming

University of Toronto, Fall 2011

Lecturer:

Alan J Rosenthal
[e-mail address removed from web page to avoid harvesting by spammers -- you can guess it from the URL]   (no HTML e-mail please)
BA 3218

Lectures:

BA 1200, 1:10-2:00, starting Monday September 12, then Tuesdays and Thursdays. Last lecture Tuesday December 6.

Lecturer office hours (during the term):

Wednesdays, 5:00, or by appointment. If no one is there by about 5:30, I might leave, so please phone or e-mail if you intend to arrive around 5:30 or later.

Tutorials:

Mondays, 1:10-2:00, starting September 19. Surname A-H in BA 1200; surname I-O in BA B024; surname P-Z in BA 1220. Last tutorial Monday December 5.


Recommended textbooks:

About the C programming language: A lot of people like K.N. King, C Programming: A Modern Approach, W.W. Norton, 1996 or 2008. The canonical reference is Kernighan & Ritchie, The C Programming Language, second edition, Prentice-Hall, 1988.

About unix system programming: K. Haviland, D. Gray, and B. Salama, Unix System Programming, second edition, Pearson Ed. / Addison-Wesley, 1998.

A book about C is probably more important than a book about unix. You may not necessarily want to buy the Haviland et al. book (or any book) as it does not cover the entire course. There is a document about various textbooks on the course web page.


Course topics:

The "software tools" model and unix philosophy, i/o redirection, shell programming, the unix filesystem, the C programming language (syntax, datatypes, storage model), unix processes, the operating system interface, interprocess communication and network communication, introduction to concurrency, and unix and internet security.


Important prerequisite note:

This course has course prerequisites and a CGPA prerequisite. The prerequisites are your responsibility. If you do not have the prerequisites and you do not receive special permission to take the course, you will be removed from the course at some future time when the A&S office does their checks.


Grading scheme:

Assignment 1:10%due Friday October 14 (midnight)
Mid-term test:15%1:10, Monday 24 October, EX 310 (not your tutorial room!)
Assignment 2:10%due Monday October 31
Assignment 3:10%due Friday November 18
Assignment 4:10%due Tuesday December 6
Final exam:45%as scheduled during the December exam period

To pass the course you must receive at least 35% (out of a hundred that is) on the final exam.

Assignments are submitted on the computer itself; you don't hand in any paper. Submission instructions are included on the assignment handouts.

Late assignments will only be accepted under exceptional circumstances and with a written explanation sent separately by e-mail. To submit an assignment late, submit it in the usual way and then send the lecturer an e-mail message or bring him a note.

Any disagreements with the grade assigned to an assignment or the midterm should normally be submitted to the lecturer within about a week of its return. Regrading requests submitted after that might be taken less seriously unless we made a substantial grading error; as well, you then probably won't get your work back until the very last class.

Work submitted for regrading during the last two weeks of classes will not be returned until after the final exam. (You may wish to photocopy it first if applicable.)


Bulletin board

There is a bulletin board at https://csc.cdf.toronto.edu/bb/YaBB.pl?board=CSC209H1F which you are encouraged to use to communicate with other students in this course. However, it is not an official part of the course and we will not necessarily be reading it; see me or TAs in office hours or send e-mail. Do not post a test message. Wait until you have something to say, then post that.


Serious academic offence warning!

Your work in this course which is submitted for course credit must be your own. Representing someone else's creative work as your own is an academic offence. There are a number of rules which you must follow to avoid prosecution.

In course work, you are expected to submit something on your own, so submitting anything which comes from others is an academic offence unless specifically and precisely acknowledged. It is also an offence to assist others in committing an academic offence.

Therefore, you may not:

I suggest limiting your collaboration with others to non-assignment material, and asking more-specific assignment questions of me or a TA. Students have been prosecuted and convicted for handing in work written for hire, written by personal tutors, copied from the web, or with just a bit too much text borrowed from a friend. It is not difficult for graders to detect excessive collaboration.


[main course page]