Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: logohome

CS-2303, System Programming Concepts

A-term 2012

This course introduces students to system programming in the C and C++ programming languages. Building from the design concepts covered in CS 2102, this course covers memory management, pointers, arrays, the machine stack, input/output mechanisms, and common data structures.

The course is intended for students interested in majoring in Computer Science students and other computationally intensive fields such as Robotics and Interactive Media and Game Development. The course assumes substantial object-oriented programming experience and a familiarity with Java. It is preparation for many upper-level computer science courses, including CS-3013, Operating Systems, and CS-3516, Computer Networks.

Note:  Students in other fields should consider CS-2031, which provides a less intense system programming experience in just the C language.


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


Lecture Capture — All lectures of this course are captured using the Echo 360 system and can be viewed at this URL. You will need to log in with your WPI userID and password.


Lecture Notes

Programming Assignments

Laboratory Sessions


The links above are password-protected in accordance with WPI policy regarding the posting of copyright materials on course web sites. When you follow one of them, you must login with your regular WPI login ID and password. Protected materials are stored on, and they may also be reached by navigating from the CS-2303 course directory myWPI.

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 24 – October 12, 2010.

Lab Sessions: Wednesdays, Kaven Hall 203; section A01 meets at 9:00 — 9:50 AM, section A02 meets at 10:00 — 10:50 AM, and section A03 meets at noon — 1:00 PM.

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

Teaching Assistants and Senior Assistants:

            Ahmedul Kabir (akabir)
Hao Wan (hale)
Chris Casola (ccasola)
Nick DeMarinis (ndemarinis)
            (e-mail addresses are in the domain
            Office hours
in Fuller A22)

Class e-mail lists: The following two lists are in the domain
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:
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 password.

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 as a discussion board. You will need to log in to post any message to this board. You can also subscribe to the discussion board, so that messages appear in your e-mail. Finally, you click on such a message and respond to it directly.

All technical questions should be addressed to this discussion board. If you know the answer to a question, please respond to it on the discussion bard. You will be helping your classmates and increasing the subjective portion of your grade. You are responsible for all information appearing on this discussion board.

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

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
















ND &

Lab –
Section A03





























































                        HCL    — Hugh C. Lauer, or by appointment
                        AK      — Ahmedul Kabir
                        HW      — Hao Wan
                        CC       — Chris Casola
                        ND      — Nick DeMarinis


Grading Policy

Final grades will be computed as follows:

·         Weekly quizzes: 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.

Weekly quizzes                                                                                                                                   

In lieu of major exams, there will be a quiz each week at the start of class, typically on Fridays.

Quizzes will be approximately twenty minutes in length and will be open book and open notes. You may start each quiz as soon as you arrive in the classroom; quizzes will end at a designated time. Therefore, it is in your interest to arrive early and get a little extra time. You may not use computers, calculators, mobile phones, music players, or any other electronic devices during the quizzes. However, if your copy of your textbook is on an iPad, Kindle, etc., you may refer to it on that device. However, you may not do any computing or access any network during the quiz.


The last two quizzes will be a classroom quiz on October 9 (same rules as above) and a laboratory quiz on October 10, conducted during your lab session. The last two quizzes are mandatory. Skipping either of these is tantamount to requesting an NR in the course.


There are no makeup quizzes. The “quiz” portion of your course grade will be based on the best five out of seven quizzes. This is intended to help students accommodate absences due to illness, interviews, projects, etc.

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:–