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


CS-2303, System Programming Concepts

C-term 2017

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, loops, pointers, arrays, the machine stack, input/output mechanisms, imperative programming, 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 Engineering (RBE) and Interactive Media and Game Development (IMGD). 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-2301, which provides a less intense system programming experience in just the C language.

Registering for CS-2303, System Programming Concepts

Special Notice:  CS-2303 is offered in two, separate lecture sections at two different times, and seven different laboratory sections, also at different times. Students must register for one lecture section and one laboratory section.

      The two lecture sections are not interchangeable. They have separate instructors and separate quizzes, possibly on different days. Switching from one section to the other requires permission of both instructors and a course change request in the Registrar’s Office.

      The seven laboratory sections are interchangeable. They have exactly the same assignments on exactly the same schedules. Students may switch from one laboratory section to another subject to space availability and with the permission of the Teaching Assistants. No change in registration is required.

 

Credit for this course can only be awarded to students who are
registered for both one lecture section and one laboratory section.

Index

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 hosted on Canvas. All require your WPI username and password to access.

                                                                                                                                                                                          

Lecture Notes

Programming Assignments

Laboratory Sessions

 

Lecture Capture — All lectures of this course are captured using the Echo 360 system. They are viewable via Canvas as a live stream and/or as delayed playback.

 


Administrative Information

CS-2303 meets four times per week during the seven-week undergraduate term (28 hours) — January 12, 2017 – March 3, 2017.
           
Laboratory sessions meet once per week.

 

Time and Place:                                                                    
Lecture Section C01:– Mondays, Tuesdays, Thursdays, and Fridays, 10:00 — 10:50 AM, Upper Fuller Auditorium.
Lecture Section C02:– Mondays, Tuesdays, Thursdays, and Fridays, 4:00 — 4:50 PM, Lower Fuller Auditorium

Lab Sessions: Tuesdays and Wednesdays, Goddard Hall 012;                                                                        
Section CX03
meets Wednesdays, 11:00 — 11:50 AM
S
ection CX04
meets Wednesdays, 2:00 — 2:50 PM
S
ection CX05
meets Wednesdays, 3:00 — 3:50 PM
S
ection CX06
meets Wednesdays, 4:00 — 450 PM
S
ection CX07
meets Tuesdays, 12:00 — 12:50 PM
S
ection CX08
meets Tuesdays, 3:00 — 3:50 PM
S
ection CX09
meets Tuesdays, 11:00 — 11:50 AM

Professors:
Hugh C. Lauer                                                                
Email: <professor’s last name>@wpi.edu
Office hours: see OfficeHours.htm or by appointment
Office: Fuller Labs, Room 144

Michael Ciaraldi
Email: <professor’s last name>@wpi.edu
Office hours: see OfficeHours.htm or by appointment
Office: Fuller Labs, Room 129

Teaching Assistants and Senior Assistants:

            Graduate teaching assistants (email addresses in parentheses):–

            Salah Ahmed (sahmed2)
Dongqing Xiao (dxiao)

            Undergraduate student assistants:–

            Chris Bianco (cebianco)
Jesse Earisman (jkearisman)
Mike Giancola (mjgiancola)
Josh Hebert (jahebert)
Jacob Henry (jchenry)
Ben McMorran (bjmcmorran)
Thomas Meehan (tmeehan)
Rachel Plante (rplante)

Textbooks:–
The C Programming Language, 2nd edition, by Brian Kernighan and Dennis Ritchie, Prentice-Hall, 1988
Absolute C++, by Walter Savitch, Pearson; either the 4th edition (2010), 5th edition (2013), or the 6th edition (2016), is acceptable.

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 professors

cs2303L          — to reach students in 10:00 AM section (Lauer), all TAs and SAs, and both professors

cs2303C          — to reach students in 4:00 PM section (Ciaraldi), all TAs and SAs, and both professors

cs2303-staff    — to reach just the TAs, SAs, and the professors (both sections)

You should use these e-mail lists for all course business. For technical questions, see "Discussion Board" below.

