Outcomes |
Staff & Contact Information | Where
& When | Textbook | Grading
| Policies | Schedule &
Assignments
CS 2301 is intended for
non-computer science majors who are likely to need to write programs in C or
other “low-level” computer languages in their studies at WPI and/or
in their careers in their chosen professions. It is also intended for
non-computer science majors who wish to take upper-level courses in the systems
area of the computer science curriculum.
CS 2301 assumes some prior
programming experience, and it will teach a model of programming where the
language exposes details of how the underlying hardware stores and executes
software. Recommended background and course topics are listed in the WPI
undergraduate catalog course description
Mapping of
course outcomes to CS Department Outcomes
Professor: Hugh C. Lauer (HCL)
Teaching
Assistants:
Senior
Assistant:
Brian Bates (BB)
(Note: TA/SA office hours are held in FL A22 (Fuller sub-basement).
Professor Lauer’s office hours are held in FL 137.)
Day/Time |
10:00 |
11:00 |
12:00 |
1:00 |
2:00 |
3:00 |
4:00 |
5:00 |
6:00 |
7:00 |
8:00 |
9:00 |
10:00 |
Sunday |
|
|
|
|
|
|
|
|
|
|
BB |
|
|
Monday |
|
|
|
HCL |
HCL |
|
|
|
|
|
|
|
|
Tuesday |
|
|
|
|
|
TVS |
TVS |
|
|
|
|
|
|
Wednesday |
|
|
|
|
|
RK |
RK |
TVS |
TVS |
|
|
|
|
Thursday |
|
|
|
HCL |
HCL |
|
|
|
|
BB |
|
|
|
Friday |
|
|
|
|
|
|
RK |
RK |
|
|
|
|
|
Other office hours may be scheduled by
appointment. Please contact cs2301-staff *at* cs.wpi.edu.
A discussion board for CS 2301
has been set up on myWPI
. All students enrolled in the course have access to this discussion board.
You should visit the discussion board and check the Announcements on myWPI on a
daily basis.
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 professor and to the TAs. Include your section number
in all correspondence.
The instructor's email address is lauer in the
domain “cs.wpi.edu”. Please restrict your use of the
professor’s e-mail address to matters of an individual nature. You will
get a quicker response to technical questions if you post them to the class
discussion board.
Lectures meet on
Mondays and Thursdays from 3:00-4:50pm in Goddard Hall 227. There will normally
be a 5 minute break during the lecture.
Labs meet on Wednesdays
according to the following schedule:
Section |
Time |
Location |
TAs |
B01 |
11:00-11:50 am |
|
|
B02 |
1:00-1:50 pm |
Higgins 230 |
|
Textbook (required): Brian Kernighan
and Dennis M. Ritchie, The C Programming Language,
2nd edition, Prentice Hall, 1988.
Note: This
little 20-year-old book is still the best text and reference for the C
language. Most modern C compilers implement the language as described in this
book. Some compilers will implement a few extensions, which will be noted
during the term.
Note: Bring your copy of the book to every class and to every lab session!
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.
Three exams will be given. Exams
are tentatively scheduled for November 13, December 1, and December 18. 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).
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.
Six homework assignments will be
given. Assignments will be due at 11:59 pm on the due date, unless otherwise
specified. No extra credit or makeup homework
assignments will be given.
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). You will not get credit for a
lab unless you attend the section for which you are registered. There are no
makeups for labs.
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.
Please read WPI's Academic Honesty Policy.
Collaboration is strongly
encouraged for labs and in-class group work.
Exams and homework are to be
done individually. You are encouraged to talk with others in a general way
about homework assignments (what approach to take, for example), but any work you submit for grading must be your own.
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.
Late homework will be accepted
within 24 hours of the due date. Each student will be allowed one late
submission without penalty. Beyond that, late homework will incur a 25 point
(out of 100 points) 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 must be submitted using
the turnin program on the
CCC Linux machines. Homework submitted by any other means (paper, CD, email,
etc.) will receive a grade of zero.
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 are implemented in a timely fashion. The DSO
is located in Daniels Hall.
Lecture notes, lab assignments,
and homework assignments will be posted here shortly before each lesson.
Note: the
instructor reserves the right to change the order of topics or the dates of the
exams, if necessary.
Week |
Reading & Lecture Notes |
Topics |
Assignments |
Oct 28-31 |
Course overview Intro to I/O: scanf, printf Numerical data types Compiling and executing C programs |
Lab 1 (Wed, 10/29) |
|
Nov 3-7 |
Chapters 1, 2 and 3 More on Numerical Computation (ppt, html) |
Expressions, assignment operator, operator precedence If-else, while- and for-loops Introduction
to Functions in C |
Homework 1 (doc, htm) due Sun, 11/9 Lab 2 (Wed, 11/5) |
Nov 10-14 |
Chapter 4 Introduction to Functions – continued (ppt, html) Tower of Hanoi example Exam #1:– Thurs., November 13 |
Functions and function headers Pre- and post-conditions Scope, storage class, and function calls Recursive
functions |
Homework
2 (doc, htm) Lab 3 (Wed, 11/12) |
Nov 17-21 |
Chapter 5 Miscellaneous topics (.ppt, html) Pointers and Arrays (.ppt, html) |
Arrays in C Introduction to Pointers in C Strings in C |
Homework
3 (doc, htm) Lab 4 (Wed, 11/17) |
Nov 24-28 |
Chapter 6 |
Structures and Unions |
|
Dec 1-5 |
Exam
#2:– Mon., December 1 Chapter 6 |
Data structure, trees, and lists |
Homework
5 (doc, htm) Lab 5 (Wed. 12/3) |
Dec 8-12 |
Chapter 6 More on Data Structures (.ppt, html) Bitwise Operations and Misc. Topics (.ppt, html) Operating Systems (.ppt, html) |
More on Lists and Trees; introduction to hash tables Bitwise Operations; review of Homework #4 Introduction to Operating Systems |
Lab 6 (Wed. 12/10) |