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 are 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://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

Staff Name Phone Office Office Hours
Instructors Dexter Kozen
kozen [at] cs.cornell.edu
255-9209 5143 Upson appt hours Mon 10am-11am
open hours Mon 11am-12pm
appointments: e-mail Kelly
David I. Schwartz
dis [at] cs.cornell.edu
255-5395 5137 Upson Fri 1:30pm–2:30pm
appointments: e-mail Bill
TAs
Alec Bernston 
ajb84 [at] cornell.edu
  328C Upson Thurs. at noon-1:00pm
Christopher  Estela
cde8 [at] cornell.edu
  328C Upson Wed. 12:20-1:10
  Parvati Iyer
parvati [at] cs.cornell.edu
255-9296 328C Upson Wed. 10:00-11:00am
Nikos Karampatziakis
nk [at] cs.cornell.edu
  328D Upson Tue. 1:30-2:30
Caitie Mccaffrey
cem62 [at] cornell.edu
  328B Upson Thurs. 3:00-4:00
Maksim Orlovich
maksim [at] cs.cornell.edu
255-4934 5152 Upson Fri., 2:00-3:00
Andrew Salamatov
aas59 [at] cornell.edu
  328C Upson Wed. 1:15-2:30
  Michael  Sutjipto
mjs277 [at] cornell.edu
  328C Upson Thur. 1:20-2:20
Andrew Tibbits
aht9 [at] cornell.edu
  328B Upson

Wed 2:00-3:00

  Kim Truong
ktt6 [at] cornell.edu
  328B Upson Thur. 4:00-5:00
Course
Administrator
Kelly Patwell
patwell@cs.cornell.edu
255-7790 5147 Upson Mon.–Friday 8:30-4:00

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.

Consultants

In addition to TAs, there are a number of consultants. These are are undergraduates who have excelled in their coursework and are employed as graders and tutors for CS211. See the section on Consulting for locations and hours, below.


Consulting

Locations and Hours

Upson 360

Times (PM) Sun Mon Tue Wed Thu Fri
1:25 George/Chris Will Jonathan
2:30 Mori George Jared/Will George/MAP Mori
3:35 Mori Jared Jared Jonathan/George Greg (3) Mori
4:45 Mori Jared/Jonathan/ MJP Matt/MAP Greg
6:00 Jonathan Chris/MJP Chris/Venkat
7:00 Will/Udom Chris/Marius Chris/Venkat
8:00 Will/Udom Marius/Udom/Homan Venkat/Adam
9:00 Marius/Udom/Homan MJP/Adam

RPCC

RPCC consulting takes place in the computer lab. Look for a sign on one of the tables that reads 211 Consulting

Times (PM) Sun Mon Tue Wed
4:00 Matt/Anton
5:00 Matt/MAP Vivek Richard
6:00 MAP/Marius Vivek Anton Richard
7:00 Marius/Adam Vivek Matt/Anton Richard
8:00 Adam/Venkat Vivek Matt/Anton Richard

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


Java Help & Software

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

For students with limited Java experience, we will hold a Java Bootcamp, which involves about three hours of self-guided training in Java. The Bootcamp is a self-guided, self-paced tutorial that summarizes key issues of Java's syntax that are usually covered in CS100. Students can download the material and solutions. Or, you can attend two identical sessions with course staff that will answer questions as you work your way through the material. 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 Tue., 1/23 and Wed, 1/24
Time 7:30-10:30pm
Materials Tutorial
Companion Document (also called "Applications")
Solutions

More Ways To Catch Up

Obtain Java

The Java is already installed in CIT and ACCEL labs. However, installing it own your own machine will greatly facilitate your work. Please note that you should double check your work in a public lab, privately owned machines occasionally exhibit different behaviors to 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 2005, 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.


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.

ENGRD Course ID 372-513
COM S Course ID 341-867
Lecture 01
Days TR
Time 10:10–11:00am
Location Olin 155

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.


