Course Information

Be sure to read all of this page!


Description

This course will have two basic goals:

  1. Examine, in some depth, the topic and underlying concepts of object oriented programming (OOP).
  2. More thoroughly develop algorithmic problem solving skills and the ability to express solutions through programming.

Object orientation provides another layer of abstraction beyond the creation of procedures (a.k.a. functions or methods). It not only allows you to define new kinds of data (beyond the primitive types such as int, char, float, etc.), but also to define the methods that operate on that type of data. From this basic idea comes a number of ways to extend and refine known data types, encouraging the creation well-encapsulated solutions.

We will be discussing OOP, and then using the concepts that we learn to solve increasingly complex problems, programming the solutions through well structured code. We will do the majority of our work using Java. Although there is an initial review of basic procedure programming techniques, that review will rely on the assumption of a familiarity with Java. Near the end of the semester, we will use C++ to explore some OOP concepts that are not available in Java. However, we will assume no previous knowledge of C++ when beginning this work.

The basic topics are given below, roughly in the order that will we cover them:


Lectures, labs, and materials

We will meet three times per week for a 50 minutes each. The class lectures are WF at 1 pm in SMudd 205, and the lab is M at 1 pm in SMudd 014. Note that sometimes we will vary the use of labs and lectures in a given week -- watch the course annoucements for such changes.

You are responsible for the material presented in every lecture. There is no attendance policy, but I strongly recommend that you attend all lectures. If you miss one, it is your responsibility to obtain the material that you missed.

The optional text for this course will be Java By Dissection by Pohl and McDowell. It should be available at the Jeffery Amherst College Store. This book will serve as a reference and reinforcement for the much of the material covered in lectures, but there will be no assigned readings or problems from the book.


Labs projects and written assignments

There will be two types of homework:

  1. Lab projects: Each week, there will be a programming assignment on which you will begin work during the lab period. Typically, you will have two weeks to complete the work. Some labs will be more subtantial than others. There will be a focus not only on solving the problem, but solving it well and expressing your solution clearly.
  2. Written assignments: On occassion, there will also be short, non-programming, written assignments. These assignments will cover material not easily addressed in programming assignments, and will give you a sense of the form that exam questions will take.

Exams

There will be three exams:

  1. Mid-term #1 will be a 50 minute exam during a regular lecture or lab time during the 5th week of the semester.
  2. Mid-term #2 will be a 50 minute exam during a regular lecture or lab time during the 10th week of the semester.
  3. The final examination will be 3 hours. It is scheduled for Thursday, May 13th, at 2:00 pm in SMudd 207.

The exams will cover material that is covered in lectures but not in projects. The time and place for the exam will be annouced when it has been scheduled for the final exam period.


Grading

Your grade for this course will be calculated based on the following forumla:

Note first that although the lab projects will likely take much more of your time and effort, both labs and exams count substantially toward your final grade. Also note that there are no participation points. This absence is not at all a recommendation that you sit quietly. To the contrary, I highly recommend that you participate in class, not because it earns you points, but because it is the best way to ensure that you are on top of the material and understand it well.


Late submission

A project not submitted by its deadline will receive a failing grade.

If you need an extension, you must submit a written request for that extension at least 72 hours before the deadline. Exceptions will be made on a case by case basis for illness or emergency situations.

This class will move from one project to another too quickly for late submission to be regularly handled. I will seek to grade and return your work to you quickly, and that will be possible only if all submissions are provided by the given deadlines. Those deadlines will always be explicitly and clearly stated.


Your responsibilities and my availability

I hope that this page has made clear the structure and intent of the course, and well as the expected workload and your responsibilities. By presenting this information at the onset, I hope to avoid using our valuable time on misunderstandings and negotiations.

I will be available to meet with you about the material, projects, exams, lectures, or any other aspect of the course. Simply email me and we will set a time to meet as soon as possible. You can also try to find me in my office (SMudd 406) or the Faculty Research Lab (SMudd 015).


Scott F. Kaplan
Last modified: Tue Jan 27 15:27:04 EST 2004