CSci 151: Foundations of computer science II
Home Syllabus Assignments Tests

Instructor Dr. Carl Burch
burch at grendel dot hendrix dot e d u
450-1377 (office); 548-0036 (home)
Office MCRey 310
T 2:40-3:30, RF 10:10-11:00, R 3:40-4:30
drop-ins, appointments always welcome

This course address the issue of large-scale computation. By the end of this course, you should be able to:

  • describe when the List, Map, Set, PriorityQueue, Stack, and Queue ADTs are useful
  • describe and implement good data structures for each of these ADTs, including array, list, tree, and hash table implementations when appropriate.
  • analyze algorithm efficiency using Big-O notation.
  • analyze program correctness using preconditions, postconditions, and invariants.
  • be proficient with combining a large number of classes into a single program.

I have written a set of notes in the form of a textbook. It can be found at

If you haven't already, you might consider acquiring a good Java reference book. This will be useful for both this course and future courses. I recommend Peter van der Linden's Just Java 2 (Sun Microsystems Press, 2004). Written for working programmers, it isn't priced like a textbook ($36).

Web page


There are a total of 1,000 points over the semester. Letter grades will be assigned with cutoffs at 900 for an A, 800 for B, 700 for C, and 600 for D.

Class attendance/participation 60 pts
Assignments (variable credit) 360 pts
Project 150 pts
Quizzes (four, 30 pts each) 120 pts
Exams (two, 80 pts each) 160 pts
Final 150 pts
TOTAL 1,000 pts

I reserve the right to make adjustments in the entire grading scheme or in particular cases.

While I do not have a specific goal about the assigned grades, the grades I assign tend to average around 3.0. Note that I do not normally curve grades at the end of the course; instead, I monitor your progress and perform any curves as I grade tests. When I curve test scores, I add a fixed amount to all scores; as a result, some test scores may end up being above 100%. I anticipate, but will not insist, that the median test score will be around 75%. Normally, scores in the non-test categories will be higher; the average class grade will likely be a B even though the average test grade is a C.


Several points are designated for class participation. I will assign half of these points near the semester's middle, and the other half near the semester's end.

I do monitor your class attendance. If your attendance is excellent (missing one or fewer classes each half-semester), you will receive at least 60% of these attendance/participation points. If you feel your absence should be excused, please warn me about the absence a day in advance. Whether I excuse your absence is my call.

The remaining 40% of these points are for participation, including both questions during class and responses to questions during class. I may give more than full credit in unusual circumstances. Take this as an invitation: I value your active participation in class, and I expect you to show evidence of being fully tuned in during class sessions.


Normally, an assignment will be posted on the course Web page each Friday, and it will be due the following Friday. For each 24-hour period after the time due, I will deduct up to 10% of the points possible.

Until otherwise specified, feel free to work with one other student on each problem; in this case, you should jointly submit a single solution. But you should not work with the same student on more than 8 assignments. I reserve the right to change this policy, individually or collectively, at any time.

You may also ask occassional questions of classmates when you need help. Under no circumstances should I receive two copies of identical or near-identical solutions.

You will receive an account on our Linux laboratory computers. (Note our Linux network policies.) If your program solutions don't work on these computers, then your program has failed. If you prefer, you may complete your assignments on your own computer; and it's unlikely that you'll run into compatibility problems with the Linux computers.


There will an individual programming project to be completed during the latter half of the course. There will be some constraints on the nature of this project, but you will have a lot of latitude in its design.

Throughout the final half of the course, you will be responsible for periodic progress reports (one-on-one meetings with me), culminating in demonstration of your program at the department's Project Day, which will likely be the Reading Day preceding finals period, Tuesday, December 9. Your grade will be based on the impressiveness of your program, the quality of its user interface, the cleanness of your final code, your consistent progress throughout the time allotted, and the quality of your demo session.


The scheduled days for quizzes and exams, listed below, will likely not change.

Wed 10 SepQuiz 1
Wed 24 SepExam 1
Wed 8 OctQuiz 2
Wed 22 OctQuiz 3
Wed 5 NovExam 2
Wed 19 NovQuiz 4
Mon 15 DecFinal, 9:00am

Quizzes will typically be 25 minutes in length, and exams usually 50 minutes, but that's not a guarantee.

If you miss a test, you must receive advance permission from me to receive more than a 0. (Dire medical emergencies usually constitute an exception.) If you are excused from the test, I will either double your lowest quiz or exam score or administer a make-up, at my discretion. Let me know well in advance — 24 hours for exams and quizzes, and two weeks for the final. I would like to remind you that, when e-mail is impossible, telephones exist also. Do not skip a test without my prior approval!

Note that I may require you to document your reason for absence. Travel arrangements and work schedules are not adequate reasons to miss a test.


You must properly attribute any work or ideas you use in assignments for this course which are quoted or derived from others. Plagiarism includes not only copying the ideas and the written and spoken words of others, but also copying or otherwise appropriating their computer files as well. Interfering with the work of others is also a serious academic offense. I will abide by the catalog's Academic Honesty policy in referring cases to the college's Committee on Academic Integrity.

Discussing or viewing others' solutions to assignments is officially out of bounds, as is discussing or showing your own solution to others. In practice, I realize, you may help other students; this presents a problem only when the solution you submit is substantially similar to another student's. A strong correlation between your solution and a classmate's solution constitutes evidence of cheating.

Office hours

Feel free to stop by my office any time you want to talk about something related to the class. I do have office hours listed on the Web page, but they are not intended to limit you. The office hours represent when I will try to be available in my office, but I'm equally available at all times that my office door is open. I'm also happy to arrange appointments.

If you're not in the building, feel free to telephone my office. And if I'm not in my office, you can send e-mail. But please try to contact me directly before e-mail: E-mail is much less efficient.


Most Hendrix students intuitively know the appropriate bounds for behavior in class. But: Cellphone use is prohibited during class, even if calls are received outside the classroom, and even if it is only text-messaging. Use of laptops is restricted to activities directly related to what is currently being discussed; I reserve the right to prohibit them if I feel this policy is being abused.

Any inappropriate use of electronic devices (or of reading materials) is worse than an absence, since it distracts other students. It will count accordingly in the attendance/participation policy; you could potentially receive a negative score.

On tests, no electronic devices other than a simple watch are permitted.


It is the policy of Hendrix College to accommodate students with disabilities, pursuant to federal and state law. Any student who needs accommodation in relation to a recognized disability should inform the instructor at the beginning of the course. In order to receive accommodations, students with disabilities are required to contact Julie Brown in Academic Support Services at 505-2954.