Course materials

·      Course slides are on-line.

·      Textbooks - See the syllabus

·      All Project assignments are listed online. Due dates will be announced online, in class or via the Course Listserver.

·      Additional work will be assigned in class or via the Course Listserver.

Student Responsibilities

·      Attendance is required

·      In the case of absence from class, find out what was missed. Ask the instructor!

·      All work is due at the specified date and time. It is each student’s responsibility to keep up with the course.(See lateness)

·      Conform to the Academic Honor Code. The Watson School has an Academic Honor Code. It is your responsibility to read and understand it. The procedures for Watson School students apply to all students taking Watson Courses.
Copying ANY materials from ANY source or working to come up with a COMMON solution is unacceptable. These are considered a violation of the Honor Code. You are permitted to work together to PLAN an attack on a problem and to help each other if you are stuck on some syntax or semantic issue, but NOT to just give each other any code.

NOTE: there will be NO incompletes given for any reason. If you miss sufficient work that you cannot catch up, you will have to officially withdraw from the course and take it over.

Programming requirements

The only acceptable environment for programming is the CS supplied systems. That is because,

1.     if you need help, the instructor can log in to your account remotely to see what your code is doing in the actual programming environment

2.     everybody will be using the exact same O/S, compiler and other tools

3.     grading can be consistent


The MINGW and Cygwin environments and their corresponding compilers may require special include-files or library routines that are not fully compatible with other real Linux systems and are therefore unacceptable places to be doing your work.


“Code::Blocks” is not acceptable for building/running code as it is outdated and does not support all the facilities we will use.

Solaris, tablets and Apple systems are also not valid environments.

All Projects MUST be completed to pass the course. Completion means the programs must compile with no compiler messages above the Warning level and must run without severe errors (e.g.; errors that force program termination, such as “segfault”).

Unexcused late work of any kind will receive a zero.

No incompletes will be given, except in cases of validated excuse.

Official documentation is required for all excuses.


There is no written homework (other than programming) for this course.


There will be several programs over the course of the semester. They are not trivial and will require a significant amount of work. Please make an effort to make your programs easy to understand and grade. Grading all assignments in this course is very time consuming! All programming assignments should have:


1.      For the program:

       A general explanation of the design, and why it is correct.

       The code should also be well commented.

       Variable names must be meaningful. Statements such as x=y; are unacceptable, because x & y have no meaning to a reader.

       Incrementing/Decrementing by a constant (like 3) must be replaced with a #define value with a meaningful name

2.      For each function

       A description of the purpose of the function and an explanation of how it works.

       A description of the purpose, and the assumptions made about each parameter of a function.

       A comment for every variable declaration.

Programs must be written in C using the default version of C in the gcc compiler. Make sure your program compiles and runs correctly on OUR SYSTEMS before submitting it.



All course communication will go through Piazza. This ensures I will receive your message. If you email me, I will NOT respond. This helps me keep thing better organized and allows you to get a quicker response. Personal problems must be addressed in person in my office.


       I answer messages Monday through Friday, as often as I can, but not after 8PM.

       I try to respond to most messages within 24 hours. If you do not receive a response from me within a 24 hour period inside of 'business' hours, please send me another message.

       Unless communication is added to Piazza, it is not 'official'. If I discuss something with you after class, walking around campus, or on the phone you must send me a summary of our discussion via piazza for it to count. Otherwise, there is an excellent chance I won’t remember it.


Lectures and Classroom Examples

A link to the Lecture Notes for each topic will be posted under the resources tab on the resources page in Piazza after the topic is complete. Take notes in class, then compare with the lecture notes to ensure you understand the concepts presented. Lecture notes do not substitute for class attendance, since

(i)               the notes will not be complete and

(ii)             significant parts of lectures, including discussions and in-class exercises, may not come from the lecture slides.


I will not post classwork, examples or sample exams online. Classroom exercises are to be worked through in class with guidance. It is not meant to be homework. Likewise, classroom examples are created or edited on the fly and not saved. Classroom examples are meant to give you a direction or help with a concept, not to create production level (or even working) code in class. Classroom examples will often be done in pseudocode and thus are not guaranteed to compile.

Attendance and Professional Accountability

Most lectures will include classroom work. Occasionally (about once a week), there will be a short quiz on a classroom exercise. These quizzes will be open note, so if you are in class, you need only copy down your answer. Although there is no formal attendance policy, you cannot make up the professional accountability quizzes for any reason unless arranged with me prior to the quiz. All absences require FORMAL proof of the need for absence. See excuses


You can miss up to 2 quizzes without penalty. After missing 2, you will begin to lose points for your professional accountability grade. 100 points per missed quiz. No makeups without a valid excuse (see paragraph above).


Exams & quizzes


       No electronics of any kind. No laptop, cell-phone, tablet, digital watch, etc.

       Exams are closed book, closed notes. Quizzes may be closed- or open-book. If open-book, you may use your laptop.

       You must speak with me beforehand if you are going to miss an exam. If you fail to show up, you cannot take the test later.

Midterm and final exam dates: TBD


All grades in the following table are AFTER any curving.

Grade scale











Grade content





Midterm Exam


Final Exam


Grade Requirements

SOME grades might be curved, NONE will be dropped. An average grade of 70% on the programs is required to pass the course. The overall course grade must be 60 or above. All Programs must be submitted and EACH must receive a grade of 50% or better. No exceptions.

See the syllabus for more information about the course content.

Grade Disputes

You have up to two weeks after a grade for an assignment or test has been posted to dispute your grade. After two weeks we will not review the grade.