CSCI 1321 (Principles of Algorithm Design II), Spring 2010:

Course description

This course is the second course for computer science majors, following the guidelines established by the Association for Computing Machinery (most recently described in Computing Curricula 2001). It builds on the material of the first course, but with more emphasis on the object-oriented paradigm. This course also partially satisfies the common-curriculum requirement Understanding Natural Science and Technology.

Course goals

Course topics

Basic information

Class meeting times and location


Instructor contact information

Office hours

Scheduled office hours for this semester are as follows:

These times are subject to change; a current schedule will be available on my Web page and outside my office door.

If I'm not in my office, I should be somewhere in the building (perhaps in one of the labs helping another student), and there will often be a note on my door saying where to find me.

Some office hours will be held in one of the classrooms/labs (times to be announced soon). These are ``open lab'' times, during which I'll be in one of the department's labs, prepared to answer questions. The intent is that students can use these times to work on assignments with someone available to help with any questions or problems.

In addition to scheduled office hours, you're welcome to drop by and see if I'm in my office and free to talk, or you can make an appointment by calling me or sending me e-mail.

E-mail is almost always a good way to reach me; I normally check it fairly often and reply promptly.

Course materials


This semester there is no textbook to buy; we will be using a book being written by Dr. Lewis, available online (linked from the course Web pages).

Web page

Most course-related information (this syllabus, homework and reading assignments, etc.) will be made available via the Web. The course Web page is a starting point for Web-accessible course material; you can find it linked from my home page ( or directly at

Other references

There are many, many other books on Java and object-oriented programming and design available; two that may be of interest are listed below. However, there are also many online resources, which together with the textbook will probably be sufficient for this semester and perhaps beyond. In deciding whether to buy additional books you should probably keep in mind that Java continues to evolve, so books become outdated more rapidly than with a more stable language.

Course requirements


Grades in this course will be determined by the results of two major exams (a midterm and a final), several in-class quizzes, several homework assignments, and class participation, weighted as follows.

Component Maximum points
Midterm exam 100
Final exam 200
Quizzes 50
Homework about 500
Class participation 50

Numeric grades will be calculated as a simple percentage, by dividing total points earned on the above components by total points possible. These numeric grades will then be converted to letter grades based on a curve, but in no case will the resulting letter grades be worse than students would receive based on the following scheme.

Numeric grade Letter grade
90 - 100 A-/A
80 - 89 B-/B/B+
70 - 79 C-/C/C+
60 - 69 D/D+
0 - 59 F


Exams are comprehensive but will emphasize the most recent material. They are scheduled as follows; please plan accordingly (i.e., avoid scheduling anything else for these times).


About every other week there will be a short in-class quiz. Dates will be announced via the course Web page. They will usually cover material from recent classes and reading; the questions will be similar in format to those you are likely to see on the major exams. There will be about six quizzes over the course of the semester, and the lowest grade will be dropped.

Homework assignments

Homework (in the form of programming assignments) is a crucial part of this course; much of what you learn will likely be learned in the course of completing the programming assignments. For this course, the assignments will all be based around a single problem. Each assignment will require you to produce a solution to a specific part of the problem so that all can be used together in the end for a single application. Detailed requirements will be provided as part of each assignment; due dates will be announced via the course Web page. You are encouraged to use the department's network of Linux machines, but unless otherwise specified for individual assignments, you may use any other system that provides a suitable environment.


Regular class attendance is strongly encouraged; class participation grades will be based largely on attendance.


Course-related announcements will sometimes be made by sending e-mail to the Trinity e-mail addresses of all registered students. Students are strongly encouraged to read mail sent to their Trinity addresses frequently.

Late and missed work

Exams can be made up only in cases of documented conflict with a university-sponsored activity, documented medical emergency, or conflict with a religious holiday. Quizzes cannot be made up, but the lowest quiz score will be dropped, so you can miss one quiz without penalty.

Unless otherwise stated for a particular assignment, homework will be accepted up to one class period late, but no more, at a penalty of 10 percent off per working day. This penalty may be waived or additional time allowed at the instructor's discretion in cases of illness or conflict with a university-sponsored activity or religious holiday.

If you have unusual circumstances (as we all sometimes do), please discuss these with me as far in advance as possible.

Academic integrity at Trinity

All students are covered by the Trinity University Honor Code, which prohibits dishonesty in academic work.

The Code asserts that the academic community is based on honesty and trust, and defines specific violations as well as the procedure to determine if a violation has occurred. The Code also covers the process of hearings for alleged violations and the various sanctions applied for specific violations. The Code also provides for an appeal process.

The Code is implemented by the Academic Honor Council. Under the Code, a faculty member will (or a student may) report an alleged violation to the Academic Honor Council. It is the task of the Council to collect the pertinent evidence, adjudicate, and assign a sanction within certain guidelines if a violation has been verified.

Students who are under the Honor Code are required to pledge all written work that is submitted for a grade: ``On my honor, I have neither given nor received any unauthorized assistance on this work'' and their signature. The pledge may be abbreviated ``pledged'' with a signature.

The specifics of the Honor Code, its underlying philosophy, and the norms for sanctioning can all be found on the Academic Honor Council website, accessed through the Trinity Homepage, or directly here.

Collaboration and academic integrity in this course

Unless otherwise specified, all work submitted for a grade (homework assignments, quizzes, and exams) must represent the student's own individual effort. Unless otherwise stated, all submitted work will be considered pledged work.

Discussion of homework assignments among students is encouraged, but not to the point where detailed answers are being written collectively. Graded papers and sample solutions from previous years (exams, quizzes, and homeworks) are off limits. Answers that are identical beyond coincidence (either to another student's work or to a sample solution from a previous year) will be considered to be in violation of the Honor Code, and will result in appropriate action. You are responsible for the security of your work, both electronic and hard copy.

Berna Massingill