CSC 209:
Software Tools and Systems Programming
University of Toronto, Fall 2011
Lecturer:
Alan J Rosenthal
(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:
- type assignment code into a computer with others
- produce any part of your assignment submission while meeting with others
- look at someone else's assignment work, completed or partial, before the deadline
- show anyone (other than the instructor or a TA) your assignment work, completed or partial, before the deadline (or any extension they have for special circumstances -- best to wait until after the instructor solutions are posted)
- bring your solution, completed or partial, to any group discussion about an assignment
- take away any written or electronic material from any group discussion about an assignment
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]