banner

cs_banner
horizontal_line

 

CS 2301 B Term 2008
Systems Programming for Non-Majors

Outcomes | Staff & Contact Information | Where & When | Textbook | Grading | Policies | Schedule & Assignments


 

What this course is about

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

Course Outcomes

    • Be able to design, implement, test, debug, and document programs in C
    • Understand how a program in a procedural language transforms data by changing the contents of memory cells
    • Be able to program with pointers and perform pointer arithmetic
    • Be able to write programs that perform manual memory management
    • Understand how the stack is used to implement function calls
    • Understand low-level input and output routines
    • Use Unix commands to manage files and develop programs

Mapping of course outcomes to CS Department Outcomes


Staff

Professor: Hugh C. Lauer (HCL)

Teaching Assistants: Rabin Karki (RK), Thangam Vedagiri Seenivasan (TVS)

Senior Assistant: Brian Bates (BB)

Office Hour Schedule

(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.

Announcements, Class Discussion Board and Email

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.


Lecture and Lab Times

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

Salisbury 123

 

B02

1:00-1:50 pm

Higgins 230

 


Textbook and Software

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.


Grading

Exams (60%)

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.

Homework (30%)

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 and In-class Group Work (10%)

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.


Academic Honesty Policy

Please read WPI's Academic Honesty Policy.

Labs and In-class group work

Collaboration is strongly encouraged for labs and in-class group work.

Exams and Homework

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

    • two or more students write the solution or part of the solution to a homework assignment together
    • all or part of a solution to a homework assignment is copied from another student (with or without that other student's consent)
    • all or part of a solution to a homework assignment is copied from a book, journal, or website
    • providing all or part of a solution to a homework assignment to another student

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 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 Submission Policy

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

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.


Schedule

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

Chapters 1.1, 1.2, 2
Introduction (ppt html)

Numeric Computation in C (ppt html)

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)

Loops and Conditionals (ppt, html)

Introduction to Functions (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)

More on Functions (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)
due Sun, 11/16

Lab 3 (Wed, 11/12)

Nov 17-21

Chapter 5

Miscellaneous topics (.ppt, html)

Pointers and Arrays (.ppt, html)

More Misc. Topics (.ppt, html)

Strings, arrays, and pointers (.ppt, html)

Arrays in C

Introduction to Pointers in C

Strings in C

Homework 3 (doc, htm)
due Sun, 11/23

Lab 4 (Wed, 11/17)

Nov 24-28

Chapter 6

Structures and Unions (.ppt, html)

Structures and Unions

Homework 4 (doc, htm; slides ppt, htm)
due Fri, 12/5

Dec 1-5

Exam #2:– Mon., December 1

Chapter 6

Lists and Trees (.ppt, html)

Data structure, trees, and lists

Homework 5 (doc, htm)
slides (ppt, htm)
due Sun, 12/14

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)

Operating Systems (continued) (.ppt, html)

Review Topics (.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)