Course web site: http://web.cs.wpi.edu/~cs2303/c17/
In order to comply with copyright regulations, some links on this web site take you to Canvas and require you to log in. Please use your own WPI username and password.

Absences: Students needing to be absent from class should notify the professors 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 professors 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.

top

Discussion Board and Contacting People

This term, we will use Piazza for a discussion board. You can access this within Canvas from the CS 2303-C17-Labs course; the Piazza link is the 3rd from the bottom in the list on the left side of every page.

Students are responsible for all notices posted by the Professors and by the Teaching Assistants on Piazza. Students are also responsible for technical information that is openly shared with the class via Piazza.

top

Office Hours and Schedules

For office hours of both professors and all of the Teaching Assistants, see OfficeHours.htm.

top

Grading Policy

Final grades will be computed as follows:

·         Weekly quizzes: 45%

·         Programming assignments: 45%

·         Lab attendance, Class Participation, and Subjective Evaluation: 10%

For the Subjective Evaluation portion of your grade, it is in your interest that the Professors 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 your professor by e-mail as soon as possible in order to work something out.

Programming Project submissions

Satisfactory completion of programming homework is required for passing this course. Good grades on quizzes alone are no substitute for doing the programming projects and for attending laboratory sessions.

All programming projects must be submitted to Canvas as specified in the Programming Assignment documents. Programs must compile without errors in order to receive any credit. If a submitted programming assignment fails to compile, the graders will make a good faith effort to contact the student via e-mail. The student may fix and resubmit the assignment within 24 hours of the graders’ attempt to contact, for a penalty of 25% of the full value of the assignment. If it is not fixed, the assignment will be graded as zero.

The 25% penalty is not appealable. The error of submitting a program that does not compile as specified by the assignment is considered unforgiveable — in this course, in all other courses at WPI, and professionally.

This 25% penalty for just one assignment has been known to make the difference of one letter grade for the course!

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 (except that the last one, see below). Quizzes 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 use a calculator or a calculator app on your phone, tablet, or laptop. You may refer to textbooks and notes on a laptop or electronic reading device, but you may not connect to any network during the quiz.

If you finish early, please remain quietly in your seat to avoid disturbing your neighbors.

 The last two quizzes will be

·         a classroom quiz on March 3 (same rules as above, but 40-50 minutes in length)

·         a laboratory quiz on February 28 or March 1, 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 classroom quizzes, plus the laboratory quiz. This is intended to help students accommodate absences due to illness, interviews, projects, etc.

Academic Accommodations

Students with disabilities who believe that they need accommodations in this class are encouraged to contact the Office of Disability Services (ODS) as soon as possible to ensure that such accommodations are implemented in a timely fashion. This office can be contacted via email: DisabilityServices@wpi.edu, via phone: (508) 831-4908, or in person: 137 Daniels Hall.

The Professors must receive requests for accommodations at least one week prior to any exam or quiz.

Students with approved accommodations should please go to the Exam Proctoring Center (EPC) in Morgan Hall to pick up Letters of Accommodation.

top

Late Policy

Special Notice:– As of Programming Assignment #4, the Late Policy has been revised. A late submission of Programming Assignments will incur a penalty of 10% of the project value per hour (or fraction thereof) late. It is the student’s responsibility to ensure that an assignment is delivered on time, even in the face of slow responses from Canvas. If it proves impossible to submit an assignment via Canvas, the student must e-mail it to cs2303-staff@cs.wpi.edu. Please be sure to CC yourself, so that you have evidence that the e-mail system has actually received your e-mail.

If you have special circumstances, contact both Professors by e-mail at least 24 hours before the assignment is due.

If a submitted program does not compile, the grade is automatically zero. However, the TAs will make a good faith effort to contact the student and accept a resubmission within 24-hours of the contact. The late penalty of 25% will be applied in this case; the grace day may not be applied to waive this penalty.

top

Academic Honesty

Students are strongly encouraged to work together, help each other, reinforce each other’s 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:–

http://www.wpi.edu/Pubs/Policies/Honesty/policy.html

top