Computer Science 157
Course Objectives, Assignments, and Grading Policies

Course Objectives.  The goal of this class is learning problem solving techniques using a computer language.   The most important computer science concepts in this course are program design and abstraction.   You will be able to write, use, and read programs which are built using Java classes.

Language and Compilers.  The programming language to learn is Java;  we use BlueJ, a Java development environment, coupled with the Java Software Development Kit, version 1.8, available free from Oracle. The lab computers run Ubuntu, a distribution of the Linux operating system. Most if not all code you produce this semester should run on Windows and Macintosh computers as long as the same libraries are available.

Class Web Pages. The syllabus, policies, lab exercises, homework, and sample code are/will posted online at

Attendance.  Students are allowed up to two unexcused absence per semester.  Subsequent absences, if unexcused, may be reported to the Office of the Dean of Students, which will then issue a cut warning.  A student with too many such absences may be dropped from the course.

Reading AssignmentsRead the sections of the textbook as assigned.  While doing the reading, I encourage you to look at the exercises and problem statements at the end of each section and chapter. Be sure to ask questions about what you don't readily understand.

There is a whole bookshelf of useful material on the Java language (there is also much useless material), especially on the Internet.  Much of it is geared to industrial applications and is too advanced for this class. If you feel the need for supplementary material, just ask and I'll help you find something suitable.

Homework Assignments
.  A
ssignments are graded out of 40 points.  There will likely be 10 assignments.  Late assignments are docked 4 points per day late.  Note that no assignment more than 4 days late will be accepted for grading.

Students may discuss ideas for solving an assignment among themselves. However, each assignment must be your own work unless collaboration is specifically allowed in the assignment. When in doubt: discuss ideas in English, not in Java. Turning in any portion of work written by another is an Honor Code violation and grounds for disciplinary action as allowed by University policy.

Laboratory Exercises.  Lab section meets each Thursday afternoon. There are 13 labs scheduled; we drop one lab grade per semester. The purpose of lab is to practice using the concepts being introduced in lecture and the textbook.   Lab policies will be explained at the beginning of the first lab session.  Since programming can only be learned well by actually doing it, attendance in lab is more important even than in lecture.

Exams, Quizzes, and the Final Exam.  Quizzes and exams are given during class time.  There are two in-class exams and a variable number of quizzes over the reading.  Anyone missing a quiz/exam must present me a documented excuse explaining their absence, preferably in advance, if they are to make it up. The Final Exam is scheduled by the registrar during the last week of the semester; see the syllabus for your final exam time.

Grading.  Grades are assigned according to a method whereby the mean of the top 10% of the class scores are used to determine the cutoff points for each letter grade;  in this way, final scores are based on the performance of the class as a whole.  The instructor reserves the right to move grades up or down in the distribution based on factors such as attendance, improved (or not) scores through the quarter, etc.

Stephen P. Carl