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 may 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 most critical topics are listed below, given roughly in the order that will we cover them. Note that we may not cover all of them, most likely excluding some of those on the end. Also note that there may be a few additional topics that I forgot to list, so don't consider the following to be comprehensive.


Lectures, labs, and materials

We will meet three times per week for a 50 minutes each. The meetings are at MWF at 1 pm in SMudd 207. Note that two of these meetings will be lectures, and the third will be used as laboratory time.

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 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.


Labs, programming projects, and written assignments

There will be a variety of types of homework.

  1. Labs: Each week, there will be a smaller programming assignment on which you will begin work during the lab period. These labs will be used to cover material from that week of lectures.
  2. Projects: There will be four larger programming projects, each of which will require two or three weeks of work. These will not only require you to tie together a larger number of topics from lectures, but also to solve larger-scale problems, expressing your solutions programmatically.
  3. 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 Monday, December 15th, at 2:00 pm.

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 programming projects will likely take a good deal of time, both the projects and exams count most 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 for many 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 (new!) Faculty Research Lab (SMudd 015).


Scott F. Kaplan
Last modified: Mon Oct 27 14:52:41 EST 2003