CS-2303, System Programming Concepts

A-term 2010

This course introduces students to a model of programming where the programming language exposes details of how the hardware stores and executes software. Building from the design concepts covered in CS 2102, this course covers manual memory management, pointers, the machine stack, and input/output mechanisms in the C and C++ programming languages.

The intended audience for this course is computer science and computer engineering students with substantial object-oriented programming experience, particularly in Java. It is preparation for upper-level computer science courses, particularly CS-3013, Operating Systems.


Syllabus, Course Outline, and Goals and Outcomes

Administrative Information

Office Hours and Schedule

Grading Policy and Exams

Late Assignment Policy

Academic Honesty


Discussion Board and Contacting People


The following links are intended to be password-protected in accordance with WPI policy regarding the posting of copyright materials on course web sites. When you follow one of them, you may be asked to login with your regular WPI login ID and the password given in class.

Lecture Notes

Programming Assignments

Laboratory Sessions

Administrative Information

CS-2303 meets two times per week for two hours during a seven-week undergraduate term (28 hours).

Time and Place: Tuesdays and Fridays, 8:00 — 9:50 AM, Fuller Labs 320 from August 27 – October 12, 2010.

Lab Sessions: Wednesdays, Goddard Hall 012; section 01 meets at 9:00 — 9:50 AM, section 02 meets at 10:00 — 10:50 AM.

Professor: Hugh C. Lauer
Email: <professor’s last name>@cs.wpi.edu
Office hours: see chart below; or by appointment
Office: Fuller Labs, Room 235

Teaching Assistants and Senior Assistants:

            Chuan Lei (chuanlei)
Can Tatar (can)
Eric Walston (ecwalston)
            (e-mail addresses are in the domain wpi.edu
            Office hours
in Fuller A22)

Class e-mail lists: The following two lists are in the domain cs.wpi.edu
cs2303-all  — to reach all students, TAs, SAs, and the professor
cs2303-staff — to reach just the TAs, SAs, and the professor
You should use these e-mail lists for all course business and technical questions. See below.

Course web site: http://www.cs.wpi.edu/~cs2303/a10/
In order to comply with copyright regulations, portions of this web site may require you to log in. Please use your own WPI login ID and the password CS-2303.

Absences: Students needing to be absent from class should notify the professor by e-mail or in person as soon as possible. Likewise, students needing to schedule assignments or presentations around religious holidays, projects, or interview trips should notify the professor at the beginning of the term.

Class cancellations and snow dates: Consult official WPI sources regarding the cancellation of classes due to snow and for rescheduling of those classes.


Discussion Board and Contacting People

Please use the course e-mail list (cs2303-all in the domain cs.wpi.edu) as a discussion board. All technical questions should be addressed to this list. If you know the answer to a question, please respond to the list. You will be helping your classmates and increasing the subjective portion of your grade.

For administrative items, including questions about submittals, requests for extensions, notification about upcoming absences, etc., please e-mail to cs2303-staff in the domain cs.wpi.edu.

The teaching assistants and the Professor will endeavor to monitor both of these lists on a regular basis.

Private and confidential matters should, of course, be addressed only to the Professor.


Office Hours and Schedules




















Lab –
Section A01







Lab –
Section A02




















































































                        HCL — Hugh C. Lauer
                        CAN — Can Tatar
                        CL — Chuan Lei
                        ECW — Eric Walston


Grading Policy

Final grades will be computed as follows:

·        Exams: 40%

·        Programming assignments: 40%

·        Labs: 10%

·        Class participation and Subjective Evaluation: 10%


It is unlikely that you can pass this course if you do not submit programming assignments or attend class regularly. In particular, good grades on exams are not a substitute for submitting the programming assignments.

For the Subjective Evaluation portion of your grade, it is in your interest that the Professor and the Assistants know who you are. Please introduce yourself at every opportunity.

If there are any circumstances that limit or restrict your participation in the class or the completion of assignments, please contact the professor by e-mail as soon as possible in order to work something out.


There will be two exams:– the final exam will be on October 12. A mid-term exam will be held, probably during the week of September 13.

Exams will be one hour in length and will be closed book, but students may bring one 8½ -by-11 inch sheet of prepared notes (two sides). You may not use any computers, calculators, mobile phones, music players, or any other electronic devices during the exams.

Prior to each exam, there will be a brief review period in which students may ask questions and discuss topics relevant to the exam.

There are no makeup exams. Absence from an exam will be excused only for medical or emergency reasons. A note from your doctor or from the Office of Academic Advising will be required. In extreme circumstances, the Professor will try to help you find a way to pass the course.

Students with Disabilities

Students with disabilities who believe that they need accommodations in this class are encouraged to contact the Disability Services Office (DSO) as soon as possible to ensure that such accommodations can be implemented in a timely fashion. The DSO is located in Daniels Hall. The Professor must receive requests for accommodations at least one week prior to an exam.


Late Policy

Late programming assignments will be accepted within 24 hours of the due date except the last programming assignment. Each student will be allowed one late submission without penalty. Additional late submissions will incur an automatic 25% penalty. Any assignment turned in after the 24-hour grace period will receive a grade of zero. No extra credit or makeup programming assignments will be given. If you have special circumstances, contact the Professor by e-mail at least 24 hours before the assignment is due.


Academic Honesty

Students are strongly encouraged to work together, help each other, reinforce each others’ knowledge, and consult experts and resources outside the course on all topics. Like most professional environments in your future, success depends upon how well you do when you have access to a full array of resources, not how much you remember by rote.

Once you and your classmates have worked out a solution to a problem, you must write it up in your own words or code it in your own coding style. Copying is not allowed. Borrowing algorithms from references, on-line sources, and other students is permitted provided that you cite your sources in your write-up and that you write out the solution in your own words or coding style!

Some assignments may be team assignments. For these, it is expected that all team members participate with roughly equal levels of effort. When you put your name on a team submission of an assignment, not only are you testifying that you have fully participated in that assignment, but also your teammates are also testifying that you have fully participated.

For all assignments, the WPI Academic Honesty Policy applies:–