No announcements

MW 4:00-5:15 Room SY 001



c212, and corequisite C241; or consent of instructor.


Geoffrey Brown (Professor)
Office Hours: Thursday 1:00-2:30, Lindley 330B
Office address: Lindley Hall 330B
Indiana University, Bloomington IN, 47405 USA
Office phone: 812-855-4207
Department fax: 812-855-4807

Michael D. Adams (Associate Instructor)
Office Hours: Tuesday 2:30-4:00, Lindley 401E
Office Address: Lindley Hall 401E
Indiana University, Bloomington IN, 47405 USA

Carlo Angiuli (Undergraduate Instructor)
Office Hours: Wednesday 2:20-3:45, Lindley 330



Foundations of Computer Science (C edition) Available for FREE Link

  • Alfred V. Aho
  • Jeffrey D Ullman

The Algorithm Design Manual Available for FREE (login from campus) Link

  • Steven S. Skiena

Recommended (C Programming)

  • The classic is Kernighan and Ritchie, The C Programming Language, Upper Saddle River, NJ: Prentice Hall PTR, 2nd edition (1988).
  • However, this one is terser but will be a longer-lived reference (includes C99): Samuel P. Harbison, III, and Guy L. Steele, Jr. C, A Reference Manual, Fifth Edition, Upper Saddle River, NJ: Prentice Hall, Fifth Edition (2002).


Attendance at lectures is required. Attendance will be taken and considered in your grade.


In conversations I have had with various employers I've learned that they value teamwork skills highly.

A good partner is one who is accessible for meetings, comes prepared, and participates fully in the process. I've known "strong" students who are lousy partners and "weak" students who are excellent partners.

You may work with anybody in the class for homework, but you must make clear who you work with. Furthermore, you are responsible for turning in your own homework.


Grades are calculated as follows:

  • Programs 35%
  • Midterm 15%
  • Final 25%
  • Homework 25%


Anyone missing more than 3 classes will receive 1/3 grade reduction (e.g. A- to B+) for each class missed after the 3rd.

Quizzes and Exams

There will be one 75-minute midterm test, and a two-hour final exam. Many questions are subjective (written paragraphs, code).

  • Midterm: March 3 in class
  • Final:

Excused Absences

Late assignments will be accepted only under the conditions similar to what could justify an Incomplete. All grades become final one week after the material is returned to you. If there is a foreseeable medical, personal, or professional reason requiring you to miss a lab or a test, notify us in advance and get written agreement from the instructor.


You will be given regular assignments -- each problem may have a different due date. You are responsible for checking the course web page for assignments. Your homework problems must be submitted in class on the due date. You will not be allowed to submit homework for others and you will not be allowed late homework except for documented absences due to illness, family emergency, or other university sanctioned reasons. In addition to paper copies of your homework, any programs should be submitted through vincent (see below under links).

Academic Integrity

Read the Computer Science Department's Statement on Academic Integrity to be sure you understand the rules under which computer science courses operate.


The last day to drop a course with an automatic W is Wednesday, March 10. After that date, a student may withdraw only with the permission of the Dean. This approval is normally given only for urgent reasons related to extended illness or equivalent distress.

Incomplete Grade

An Incomplete (I) final grade will be given only by prior arrangement in exceptional circumstances conforming to university and departmental policy, in which there has been some emergency late in the semester that interferes with your successful completion of the course and course work has been completed in passing fashion until the emergency.


Vincent : Use for submitting programs