Section

You are expected to attend a recitation section once per week. Section will cover some material not covered in lecture and provide an opportunity for questions on recent material, assignments, and exams. You may attend any recitation section, but we prefer that you select one and stay with it.

Registration Information

The current sections are as follows:

ENGRD
Course ID
COM S
Course ID
Section Day Time Place

Instructor(s)

372-562 341-916 1 T 1220-0110P Hollister 320 Andrew Tibbits
372-611 341-965 2 T 0125-0215P Upson 215 Alec Bernston 
Parvati Iyer
372-660 342-014 3 T 0230-0320P Upson 211 Nikos Karampatziakis
Andrew Tibbits
372-709 342-070 4 W 1220-0110P Phillips 307 Alec Bernston
Andrew Salamatov
372-758 345-119 5 W 0125-0215P Upson 109 Caitie Mccaffrey
Christopher  Estela
372-856 345-217 7 T 1220-0110P Upson 211 Parvati Iyer
Maksim Orlovich
372-905 345-266 8 T 0125-0215P Hollister 306 Michael  Sutjipto
373-010 345-364 10 W 0125-0215P Olin 218 Maksim Orlovich
Michael  Sutjipto

Occasionally section instructors might temporarily move their section to a computer lab. Pay attention to announcements to keep track of these potential room changes.

Conduct

Generally, expectations for section are the same as for lecture.

Section Notes

Notes and examples will be posted occasionally in the Section Notes link.


Assignments

General Information

You will have five mandatory assignments to complete for the semester, which we will post below and on CMS. You might need to look in both places for additional files:

# Due Date Assignment Solutions/GG Supervisor(s)
A1 Wed, 2/7
11:59PM
A1
A1.zip
Hospital.jar
  Alec, Pavati, Kim
A2 Sun., 2/25
11:59PM
A2
a2.jar
Prob 3 docs
a2p4.zip
  Maksim, Catie, Chris
A3 Wed 3/14
11:59PM
A3
a3.jar
a3source.zip
text.txt
Prob 3 docs
  Nikos, Andrew T., Andrew S.
A4 Fri 4/13
11:59PM
A4
A4Release.zip
  Parvati, Mike, Catie
A5 Thu 5/3
11:59PM
A5
A5Release.zip
A5Solution.jar
Icons.zip
  Alec, Andrew S., Kim

Partners

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

Submission

You must submit your work on-line via the Course Management System (CMS):

If you are not working with a partner:

If you work with a partner, you must coordinate with your partner well in advance of the due date and time! Unless we carry over partnerships from a previous assignment, you have to invite each other on CMS, as follows:

You can find detailed instructions by clicking Help in CMS.

Format Requirements

File Size What Files to Include: Compilers and IDES::

Commenting/Style/Discussion

Late Policy

Submit your assignments on time and well before the deadline. (CMS tends to lag right near the deadline if too many students wait until the last minute.) However, you may submit your assignment late until we post the solutions with a 15% 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.

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.

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 one of the instructors.

Grading

The main assignments receive scores out of 100 points. 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, described above. We try to grade each assignment within 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. The codes are posted on the Assignments in files with names, like "a3ggcs211sp07.txt" (Assignment 3 Grading Guide for CS211 Spring 2007).

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. Refer to Grading 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 are required to take two prelims and a final exam. Please see the table below for general information:

Exam Date/Time Location Review Session(s) Topics Prelim Supervisor
Prelim 1
Solutions
GradingGuide
RefinedGradingGuide
Stats
Thursday, March 8
7:30-9:00pm
Uris Aud Wednesday 3/7, 7:30-9pm & 9-10:30pm
(both sessions are identical) Upson B17
All material up to, and including, Lecture 10 (2/22). Past exams have typically had problems on induction, recursion, inheritance, parsing, lists, and trees. For example, see Spring 2005. Nikos, Caitie
Prelim 2
Solutions
Grading Guide
Stats
Tuesday, April 17
7:30-9:00pm
Uris Aud Sunday 4/15,1:30-3:00pm, Kimball B11 See Lecture 20 (Graphs) announcements. Parvati, Chris
Final Exam Monday, May 14
9:00-11:30am
Uris Aud Sunday, 5/13/07
1:30-3:00
Room: KB B11
See Lec. 26 notes Maksim, Mike

