Course Policies

Academic Honesty

The university, college, and department policies against academic dishonesty will be strictly enforced. You may obtain copies of the NCSU Code of Student Conduct from the Office of Student Conduct.

Unless otherwise specified, every gradable part of the course requires individual work. Where collaboration is permitted, students may discuss problems with each other, but the solutions must still reflect their individual understanding. All kinds of collusion will be subject to disciplinary action. Students must acknowledge sources such as books (other than the textbook) and old assignments. Unacknowledged use of any such material is subject to disciplinary action. Any attempts to circumvent computing system security or interfere with others' work will also be subject to disciplinary action.


Homework and project deadlines will be hard. Late homeworks will be accepted with a 10% reduction in grade for each class period they are late by. However, once a homework is discussed in class, submissions will no longer be accepted. Late project assignments will be accepted only under exceptional circumstances. All assignments must be turned in before the start of class on the due date.

Mailing List

Students are responsible for getting on the official course mailing list, and for monitoring their email for any course-related announcements. I send a test message early in the semester; contact the TA if you don't receive it. You will be added or deleted from the mailing list automatically based on your registration status for the course. The TA can insert and remove additional addresses, but neither the TA nor the instructor can remove your eos address from a mailing list. You can set your preferred address from I am told it allows only one forwarding address per student.


In the interest of giving everyone a fair chance, I try to post answers to all questions on the course mailing list. These include questions asked privately or by email.

Exam Instructions

You may leave at any time till 15 minutes before closing. After that please remain seated so as not to distract others. The exams are closed-book. However, a one-page (i.e., one-side) crib sheet (plus the crib sheets for previous tests, if any in the same class) may be used. Crib sheets may not be shared. Collusion or cheating of any form are forbidden. You can be asked to explain your solutions verbally. I never ask any trick questions. Feel free to make additional assumptions, but be prepared to justify them. You can get partial credit for an English description.

Homework Instructions

The homework problems are marked independent or collaborative. You have to take care not to discuss the former with anyone. For the latter, you are encouraged to form teams of 1-3 members (of students in this class). The teams can change over the semester. After discussing the problem, please write up your answers individually. On your answer sheet, list the names of the other members in your team, if any.

Project Instructions

The projects are meant to be carried out on NCSU computing facilities. A demo may be required. Also, the software produced should be compilable and executable on NCSU machines. If you wish to use off-campus resources, you may do so, but only with explicit prior approval. Approval usually requires that (a) there is no inconvenience to the other members of your team, (b) that you are willing and able to manage without any support from NCSU staff, and (c) willing and able to assist in evaluating your work, e.g., by connecting to the off-campus site or by transporting equipment to campus.

Often, a project requires teamwork. Project teams ought not change over the semester. However, a change may be allowed for a good reason. Each member of the team is expected to work hard. Team-members are encouraged to resolve technical differences through discussion. However, if some member is not working satisfactorily, complaints from the other members will be entertained, possibly leading to a reduction in credit for the person not working satisfactorily.


I expect good attendance. If you miss a class it is your responsibility to make up. If you miss an exam, please supply official documentation in order to get credit. For anticipated absences, I will give an exam prior to the date for the rest of the exam. For unanticipated absences, I will prorate your scores on the other exams. You should review the official Attendance Regulations (

Audit Requirements

Prerequisites are waived for enrollment as an audit student. Audit requirements for all my courses are 50% attendance and a grade of C or better in any exam. Projects by auditing students are not graded and not considered equivalent to an exam.

Grading Philosophy

My exams involve more than a rote repetition of the course material, so that differences in grades reflect differences in understanding. Scores would generally not be clustered at the top. Thus if a good student does poorly on one exam, they can easily catch up in other exams. If scores were uniformly high, you could never recover from a minor mistake. For this reason, even a relatively low score in the exams may translate into a high grade, depending of course on other performance.

Grade Assignment

The weights of different components of the course are specified in the course description. I generally assign nominal grades based on the total score. However, I also look at the whole record to decide if a student merits a better grade than the nominal one. Specifically, I consider the score in the exams seriously in moving students to a better grade.