![]()

Objectives | 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: Jason Chang (JC), Jeff Zhou (JZ)
Senior Assistant: Paul Sader (PS)
(Note: TA/SA office hours are held in FL A22 (Fuller basement). Glynis Hamel's office hours are held in FL 132.)
| Day/Time | 10:00 | 11:00 | 12:00 | 1:00 | 2:00 | 3:00 | 4:00 | 5:00 | 6:00 | 7:00 | 8:00 |
| Monday | GH | JC | PS | PS | JZ | JZ | |||||
| Tuesday | GH | JZ | JZ | JC | JC | JC | |||||
| Wednesday | |||||||||||
| Thursday | GH | ||||||||||
| Friday | GH | PS | PS |
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 | TA/SA |
| B01 | 11-11:50am | AK 120d | JC / PS |
| B02 | 1:00-1:50pm | HL 230 | JZ / PS |
Textbook, Software, and Authors' Website
Textbook (required):
Deitel, H. M., and P. J. Deitel,
C How to Program,
5th edition, Prentice Hall, 2007. (If you find a used copy of the 4th
edition, that's fine, too.)
Software: We will be using the GNU C compiler (gcc), available through your WPI Unix account. You will be given instructions on how to use the compiler during the lab sessions.
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.
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). There are no makeups for group assignments.
The total of your best 10 lab grades/group assignment grades will be added to your final average to account for 10% of your final grade.
Academic Honesty Policy
Please read WPI's Academic
Honesty Policy.
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.
Schedule
Note: the instructor reserves the right to change the order of topics
or the dates of the exams, if necessary.
| Week | Reading | Topics | Assignments
|
| Oct 24 - 27 |
Chapters 1-4
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 |
Lab 1 (Wed, 10/25)
Homework 1 (due: Tuesday, 10/31) |
| Oct 30 - Nov 3 | Chapter 5 (sections 5.1 - 5.14, 5.16)
Lecture 4 objectives Lecture 5 objectives Lecture 6 objectives Lecture 7 objectives Source code for Towers of Hanoi |
function definition
function calls call-by-value documenting functions scope and storage class recursive functions |
HW1 due Tuesday, 10/31
Lab 2 (Wed, 11/1) Homework 2 (due: Tuesday, 11/7) |
| Nov 6 - 10 |
Chapter 6 (sections 6.1 - 6.5, 6.9) Chapter 7 (sections 7.1 - 7.5) Lecture 8 objectives Lecture 9 - Review Sample Exam 1 (pdf file) Lecture 10 - Exam 1 Lecture 11 objectives |
arrays
Exam review/catch up Exam 1, Thursday, November 9 pointers simulating call-by-reference with pointers pointer arithmetic |
HW2 due Tuesday, 11/7
Lab 3 (Wed 11/8) Homework 3 (due: Tuesday, 11/14) |
| Nov 13 - 17 |
Chapter 7 (sections 7.7 - 7.10)
Chapter 8 (skim sections 8.3, 8.4) Lecture 12 objectives Lecture 13 objectives Lecture 14 objectives Lecture 15 objectives |
pointers and arrays
chars and strings C string functions arrays of pointers makefiles |
HW3 due Tuesday, 11/14
Lab 4 (Wed 11/15) Homework 4 (due: Tuesday, 11/21) |
| Nov 20 - 21 | Chapter 10 (sections 10.1 - 10.6)
Chapter 11 Lecture 16 objectives Lecture 17 objectives Thanksgiving break |
structs
sequential- and random-access files |
HW4 due Tuesday, 11/21 |
| Nov 27 - Dec 1 |
Chapter 12 (sections 12.1 - 12.4)
Lecture 18- Review Lecture 19 - Exam 2 Lecture 20 objectives Lecture 21 objectives |
Exam review/catch up
Exam 2, Tuesday, November 28 dynamic memory allocation linked lists |
Lab 5 (Wed 11/29)
Homework 5 (due: Tuesday, 12/5) |
| Dec 4 - 8 | Chapter 12 (sections 12.5 - 12.7)
Lecture 22 objectives Lecture 23 objectives Lecture 24 objectives Lecture 25 objectives |
linked lists
stacks, queues binary trees hash tables |
HW5 due Tuesday, 12/5
Lab 6 (really, lab 5 from last week) (Wed 12/6) Homework 6 (due: Tuesday, 12/12) |
| Dec 11 - 14 |
Lecture 26 objectives Sample Exam 3 (pdf file) Lecture 27 - Review Lecture 28 - Exam 3 |
hash tables
Exam review/ catch up Exam 3, Thursday, Dec 14 |
HW6 due Tuesday, 12/12 |

http://www.cs.wpi.edu/~cs2301/b06/index.html