Conflicts

Do you have a conflict with another exam or other university-sponsored event?

Note that we do not offer makeup final exams to students who take another course that overlaps with CS211. For example, if you take CS211 and CS312, both courses have identical meeting times, and thus, identical final exam times. The Courses of Study states the following in the section regarding Class Attendance: "Students are expected to be present throughout each semester at all meetings of courses for which they are registered." The Dean of Faculty and the Engineering Registrar informed us that courses are not obligated to provide makeup exams for students taking concurrent courses.

Retrieving

We distribute prelims in 360 Upson (M-F, 10:00am–noon and 2:00pm–4:00pm) usually the day after the prelim. Bring your student ID card. Final exams may be reviewed the following semester, but may not be taken from the room. Note that this room also holds CS211 consulting, but our consultants work in a different area than the distribution center.

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.

Past Exams

Note that previous versions of CS211 had different organizations, but the following exams should give you plenty of practice problems.

Prelim 1: Prelim 2: Final:

Quizzes

This semester, CS211 will have occasional quizzes, which are brief tests or exercises. We hold quizzes in class or post on-line.

When? Where?

We may give a quiz at any time during any regularly scheduled classtime (lecture or section). Note that we might even give a quiz at the beginning and end of lecture.

Grading

We will grade quizzes in a binary fashion:

We will count a certain percentage of the quizzes towards your final grades. So, it might be possible to miss some without hurting your grade. We may also convert excess quiz points to bonus points.

Quizzes
Q1   Q2   Q3

Grading

Weights

Your final numerical score will be a weighted combination of your scores for all required course work. Note that A=assignment, P=prelim, Q=quiz, F=final, and E=evaluation, which is the university course evaluation:

Assignments
(44%)
Quizzes
(5%)
Exams
(50%)
Eval
(1%)
A1 A2 A3 A4 A5 Q P1 P2 F E
8 9 9 9 9 5 15 15 20 1

Note the evaluation is the university evaluation. We get a list of people who fill it out—the university keeps your responses anonymous. We reserve the right to change the relative weights.

Grade Computation

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:


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. The assignment/exam supervisor (see Assignments and Exams) will process the requests after the regrade deadline has passed. Regrade comments are either posted on CMS (usually for assignments) or returned in the consulting office (usually for prelims) as explained below.

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.


CS212

CS212 is a one-credit project course that the computer science major requires. Students may take CS212 either simultaneously with CS211 or afterwards, though we recommend taking them together. Refer to http://course.cs.cornell.edu/cs212/ for more information on CS212.

For students who are unsure on when to take CS212, we offer this advice:


Academic Excellence Workshop

The Academic Excellence Workshop (AEW) offers an opportunity for students to gain additional experience with course concepts in a cooperative learning environment. Research has shown that cooperative and collaborative methods promote higher grades, greater persistence, and deeper comprehension. The material presented in the workshop is at or above the level of the regular course. We do not require joining the AEW program, but do encourage students to join if they are seeking an exciting and fun way to learn. The AEW carries one S/U credit based on participation and attendance. The time commitment is two hours per week in the lab—no homework will be given. This is a wonderful opportunity for students to seek extra help on course topics in a small-group setting.

Your fellow undergraduate students, who are familiar with the course material, teach the sessions with material that they prepare. The course staff provides guidance and support but do not actually teach the AEW course content or any session. A representative from the AEW program will be speaking about the program and registration procedures in lecture. We summarize the information here:

See the AEW webpage for registration information and schedule.


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.


Academic Integrity

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


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