308-206: Intro to Software Systems: Course Outline

308-206 is now a 3-credit, full semester course in C programming and program development in the UNIX environment.
It is offered in both fall and winter semesters, and is a required course for students in many of our degree programs. It provides a brief but comprehensive introduction to and overview of the C programming language, and how to use it, along with the UNIX environment, to build software. It sets the stage for follow-on courses, 308-273 and 308-310.

It is scheduled on Tues/Thurs at 16:00 - 17:30 in Burnside 1B45

Instructor and TAs

Instructor TAs
Charles Snow, McConnell 233
Phone: 398 7071 ext 0876
Email: charles@cs.mcgill.ca
TA's are announced only after the start of the semester.

Internet Resources

Web: The page you're looking at, http://www.cs.mcgill.ca/~cs206/2000A
This site will contain any reference or supplementary material useful to the course. For example, we will be looking many examples of source code throughout the course: while these will not all be given out in class, they will all be available here.
Newsgroup: mcgill.socs.courses.cs206/2000A
A good place to ask questions, or to check for answers to questions you may have. Answers to questions I or the TAs receive often end up in this newsgroup if they are of general interest to the class. It is also where important announcements will be posted,
Email: cs206/2000A@cs.mcgill.ca
Use this email address for course related questions, or if you ever need to submit work by email (which you should almost never do...see page on assignments) Note that mail sent to this address may be read by either the course instructor or any of the TAs. Any message you want sent specifically to the instructor should be sent using his email address, not the address for the course.

Books

There are two books for this course. I recommend that everyone buy their own copies, as these are books you'll use beyond just this course. There are other suggested books you can refer to, but the two selected books are ones you should aim to get (they will be in the McGill University bookstore, and copies will be available, on reserve, in the PSEAL library ).

Practical C Programming by Steve Oualline
Programming with GNU Software by Mike Loukides and Andy Oram

Other books of interest will be mentioned in class, and references to them appear in the course website.

Grading

Student grades in this course will be based on:
Assignments: 15%
In-class tests (2): 45%
Final Exam: 40%

Students are encouraged to help each other formulate the ideas behind assignment problems, but each student is required to submit his or her own original work. Handing in work that is not your own, original work as if it is your own is plagiarism. See section 15 of Student Rights and Responsibilities Handbook for more details.

The two in-class tests will be held, approximately, one if the first week of October and the other in the second week of November; each is worth 22.5% of the final grade.

The final exam will be held during the formal final exam period (December 7th to 21st inclusive), and will be 3 hours long.

The option of doing extra work to improve a grade is not open to students of 308-206A.

Content

Material covered in the course will be drawn from this list of topics: