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
Mapping of course outcomes to CS Department Outcomes
Instructor: Glynis Hamel (GH)
Teaching Assistants: Hao Wan (HW), Dazhi "Jason" Zhang (DZ)
Senior Assistants: Jian Mao (JM), Joanne Zhang (JZ)
(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 | DZ | HW | JM | JZ | ||||||
Tuesday | DZ | DZ | GH |   | |||||||
Wednesday | HW | JZ | JZ | ||||||||
Thursday | HW | JM | JM | ||||||||
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 | SAs |
B01 | 2:00 - 2:50pm | HL 230 | Jian, Joanne |
B02 | 3:00-3:50pm | HL 230 | Jian, Joanne |
Textbook, Software, and Authors' Website
Textbook
(required): Kernighan, Brian W. and Dennis M. Ritchie, The C Programming
Language, second edition, Prentice Hall, 1988
(recommended; a copy will be placed on reserve at the library): Deitel, H. M., and P. J. Deitel, C How to Program, 6th edition, Prentice Hall, 2007.
Software: Most assignments and classroom demonstrations will be done on CCC machines running Linux. Windows workstations in the public computer labs on campus include the PuTTY program and X-Win server to provide interactive access to the CCC computers. You will be given instructions on how to use the Linux tools (compiler, debugger, make utility) during the lab sessions. The last lab and homework assignments will be done using the Visual Studio IDE.
Exams are closed-book, closed-notes. You may bring in one sheet of notes (one paper, 8.5in x 11.5in, 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.
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 | Handouts | Assignments
|
Oct 25 - 28 |
Chapters 1-3, 7.2, 7.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 |
Lecture 1 handout
Lecture 2 handout Lecture 3 handout (1) Lecture 3 handout (2) |
Lab 1 (Wed, 10/26)
Homework 1 (due: Tuesday, 11/1) |
Oct 31 - Nov 4 | Chapter 4, 7.8.6
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 (1) Lecture 5 handout (2) Lecture 6 handout (1) Lecture 6 handout (2) Lecture 6 handout (3) Lecture 7 handout(1) Lecture 7 handout(2) |
Lab 2 (Wed, 11/2) Homework 2 (due: Tuesday, 11/8) |
Nov 7 - 11 |
Sections 5.1 - 5.4 Lecture 8 objectives Lecture 9 - Review Lecture 10 - Exam 1 Lecture 11 objectives |
pointers
Exam review/catch up Exam 1, Thursday, November 10 simulating call-by-reference with pointers pointer arithmetic pointers and arrays |
Sample Exam 1 (.pdf file) Lecture 8 handout(1) Lecture 8 handout(2) |
Lab 3 (Wed 11/9) Homework 3 (due: Tuesday, 11/15) |
Nov 14 - 18 |
Sections 5.5 - 5.6, 7.8.1 - 7.8.2, 6.1 - 6.4
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
Lecture 14 handout(1) Lecture 14 handout(2) Lecture 14 handout(3) Lecture 14 handout(4) Lecture 15 handout(1) Lecture 15 handout(2) |
Lab 4 (Wed 11/16) Homework 4 (due: Tuesday, 11/22) |
Nov 21 - 22 | Section 7.8.5
Lecture 16 objectives Lecture 17 objectives Thanksgiving break |
dynamic memory and linked lists
queues |
Lecture 16 handout
Professor Lauer's PP slides on Queues Sample Exam 2 |
Homework 5 (due: Tuesday, 12/6) |
Nov 28 - Dec 2 |
Sections 7.5 - 7.7, 6.5,
Appendix B.1.5, B.1.6
Lecture 18 objectives Lecture 19 - Exam 2 Lecture 20 objectives Lecture 21 objectives |
more linked lists
Exam 2, Tuesday, November 29 trees file processing |
Lecture 21 handout (1)
Lecture 21 handout (2) Lecture 21 handout (3) Lecture 21 handout (4) |
Lab 5 (.docx file) (Wed 11/30) |
Dec 5 - 9 | Sections 5.7 - 5.10, 6.6 - 6.9
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 23 handout |
Lab 6 (Wed 12/7) Homework 6 (due: Tuesday, 12/13) |
Dec 12 - 15 |
Lecture 26 objectives Lecture 27 - Review Lecture 28 - Exam 3 |
hash tables
Exam review/ catch up Exam 3, Thursday, Dec 15 |
Sample Exam 3 |
http://www.cs.wpi.edu/~cs2301/b11/index.html