CS211 Course Information

Welcome to CS211!

This web site contains a wealth of useful information that we have compiled for your benefit.  Please take some time to review it and familiarize yourself with its contents so that you know where to find the information you need quickly when you need it.  You will be responsible for following all the policies and procedures stated on this website.


Course Description

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://courses.cs.cornell.edu/cs211/
Course Newsgroup cornell.class.cs211

In CS211, you are expected to learn:

A complete listing of course topics can be found in the schedule.

Refer to http://www.cs.cornell.edu/ugrad/FirstCourse.html for information about other introductory programming courses if you need help in deciding whether or not to take CS211.


Staff and Consultants

Name Phone Office Availability
Instructor Mohan Rajagopalan
mohan@cs.cornell.edu
x41257 Upson 4116 Tues 2:00 - 3:00 pm
Thurs 2:00 - 3:00 pm
appointments: e-mail Mohan
TAs Jeff Hartline
jhartlin@cs.cornell.edu
x45075 Upson 5154 Wed 2:00 - 3:00 pm
appointments: e-mail Jeff
Peter Sirokman
pfs at cs dot cornell dot edu
x53009 Upson 4143 Thurs 3:00 - 5:00 pm
appointments: e-mail Peter
Consultants Mehmet Saglam
ms444@cornell.edu
  Upson B7 Tues 4:30 - 6:30 pm
Thurs 4:30 - 6:30 pm
Sunday 12:00-2:00pm
Alec Berntson
ajb84@cornell.edu
    Upson B7 Mon 1:00 - 3:00 pm
Wed 3:00 - 5:00 pm
Fri 1:00 - 3:00 pm

Consultants

Consultants are undergraduates who have excelled in their coursework and are employed as graders and tutors for CS211. They are available throughout the week to help with assignments and answer questions.

Consulting Policies

Want to Be a Consultant?

CS211 and many other CS courses are always looking for great consultants.  In general, CS211 is the launch pad for many courses.  In addition, our best consultants can become undergraduate TAs.  If you get at least an A- in CS211, check out this website: http://www.cs.cornell.edu/ugrad/Consulting.html.


Reading and Textbooks

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

Required Text

Optional Reading


Software

Java

This semester we will move to the Java 2 Platform Standard Edition (J2SE) version 5.0.  The J2SE consists of the Java Development Kit (JDK) and the Java Runtime Environment (JRE).  Previous semesters used version 1.4.2.  The newer version is already installed in the CIT labs.  We will be using some features of the new version very early on, so if you are running Java on your own machine, we strongly suggest that you upgrade as soon as possible.  You can find out which version you are running by typing java -version on the command line.  If you get something like

java version "1.5.0_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_01-b08)
Java HotSpot(TM) Client VM (build 1.5.0_01-b08, mixed mode, sharing)

you are good to go.  Note that, although this message and the installation directory say 1.5.0, the official version number is 5.0; see http://java.sun.com/j2se/naming_versioning_5_0.html. The new features of version 5.0 are described in http://java.sun.com/developer/technicalArticles/releases/j2se15/ and http://java.sun.com/j2se/1.5.0/docs/relnotes/features.html.

Installing Java

The JDK 5.0 is already installed in the CIT labs.  To install it on your own machine:

Development Environments

The best way to develop Java programs is with an Integrated Development Environment (IDE).  We recommend DrJava, available free of charge from Rice University.  DrJava is installed in the CIT labs.  However, you may use any IDE that you like, or just a text editor if you prefer.  Here are some links:


Lecture

You are expected to attend all lectures.

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


Assignments

General Information

You will have one assignment due every week. Assignments will generally be due on Tuesday at the beginning of class. Assignments will have a written portion, and a programming portion.  You can find current and past assignments at the assignments page. You are allowed to work with a partner on the programming portion of an assignment. You may talk with your partner about the written part of an assignment, but you are responsible for your own write-up.

Partners

You must follow the rules of Academic Integrity (AI).  In addition, you must follow these rules concerning partners, unless we post otherwise:

Submission

Late Policy

You must submit your assignments on time. We normally do not accept late submissions.  Extensions will be granted only in exceptional circumstances, such as acute illness, and only with prior approval by one of the instructors.

Grading

The main assignments receive scores out of 100 points, divided between the programming and written portions.  At the very least, all of 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 that the CMS Info link summarizes. We try to finish grading each assignment a few days after the due date. We strongly recommend that you review the grading comments, which are posted on CMS.  Each time you get something wrong, we label the mistake with a code.  Codes will eventually be posted on the assignments page

You may receive bonus points for exceptionally fine work.  If you receive any bonus points, those points are counted separately and accumulate in a single bonus score for the semester.  Ask the instructor for an explanation of how bonus points can influence your grade.

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


Exams

Requirements

You will have two prelims (on Tuesday July 12th and Wednesday July 27th, in class) and one final exam (on August 9th). Before these exams, we will provide a link with times and locations, review information, topics, practice problems, and solutions. Talk to someone now if you think you will have a problem taking one of these exams.

Grading

Exams are graded out of 100 points.  As with assignments, you may request a regrade.  If we assign bonus points, these are added to your bonus point total for the semester.


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 one week after the grading guide and solutions have been posted.  We will process the requests after the regrade deadline has passed and will write a response and update the score on CMS if necessary.

Policies

Procedure

Assignments

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.


Java Bootcamp

For students with limited Java experience, we will hold a Java Bootcamp, which involves about three hours of training in Java.  The Bootcamp will summarize key issues of Java's syntax that are usually covered in CS100.  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 Tuesday 6/28
Time 7-10pm
Materials [Updated Notes] [Updated Solutions] (updated 2/01/2005)

More Ways To Catch Up


Communication

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

We try to reserve e-mail for emergencies and urgent matters. Something that is urgent is generally defined as something the instructors would find urgent. If you do need to e-mail the staff, please do not use HTML or MIME!  Why?  See this explanation.

CMS

We will be using the Cornell Course Management System (CMS) extensively for many administrative tasks, including posting of assignments, creation of partners, submission of solutions, grade reporting, and regrade requests.  Please refer to the CMS page for information on the use of this system.


Academic Integrity

The utmost level of academic integrity is expected of all students.  Please read carefully the CS211 Academic Integrity Page, which details the policies specific to this course, as well as the Cornell University Code of Academic Integrity and the Department of Computer Science Code of Academic Integrity.


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 DrJava 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 course staff 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 course staff 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.