Outcomes | Staff&Contact Information | Where&When | Textbook | Grading | Policies | Schedule&Assignments
What this course is about
The goal of CS 2301 is to help students with
prior program design experience migrate their skills to a model of
programming where the programming language exposes details of how the
hardware stores and executes software. This course is intended for
non-computer science majors who wish to take upper-level courses in the
systems area of the computer science curriculum.
Recommended background and course topics are listed
in the
WPI undergraduate catalog course description
Instructor: Glynis Hamel (GH)
Teaching Assistants: Yue Lu (YL) and Jiayuan Wang (JW)
(Note: TA office hours are held in FL A22 (Fuller sub-basement, next to the Zoo Lab). Glynis Hamel's office hours are held in FL 132.)
Day/Time | 9:00 | 10:00 | 11:00 | 12:00 | 1:00 | 2:00 | 3:00 | 4:00 | 5:00 | 6:00 | 7:00 |
Monday | YL | GH | JW | ||||||||
Tuesday | JW | JW | YL | JW | GH |   | |||||
Wednesday | |||||||||||
Thursday | YL | YL | |||||||||
Friday | GH |
If you have a question regarding your grades in the course, please send email to cs2301-staff *at* cs.wpi.edu. Mail sent to this address goes to the instructor and to the TAs. Include your section number in all correspondence.
The instructor's email address is ghamel *at* cs.wpi.edu. Please restrict your use of my personal email address to issues of a confidential nature. You will get a quicker response if you post your questions to the class discussion board.
Section | Time | Location | TAs |
B01 | 2:00 - 2:50pm | HL 230 | Yue and Jiayuan |
B02 | 3:00-3:50pm | HL 230 | Yue and Jiayuan |
Textbook, Software, and Authors' Website
Textbook (required):
Deitel, H. M., and P. J. Deitel,
C How to Program,
7th edition, Prentice Hall, 2013. (If you find a used copy of the 6th
edition, that's fine, too.)
Software: Assignments will be done on CCC machines running Linux.
You can access these machines via an ssh client to
Exams are closed-book, closed-notes. You may bring in one sheet of
notes (one paper, 8.5" x 11.5", both sides) to each exam. You may not use
any computers, calculators, cellphones, or other electronic devices during the exams.
There are no makeups for 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 such cases your final
grade will be recorded as Incomplete and you will be allowed to take a makeup
exam the next time the course is offered.
In the following discussion of Academic Honesty as it pertains to homework
in CS2301, sharing between members of a homework pair is encouraged. All
other kinds of sharing (between one homework pair and another homework pair,
between two individuals, or between a homework pair and an individual) are
subject to the following rules:
You are encouraged to talk with others in a general way about homework
assignments (what approach to take, for example), but any work
submitted for grading must be solely that of the individual/pair who submits
the work. Some examples of situations that
would be considered academically dishonest are
If you receive general help from another student or an outside source,
that student or source must be acknowledged in the documentation accompanying
your submitted work.
Cheating will not be tolerated.
If
you are unsure whether a given activity would constitute cheating, ask
the instructor.
Violations of the Academic Honesty
Policy can result in an NR for the course, and violators will be
subject to the procedures outlined in section 5 of the
WPI Judicial
Policy.
Exams (60%)
Three exams will be given. Exams are tentatively scheduled for November 8,
November 27, and December 13.
You must have a passing average on
the exams in order to pass the course. (A passing average on the exams
is usually around 65%. We may lower this threshold if the exam averages
are low; the threshold will not be raised).
Homework (30%)
Six homework assignments will be given.
Assignments will be due at 5pm on Tuesdays (see the Late Policy, below).
No extra
credit or makeup homework assignments will be given.
Labs (5%)
Labs will be given during conference
sections on Wednesdays.
To get credit for a lab you must attend at your scheduled time,
actively work on the assignment during the lab period, and use turnin to turn in your work at the end of the lab
period. Each lab
will be graded as either credit (1) or no credit (0). Your lowest lab grade
will be dropped.
There are no makeups for labs.
In-class assignments (5%)
Several times during the term we will take a few minutes of class time
for in-class group work. This will consist of one or two questions
related to recently-covered lecture material or homework problems.
Each group assignment will be graded as either credit (1) or no credit (0).
At the end of the term five of these assignments will be chosen at random by the instructor, and these will count as 5% of your final grade.
There are no makeups for
in-class assignments.
Academic Honesty Policy
Please read WPI's Academic
Honesty Policy.
Labs and In-class group work
Collaboration is encouraged for labs and in-class group work.
Exams
Exams are to be done individually.
Homework
You have the option of
working with a partner on the homework assignments, if you wish. If you
decide to work with a partner, you will have the same partner throughout
the term, and both partners will receive the same grade on any given
assignment. Here is more information about
working with a homework
partner.
Late Policy
Late homework will be accepted within 24 hours of the due date. Each individual/pair
will be allowed one late submission without penalty.
Beyond that, late homework
will incur a 25 percent penalty. Any homework turned in
after the 24-hour grace period will receive a grade of zero. No extra credit
or makeup homework assignments will be given.
Homework Submission Policy
Homework must be submitted using the web-based
turnin program.
Homework
submitted by any other means (paper, email, etc.) will receive a grade
of zero.
Students with Disabilities
Students with disabilities who believe that they may need
accomodations in this class are encouraged to contact the Disability
Services Office (DSO) as soon as possible to ensure that such
accomodations are implemented in a timely fashion. The DSO is
located in Daniels Hall.
Schedule
Note: the instructor reserves the right to change the order of topics
or the dates of the exams, if necessary.
Week
Reading
Topics
Handouts
Assignments
Oct 23 - 26
Chapters 1-4,
Chapter 9 (sections 9.1 - 9.5, 9.8, 9.10 - 9.12)
Lecture 1 objectives
Lecture 2 objectives
Lecture 3 objectives
Course overview
intro to I/O: scanf, printf
Boolean expressions
if-statement
loops
data types and casts
compiling and executing C programs
Lecture 1 handout
Lecture 2 handout
Lecture 3 handout (1)
Lecture 3 handout (2)
Lab 1 (Wed, 10/24)
Homework 1 (due:
Tuesday, 10/30)
Oct 29 - Nov 2
Chapter 5
Lecture 4 objectives
Lecture 5 objectives
Lecture 6 objectives
Lecture 7 objectives
function definition
function calls
call-by-value
documenting functions
scope and storage class
arrays
Lecture 4 handout (1)
Lecture 4 handout (2)
Lecture 5 handout
Lecture 6 handout (1)
Lecture 6 handout (2)
Lecture 6 handout (3)
Lecture 7 handout (1)
Lecture 7 handout (2)
Lab 2 (Wed, 10/31)
Homework 2 (due:
Tuesday, 11/6)
Nov 5 - 9
Chapter 6 (sections 6.1 - 6.5, 6.9, 6.11)
Chapter 7 (sections 7.1 - 7.5, 7.7 - 7.9, 7.13)
Lecture 8 objectives
Lecture 9 - Review
Lecture 10 - Exam 1
Lecture 11
objectives
pointers
Exam review/catch up
Exam 1, Thursday, November 8
simulating call-by-reference with pointers
pointer arithmetic
pointers and arrays
Lecture 8 handout (1)
Sample Exam 1 (.pdf file)
Answers to Sample Exam 1 (NOT!)
Lecture 8 handout (2)
Lecture 8 handout (3)
Lecture 8 handout (4)
Lab 3 (Wed 11/7)
Homework 3 (due: Tuesday, 11/13)
Nov 12 - 16
Chapter 8 (skim sections 8.3, 8.4)
Section 7.10
Chapter 10 (sections 10.1 - 10.6)
Lecture 12
objectives
Lecture 13
objectives
Lecture 14
objectives
Lecture 15
objectives
chars and strings
C string functions
arrays of pointers
makefiles
structs
Lecture 12 handout (1)
Lecture 12 handout (2)
Lecture 14 handout (1)
Lecture 14 handout (2)
Lecture 14 handout (3)
Lecture 14 handout (4)
Lecture 15 handout (1)
Lecture 15 handout (2)
Sample Exam 2
Lab 4 (Wed 11/14)
Homework 4 (due: Tuesday, 11/20)
Nov 19 - 20
Chapter 12 (sections 12.1 - 12.6, 12.8)
Lecture 16 objectives
Lecture 17
objectives
Thanksgiving break
dynamic memory and linked lists
queues
(HW4 due Tuesday, 11/20)
Nov 26 - 30
Section 12.7
Chapter 11
Lecture 18- Review
Lecture 19 - Exam 2
Lecture 20 objectives
Stack Lecture objectives
Lecture 21 objectives
more linked lists
Exam 2, Tuesday, November 27
trees
(Lecture 21 will not be covered)
file processing
Lab 5 (Wed 11/28)
Homework 5 (due: Tuesday, 12/4)
Dec 3 - 7
Sections 10.8 - 10.12
Lecture 22 objectives
Lecture 23 objectives
Lecture 24 objectives
Lecture 25
objectives
more on arrays
typedef, bit operations
hash tables
Lecture 22 handout (1)
Lecture 22 handout (2)
Lecture 22 handout (3)
Lecture 22 handout (4)
Lecture 23 handout
Lab 6 (Wed 12/5)
Homework 6 (due: Tuesday, 12/11)
Dec 10 - 13
Lecture 26 objectives
Lecture 27 - Review
Lecture 28 - Exam 3
more on hash tables
Exam review/ catch up
Exam 3, Thursday, Dec 13
Exam 3 topics
Sample Exam 3 (.pdf file)
(HW6 due Tuesday, 12/11)
http://www.cs.wpi.edu/~cs2301/b12/index.html