CS2023 -  Procedural Program Development

Winter 2004

Course Objectives

Procedural program design differs from object-oriented design in that it decomposes complex systems into functions rather than objects. Linux is a good example of a complex system, and it is written in C, the most widely used procedural programming language. This course introduces the student to procedural program development with C in the Linux environment. Upon successful completion of this course, the student will be able to:
Text

C for Java Programmers, Tomasz Muldner, Addison Wesley, 2000.
 
Instructor

Eric Aubanel
Office: GW-E108
Hours: When my door is open, or by appointment
E-mail: aubanel@unb.ca
 
Schedule

MWF 10:30 - 11:20 am
Room: HC11
 
Website

Additional information, including the assignments, is made available via the course web site:
www.cs.unb.ca/profs/aubanel/cs2023. Students are responsible for checking this site on a regular basis.
 
Lecture Notes

Lecture notes will be posted on the course website no later than one day before the relevant lecture. However, they are not a replacement for attending class, are not meant to stand on their own -  I will often add extra material in class.
 
Laboratory

You will have access to the Linux workstations in ITD415.
I will be scheduling one or more lab sessions, beginning with an introduction to compiling and running C programs in Linux early in the term.
 
Marking Scheme
Assignments 30% 
Midterm 20%
Final Exam 50%

You must obtain a mark of 50% or more on the final exam in order to score higher than a 'D' in this course.
 
Assignments

Assignments must be completed in accordance with the course's C Language Coding Standard. As with earlier computer science courses, each assignment must have a cover page stapled to it. Submitted work must be your own. Please refer to section IX (Academic Offences) on page 49 of the 2003-2004 Undergraduate Calendar or online.

Students who disagree with their evaluation should resubmit their assignment to the instructor with a written explanation of the issue and a proposed remedy. Errors in addition should be reported directly to the instructor, in person, after class or by arrangment. For each assignment, two submitted assignments will be put on reserve in the Engineering Library with identifying information removed, illustrating what was expected (and accomplished) by class members.

Late assignments will be assessed for feedback, but no mark recorded, with the following exceptions:

Exams

NO CALCULATORS will be allowed on the midterms OR the final exam. The midterms and the final exam will be CLOSED BOOK tests.

Computing Resources

A computer account for the Linux workstations in ITD415 will be provided to each student. Email messages advising students of their accounts and initial passwords will be sent out early in the term. It is possible to use the computers in ITD415 remotely from any other computer connected to the Internet using telnet or secure shell (ssh).

Students may work on their own computers, but should do so in a UNIX/Linux environment (either installed directly on their computer, or accessed remotely via telnet or ssh). Putty (download here) is a good windows telnet/ssh client. Another option is to install Cygwin, a UNIX development environment for Windows. Both putty and Cygwin are free! Some of you may even have access to an Apple computer running a version of OS X, which is based on UNIX. However please note that electronically submitted programming assignments will be compiled and run on FCS Linux workstations, so it would be a good idea to test them here.
 
Course Topics

Lectures and assignments will be based on material from the course text and from other books which will be placed on reserve (see below). Topics may include:

These topics may not be covered in the above order and are subject to revision.
 
Books on Reserve

The following books have been placed on reserve in the Engineering Library. The two C language books are there to complement the approach taken in the course textbook by Muldner, whereas the others contain material covered in class but not found in Muldner's book.




Revised: December 23, 2003 by Eric Aubanel