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
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.
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 my.wpi.edu, and they may also be reached by navigating from the CS-2303 course directory myWPI.
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: <professors last name>@cs.wpi.edu
Office hours: see chart below; or by appointment
Office: Fuller Labs, Room 144
Ahmedul
Kabir (akabir)
Hao Wan (hale)
Chris Casola (ccasola)
Nick DeMarinis (ndemarinis)
(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/a12/
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.
Please use my.wpi.edu
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 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.
|
Sunday |
Monday |
Tuesday |
Wednesday |
Thursday |
Friday |
Saturday |
|
8:00 |
|
|
class |
|
|
class |
|
|
9:00 |
|
|
Lab |
|
|
|
||
10:00 |
|
|
Lab |
|
|
|||
CC |
||||||||
11:00 |
|
|
|
|
|
|
||
|
|
|||||||
Noon |
|
AK |
ND & |
Lab |
|
HCL |
|
|
1:00 |
|
AK |
|
|
|
|
||
2:00 |
|
HW |
|
|
|
|
||
3:00 |
|
|
|
|
|
|
||
CC |
||||||||
4:00 |
|
|
HW |
|
||||
|
||||||||
5:00 |
|
|
|
|
|
|||
6:00 |
|
|
|
|
|
|
||
7:00 |
|
|
|
|
|
|
||
8:00 |
|
|
|
|
|
|
|
HCL
Hugh C. Lauer, or by appointment
AK Ahmedul Kabir
HW Hao Wan
CC Chris Casola
ND Nick DeMarinis
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.
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 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 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.
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: