CS211 Course Information

Contents


Registration information

Name COM S 211/ENGRD 211: Computers and Programming
Semesters Offered fall, spring, summer
Credit Hours 3
Prerequisites COM S 100 or an equivalent course in Java or C++
Grade Option Letter or S/U
Course Description Intermediate programming in a high-level language and introduction to computer science. Topics include program structure and organization, modules (classes), program development, proofs of program correctness, recursion, data structures and types (lists, stacks, queues, trees), object-oriented programming, and analysis of algorithms.  Java is the principal programming language.
Course Website http://www.cs.cornell.edu/courses/cs211/
Course Newsgroup cornell.class.cs211

In CS211, you are expected to learn:

A complete listing of course topics can be found at Lecture Notes.

Refer to posted advice for information about other introductory programming courses if you need help in deciding whether or not to take CS211.


Staff

Instructor

David Crandall
crandall ["at"] cs.cornell.edu
340 Upson
office hours Monday 11:30am-12:30pm, Thursday 2-3pm
or by appointment

Teaching Assistants

The teaching assistants (TAs) mainly teach recitation sections and assist with homework and exams. We encourage you to attend their office hours if you have difficulties in the course. You can make an appointment with any TA by e-mail.

    Nikos Karampatziakis
nk ["at"] cs.cornell.edu
5132 Upson
Office hours: Wednesday 4-6 in 328 Upson
    Raghu Ramanujan
raghu ["at"] cs.cornell.edu
4143 Upson
Office hours: Thursday 4-6 in 328 Upson

Consultants

In addition to TAs, there are two consultants. These are undergraduates who have excelled in their coursework and are employed as graders and tutors for CS211.

    Jonathan Hui
jyh27 ["at"] cornell.edu
360 Upson
Office hours: Mon and Tues 4-6pm, Fri 3-5pm
Noah Santorello
nks25 ["at"] cornell.edu
360 Upson
Office hours: Sun 2-4pm, Weds and Thurs 12-2pm

Consultants have the following policies:


Communication

The course staff will use a variety of means to communicate with students outside of lectures. To ensure that you receive these communications, you have the following responsibilities:

To reach a staff member, the best time is office hours. Please post general questions to the newsgroup so that others can benefit from your question. Someone will respond within one working day. Note that posts in USENET are subject to the rules of academic integrity, so you should not post solutions. Generally, rough algorithms or non-solution-specific code fragments are ok if you need them to illustrate a point.


Reading and Textbooks

Reading assignments are posted along with the lecture notes and examples on the Lecture Notes page.  The sources listed here will be on reserve in the Engineering Library in Carpenter Hall.

Required Text

Optional Reading


Lecture

You are expected to attend all lectures.

Registration Information

There are two ways to register:

Note that ENGRD 211 and COM S 211 are the same course (which we usually call just CS211), so do not sign up for both! The difference is purely administrative so that the College of Engineering can keep track of how many of its students use this course to fulfill a distribution requirement.

Conduct

We expect the following conduct of all students:

We prefer class participation, so please feel free to raise your hand to contribute to the class discussion.

Lecture Notes

We put most of our files for lecture notes, corresponding readings, and examples at the Lecture Notes link, usually just before or after lecture. Not all material covered in lecture will necessarily be online, so please do not email us about it. On the other hand, sometimes the lecture notes will contain extra material for you to review outside of class, and you are responsible for this material.


Grading

Course grades will be computed based on your performance on homework assignments, exams, and quizzes. Assignments are worth 50% of the grade, the preliminary exam is worth 15%, the final is worth 25%, and quizzes are worth 10%. We reserve the right to change these weights.

We will determine your letter grade for the course using your final numerical score and predetermined grade cutoffs as given in the following table. These are numerical scores that will guarantee you at least a certain letter grade, regardless of how the rest of the class performs.

A score of guarantees at least
90 A
80 B
70 C
50 better than F

Note the following:

Assignments

There will be five mandatory homework assignments for the semester. Assignments will be posted on this website. Most assignments will consist of a written part and a Java programming part. Assignments must be submitted on-line through the Course Management System (CMS). Please see the assignment submission requirements for instructions on using CMS.

Late policy

You may submit your assignment up to 24 hours late with a 20% penalty off your total score. If you submit only a portion of an assignment late (i.e. one of the problems), your entire assignment score will still be penalized. Make sure to upload submissions to CMS well before the deadline. Waiting until the last minute is risky because CMS tends to lag near the deadline (as many people try to access it at once).

We will deal with work submitted past the late deadline on a case-by-case basis. Extensions will be granted only in exceptional circumstances, such as Illness, and only with approval (preferably prior!) by the instructor.

Note that CMS allows us to choose a grace period when we post an assignment. We will use Math.random() to pick a grace period that ranges from 0 to 1 hour 59 minutes.

Grading

Assignments receive scores out of 100 points. At the very least, your code must compile without warnings or exceptions. If it does not, we will not debug your code and you may receive a grade of zero. We also expect you to follow the submission format requirements, described on the assignment submission requirements page. We may give bonus points for exceptionally fine work.

If you feel we have made a mistake in grading, you may request a regrade. Refer to the Regrades section for details.

Partners

For some parts of some assignments you may be allowed to work in groups of two. You must follow the rules of Academic Integrity (AI). In addition, you must follow these rules concerning partners, unless we post otherwise:

Exams

You are required to take a prelim and a final exam. The exams will be given on the following dates and times:

You are expected to take the exams during the times listed above. We will only allow you to take an exam at another time if you have a conflict with another university-sponsored event that cannot be rescheduled. You must contact the instructor during the first week of the semester to discuss alternative arrangements. We will require official documentation of the conflict. If you miss an exam because of a serious matter like illness, see the section on Illness.

Exams are graded out of 100 points. As with assignments, you may request a regrade.

Exams from past semesters are available to help you study, but note that course material and organization has varied from semester to semester.

Quizzes

There will be occasional in-class quizzes, which are brief tests or exercises. They will not be announced ahead of time. We may give a quiz at any time during any regularly-scheduled class.

Quizzes will be graded on a 10 point scale. At least one point will be awarded for writing your name on the quiz. If you miss a quiz, you will get zero points. Make-up quizzes will not be given; however, we will drop your lowest quiz score.


Regrades

For all graded work, you always have an opportunity to request a regrade if you feel we have made a mistake in the grading or simply to request a clarification. To make a regrade request, you need to explain in words what you feel is wrong or what you do not understand. For each assignment and exam, there is a deadline for regrade requests, normally a few days after the grading guide and solutions have been posted.

Policies

Procedure

Assignments:
Prelims:
Final Exam:

Advice

In regrades, the burden of proof is on you. You must adequately demonstrate how and why you deserve a higher grade.

We allow minor corrections to code in some cases. For example, if fixing a small piece of code demonstrates that your code really did work a lot better than we perceived, you might earn more points. However, we will usually apply a point deduction for such fixes, so only in some cases will you receive additional points.


Academic Integrity

We take academic integrity very seriously. The utmost level of academic integrity is expected of all students. Please read carefully the following information and documents.

AI is Your Responsibility!

Assignments

Exams

If You Suspect a Violation...

Penalties


Java Software & Help

Which Version?

We will the use the Java 5 (or 1.5) Platform, Standard Edition (Java SE), which consists of the Java Development Kit (JDK) and the Java Runtime Environment (JRE). Although the latest version is Java SE 6, we have encountered some compatibility issues.

If you are using a version of Java prior to Java 5, such as J2SE 1.4, you must upgrade. We will be using features that were introduced in Java 5, such as generics, autoboxing, and typesafe enums. These features are described in following sources:

Java Bootcamp

A Java Bootcamp is available to help you review key issues of Java's syntax that are usually covered in CS100. The Bootcamp is a self-guided, self-paced tutorial. Early in the semester we will hold an evening review session during which you can work through the material and ask questions of the course staff. The time and place of the review session will be announced on the first day of class. Alternatively you can download the material and work through it on your own. If you have never programmed in Java, have not programmed in a long time, or feel that your skills are a bit weak, we strongly suggest that you attend the Bootcamp.

Place Upson B7
Dates Monday 6/25 and Tuesday 6/26
Time 7:00-9:00pm
Materials Tutorial
Companion Document (also called "Applications")
Solutions

More Ways To Catch Up

Obtaining Java

Java is already installed in CIT and ACCEL labs. However, installing it own your own machine will probably be much more convenient. Please note that you should double check your work in a public lab, as privately owned machines occasionally exhibit different behaviors for a program.

Windows and Unix

To download Java 5, click on Sun's Java site and download either JDK 5.0 Update 10 with NetBeans 5.5 or JDK 5.0 Update 10. Follow the instructions. To make Java easy to use at the command line, refer to Section 2.4 in Applications Help on our website.

Mac

As of Fall 2006, the standard Java site does not have links for Macs. However, the following information should help, assuming you are not running an "archaic" version of Mac OS. Unfortunately, you will need to upgrade your operating system to 10.4 or later.

Steps:

Development Environments

The best way to develop Java programs is with an Integrated Development Environment (IDE). We recommend Eclipse, but you may use any IDE that you like, or just a text editor if you prefer.  Many of these are already installed in the labs.


Computer Labs

CIT Labs

Cornell Information Technologies (CIT) runs several computer labs across campus for all members of the Cornell community. The JDK 5.0 and Eclipse are installed on these machines. Refer to http://www.cit.cornell.edu/labs/ for locations and times of operation.

ACCEL Lab

You can also find the course software in the Academic Computing Center (ACCEL), located in the Engineering Library in Carpenter Hall. Any CS student may register for an account.


Illness

If you must miss any coursework due to illness or another university-excused conflict, you must contact the instructor as soon as possible and provide formal documentation. If you miss a significant amount of coursework, you are strongly encouraged to drop the course. If you miss an exam due to documented illness, you must contact the instructor as soon as possible to review the matter.


Special Needs and Disabilities

In compliance with the Cornell University policy and equal access laws, we are available to discuss appropriate academic accommodations that may be required for students with special needs and/or disabilities. Requests for academic accommodations are to be made during the first three weeks of the semester and must be accompanied by official documentation. Please register with Student Disability Services in 420 CCC to verify your eligibility.