Course Information

Be sure to read all of this page!


Description

A computer can carry out operations that you request at amazing speeds. The trick is learning how to instruct the machine to do your bidding. However, that is the easy part of the trick: Learning a language (in this case, Java) by which you can instruct the machine is only a side-effect of this course. The more difficult part of the trick, and the one on which the course will focus, is determining which operations you want the machine to perform!

Given a particular problem that you want to solve, you first need to devise a solution. Then, you need to devise a sequence of operations that will carry out that solution -- that is, an algorithm. Only then can you express that algorithm as a computer program. In this course, we will tackle increasingly difficult problems for which we can create programmable solutions.

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 MW at 11 am in SMudd 207, and the lab is F at 11 am in SMudd 014. Note that sometimes we will vary the use of labs and lectures in a given week -- watch the course annoucements on the course home page for such changes.

You are responsible for the material presented in every lecture and lab. 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.

As a text, we will use a book-in-development by Prof. Lyle McGeoch. The chapters of this book will be posted on the class web pages as the semester progresses.


Labs and projects

There will be two types of assignments:

  1. Labs: Each week, there will be a programming assignment on which you will begin work during the lab period. Typically, you will have one week to complete each lab. These labs will focus on material from the most recent lectures.
  2. Projects: There will be four larger programming assignments throughout the semester. You will have two to three weeks to complete each of these, and they will require that you employ a larger group of strategies covered during the lectures and labs.

Exams

There will be three written 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. When it is scheduled, the time and location will be posted here.

Grading

About the unorthodox grading policy: Grades are curious things that we misuse to carry far more information than they comfortably can. They are meant to be a method by which I can tell you what I think of the quality of your work, your mastery of the material, and the depth of your involvement in the class. Worse, these grades are not private communication between you and me; they are placed on a transcript for graduate schools and employers to see, and heaven only knows how they interpret those grades. Sadly, these grades can have real effects, and so students are reasonably nervous about exploring new academic areas for fear of the consequences of those grades. I seek to remove those concerns by employing an unusual grading policy. There are two key components to this policy:

  1. You will be given two grades: an official grade that will go on your transcript and an unofficial grade that I will privately communicate to you. The official grade will be ``low risk'' and subject to special rules given below, while the unofficial grade will be a harsh, cold assessment of your mastery of the material.

  2. The rules for the unofficial grade are as follows: If you complete all of the course work on time, demonstrating at least a reasonable effort on each assignment, you will receive no worse than a `B'. Note the key phrase, ``at least a reasonable effort'' -- I cannot define it sharply, so I will use the ``I know it when it see it'' standard. In other words, don't flirt with attempting to find the minimal amount of work allowed. Put an honest effort into each assignment. If I believe that you are toeing the line, I will give you a warning once.

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

If you have given an honest effort on all of the assignments, your official grade will be the better of your unofficial grade and a `B'. If I have determined that you have failed to give an honest effort on every assignment and exam, then your official and unofficial grades will be the same.


Late submission

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

If you need an extension, you must request it at least 72 hours before the deadline. Exceptions will be made on a case by case basis for illnesses or emergency situations. Note that submissions are electronic and automatically timestamped; the degree to which a submissions is late will be irrelevant.

This class will move from one project to another too quickly for late submission to be regularly allowed. 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 (office hours)

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). I will also regularly hold office hours in my office on MWF at 3 pm. You need not make an appointment with me during that time -- just show up.


Scott F. Kaplan
Last modified: Fri Sep 2 14:31:34 EDT 2005