cs1007 - Object-oriented programming and design in Java.
Fall 2005


Home Homeworks Schedule/Lectures Class Web-board Resources

Announcements:
  • Sample midterm online, see schedule
  • Extra Credit assignment out
  • Final Exam: Dec 20, 1-4pm in class.
General Information: http://www.cs.columbia.edu/~sh553/teaching/1007f05/
Meeting Times and Locations:
Fall 2005 T/TR 1:10-2:25pm, 227 Mudd
Prerequisites:
Basic Programming and Java Knowledge (cs1004)
Instructional Staff:
Instructor:
Prof. Shlomo Hershkop. (shlomo@cs.columbia.edu) (AIM: Prof Hershkop)
Office Hours (460 CSB): M/W 11:30-2pm, T/TR 11:30-12:30, 2:30-3:30 and by appt.
TA:
Edward Ishak (ewi2001@colu...)
Office Hours (CEPSR 616): T 3-5pm

Amrita Rajagopal (ar2358@colum..)
Office Hours (TA Room): TR 3-5pm
Course Objectives:
This course is a second course for majors in computer science.

The primary objective will be to learn why computer science is so much fun.

A secondary objective is to learn a rigorous treatment of object-oriented concepts using Java as an example language.

We will develop sound programming and design skills, problem solving and modeling of real world problems from science, engineering, and economics using the object-oriented paradigm over the course of the next 14 weeks.

Course Materials:
Required Text:

Object Oriented Design & Patterns
Second Edition
Cay Horstmann

This has been ordered at the Columbia Bookstore

Course Structure:

There are three major components to a grade in this course: homeworks, midterm, and the final.

  • 6 homework's, 25 points each: 150 points
  • Midterm (open-book): 50 points
  • Final (open-book): 100 points

In other words, all three components are extremely important, but homework's are especially significant. Class participation is also strongly urged. While there is no numerical grade attached to it, as neither participation nor attendance is strictly required, it's in your interest to make an acquaintance with me, especially if you're on the "borderline" between grades at the end of the semester. We may also give some bonus point opportunities on homework's; these are added up after the curve at the end of the semester. 

Homework Policy:

Homework's will generally be divided into two parts: written theory questions and programming questions. You're generally allotted two weeks for each homework; make sure to start early so you can ask questions (or, make sure you have a lot of coffee and crossed fingers if you start the night before it's due). 

Homework's are usually due by the first section's class time, so you don't have an incentive to skip out on the next lecture, but this may vary when appropriate. Consequently, there will be two means of submission: hard-copy and electronic; the first will be required for the written problems, and the latter for the programming exercises. A link to the instructions will be posted on the homework's page well before the first homework is due.

You are given 3 "late days" that can be used to wards homework submissions during the semester. A late day is defined as exactly 24 hours, so if a homework is due at 11:00:00am on Tuesday, you could submit the homework by 11:00:00am on that Wednesday by using up one of your late days.

As an example, you can submit homework 1 two days late and homework 4 one day late -- but all of the remaining homework's must be on time. Beyond the late days, no late homework's will be accepted; if you're in such a situation, submit what you have instead of getting a zero. (Please don't come to my office or email me with excuses -- short of a medical, family, or national emergency, I'm not interested in them!)

One catch: you may only use up to two late days on any single homework. That means you could use two for one homework and one for another homework, or one each for three different homework's, or less -- but not more. 

Cheating Policy:

One word: don't. All homework's and exams in this course are intended to be done by yourself, because that is the simplest way to learn and absorb the material. Feel free to leverage your brain, textbook, teaching assistants, the instructor, and the web-board to help you solve homework problems.. You're allowed to discuss problems with classmates, but only in general terms, and you must specifically avoid discussing any solutions.

Moreover, you'd be amazed how easy it is to detect plagiarism or cheating in both written and programming assignments. Cheaters don't spend tremendous amounts of time masking their copy, because that defeats the purpose and it would be simpler to do the homework themselves. Invariably, therefore, they get caught. An infraction is a zero on the assignment or exam and a referral to your academic dean. See this page for more details.

You must also resist the urge to copy code from the web. Obviously, there are many Computer Science classes out there, and while we put every effort into making my homework's reasonably unique, there are likely to be similar approaches elsewhere. While we obviously can't forbid you to look at other slides or text material, any evidence of plagiarism from other sources will merit similar consequences.

Contact Information:
I would like the course to run smoothly and enjoyably. Feel free to come to us during office hours, or make an appointment to discuss anything you like or don't like about the course. Your involvement at making sure you are following the material and are "up to date" is key to succeeding in the course. Some students have problems in the beginning of the course, which is exactly the time to get help, before things get out of hand.

We can't always promise that we'll resolve your issues (such as randomly dropping a homework grade), but we're here to help you learn and get the most out of the class.