The University of Western Ontario
London, Canada
Department of Computer Science
Computer Science 211b
Software Tools and Systems Programming
Course Outline - January 2008
Course Description
This course provides an introduction to software tools and
systems level programming. Topics include: understanding how
programs run (compilation, linking, and loading),
an introduction to a complex
operating system (UNIX), scripting languages, and
the C programming language. As time permits, other topics will
be chosen from: system calls, memory
management, libraries, multi-component program organization and
builds, version control, debuggers and
profilers.
Prerequisite: Computer Science 027a/b or 037a/b with a grade
of at least 60%
Antirequisites: Software Engineering 250a/b and
the former Software Engineering 201a/b
Lecture Hours: Tuesdays from 10:30am to 12:30pm, and Thursdays from 10:30am to 11:30am in Middlesex College 6
Instructor: Marc MORENO MAZA
Office: Middlesex College 383
Office Hours: Thursdays 1:00-3:00pm
Email: moreno <at> csd.uwo.ca
Phone: 661-2111 x 86891
Required Texts
- Sobell, UNIX System V: A Practical Guide.
Benjamin-Cummings: 3rd edition.
- King, C Programming: A Modern Approach. Norton.
Course Topics
The course will address as many of the following topics as time will allow:
- UNIX Fundamentals: UNIX vs. Windows; logging on; files
and directories; pathnames, and directory and file structure; editors;
shells; I/O redirection; UNIX concurrency (processes); utilities; file
permissions and security; regular expressions; shell programming.
- C programming: compiling, linking and loading; data types and
operators; control structures; formatted I/O; file I/O; connections between
I/O and the underlying operating system; function calls; structs;
enumerations; arrays; pointers (pointer arithmetics, pointers and arrays,
arrays of pointers, pointers to functions); memory management; linked lists
and other dynamically allocated data structures; strings; calling C from
UNIX; general libraries; standard libraries and headers; the C preprocessor;
C program organization.
- UNIX Tools: building and managing multi-component programs;
the make utility; version control and configuration management; debuggers;
code performance and profiling.
Lecture Notes
Course lecture notes will be made available in PowerPoint and PDF
on the course website.
They are provided as a courtesy by the course instructor. Possessing
(and even reading) these notes is not a suitable substitute for
attending lectures.
Course Website
The CS211b website is at http://www.csd.uwo.ca/courses/CS211b.
Lecture notes, assignments, and class information will be posted on
this website. You are responsible for reading this information
on a frequent and regular basis.
TA Consulting Schedule: to be arranged
Computing Facilities
Each student will be given an account on the Computer Science
Department senior undergraduate computing facility, GAUL.
In accepting the GAUL account, a student agrees to abide by the
department's Rules of Ethical Conduct.
Note: After-hours access to certain Computer Science lab
rooms is by student card. If a student card is lost, a replacement
card will no longer open these lab rooms, and the student
must bring the new card to a member of the Systems Group in
Middlesex College Room 346, or to the I/O counter (MC 352).
Email Contact
We will occasionally need to send email messages
to the whole class, or to
students individually. Email will be sent to your UWO email address. You
must make sure that you read your
email on a frequent and regular basis, or have it forwarded to an
alternative email address if you prefer to read it there.
Note that UWO and most other email providers establish quotas
or limits on the amount of space available to you. If
you let your email accumulate, your mailbox may fill up and
you may lose important email from your instructors. Losing email
is not an acceptable excuse for not knowing about the information
that was sent.
Student Evaluation
Grades will be based on five assignments worth a total of 40%,
a midterm exam worth 20%, and a final exam worth 40%.
If for any reason the assignment schedule given below cannot
be adhered to, the assignment marks will be prorated. (The
assignments are worth 40% of the overall mark for the course.
If an assignment has to be canceled for any reason,
the remaining assignment weights will be prorated (scaled) to add up to
40%.)
To be eligible to receive a passing grade in the course, your
mark on the final exam must be at least 40%, and your weighted
average on the assignments must be at least 40%. To be eligible to receive
a grade of C or higher, your mark on the final exam must be at least
50%, and your weighted average on the assignments must be at least
50%.
Assignment and Test Feedback
Every effort will be made to have assignments marked and handed
back within 2 weeks of the hand-in date. Midterm
exam marks will be posted within 2 weeks of the exam.
If we are unable to comply with our intended return dates,
revised dates will be posted on the course website.
Test and Exams
Midterm: 1 hr 40 mins, Tuesday March 6th, during class time (location to be announced)
Final: 3 hours during the April exam period; exact time to be announced
There will be no makeup midterm exam. Students who do not write the
midterm will have the weight shifted to the final exam, which will then be
worth 60 %. Students who do better on the final than the midterm will also have the midterm weight shifted to the final.
Assignments
Due Dates (revised)
Asn 1 - 1% (light) - due between Jan 7 and 18
Asn 2 - 7% (medium) - assigned Jan 24, due Feb 7
Asn 3 - 7%(medium) - assigned Feb 7, due Feb 21
Asn 4 - 7%(medium) - assigned Feb 21, due Mar 13
Asn 5 - 18% (heavy) - assigned Mar 13, due Apr 3
About the Assignments
- Assignment descriptions will be posted on the course website by the
dates listed above.
- Any changes, updates, and clarifications to assignments will
also be posted on the website. It is your responsibility to monitor
these pages closely.
- Assignments may involve programming in C, the use of UNIX
operating system utilities, programming using shell scripts,
and concept questions (non-programming)
related to the lecture material.
- To be eligible for full marks, individual C assignments must
run under UNIX on the departmental computing equipment. You may develop
assignments on your home computer, but you must allow for the
amount of time it will take to get the final product working
on Computer Science's machines.
Submission of Assignments
- Your assignment solutions are expected to be your own individual work,
not the products of group effort. On occasion, you may be allowed to make
use of code from an outside source, such as your textbook. Check with
your instructor if you are uncertain about the places in which you can use
code written by another person.
- With each assignment, you are required to
hand in an Assignment Submission Form, on which you certify that
the material you've handed in is exclusively your own work. This form
must be submitted to the assignment locker in a 9-by-12-inch envelope,
bearing your name, which
will be used to return your assignment. The precise location of the
assignment lockers will be announced on
the course website.
- Programming assignments will be submitted electronically.
Details will be given on the course website
and/or in the assignment descriptions. We reserve the right to use
similarity detection software
to detect possible cheating cases.
- Some non-programming portions of assignments may have to be handed in
on paper. These items must be included in your submission to the
assignment locker.
- Assignments are due by 11:59 pm on the due date. In the case of
programming assignments, the time stamp on the electronic submission will
be used to determine any late penalty. For assignments requiring paper
submissions, the times at which they are removed from the assignment locker
will be used.
Late Assignment Policy
- Late assignments will be accepted for up to four days after
the due date, with weekends (Saturday and Sunday) counting as a
single day; the late
penalty is 5% of the available marks per day. Lateness is based
on the times the assignment is removed from the locker and/or received
electronically, not on the time it was printed or last modified.
- Late Coupons
- Each student is given 5 late coupons. These are
virtual (as opposed to physical) coupons maintained by
the instructor. Late coupons may be applied toward any of
assignments 2 through 5.
- Each coupon can be thought of as a potential one-day
assignment extension. It's entirely up to you to decide when
to use your coupons; more than one coupon may be used per
assignment. If you wish to use any coupons with an assignment,
simply note that fact on your Assignment Submission Form.
- The intent of late coupons is to give you some free days
in case of minor illness, work overload, etc. No other
extensions will be given in such cases.
- Coupons are not transferable to another student.
- Once a coupon has been used, you cannot ``take it back''
to use for another assignment instead.
- Unused coupons are not redeemable for extra marks.
- Using a late coupon does not change the final date on
which an assignment will be accepted. Whether or not coupons are
used, the assignment must be handed in within 4 days of the
original due date.
- Extensions will be granted only on
serious medical or compassionate grounds.
You should take supporting documentation
to the office of the Dean of your faculty, who will contact the
instructor.
Assignment Marking
- Assignments are marked by the Teaching Assistant(s), who follow
marking schemes provided by instructors.
- When assignment marking has been completed, you will be informed via
the course website and/or email.
- You will be able to pick up your graded assignments in the first
class following the announcement of their availability. Thereafter,
they will be placed at the I/O
counter on the third floor of Middlesex College. You must present your
student card when retrieving assignments from the I/O counter.
- A request for adjustment in an assignment mark must be made within
2 weeks of the date on which it was first available for pickup. (Beyond
that date, regrading will not be considered, regardless of whether you
retrieved your assignment.) Such
a request must be submitted in writing, and must include specific
reasons why you believe you deserve more marks. The request
must be accompanied by all
materials that were originally handed in, as well as the original marker's
grade summary sheet. Regrading requests must be handed in to the
lecturer.
- Assignment marks may be mailed out
periodically throughout the term. It is
your responsibility to check that your marks have been recorded correctly.
Assignment Backups
It is your responsibility to keep up-to-date backups of
assignment disk files in case of system crashes or inadvertently
erased files. Retain disk copies of all material handed in,
as well as the actual graded assignment, to guard against the
possibility of lost assignments or errors in recording marks.
It is not safe to discard these materials until you are satisfied that
your final mark for the course has been computed properly.
Tutoring
The role of tutoring is to help students understand course
material. Tutors should not write assignments or tests
for the students who hire them. Submitting an assignment that contains
material written by a tutor is an academic offense.
Having employed the same tutor
as another student is not a legitimate defense against an accusation
of collusion, should two students hand in assignments judged similar
beyond the possibility of coincidence.
Ethical Conduct
All assignments are individual assignments. You may
discuss approaches to problems among yourselves; however, the
actual details of the work (assignment coding, answers to concept
questions, etc.) must be your individual effort. Assignments that
are judged to be the result of academic dishonesty will, for the
student's first offense, be given a mark of zero with an
additional penalty equal to the weight of the assignment also
being applied. You are responsible for reading and respecting
the Computer Science Department's policy on
Scholastic Offenses
and
Rules of Ethical Conduct.