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.
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 at Lecture Notes.
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 | Name | Phone | Office | Office Hours | |
---|---|---|---|---|---|
Instructors | Richard Caruana caruana@cs.cornell.edu |
255-1164 | 4157 Upson | Tues. & Thurs. 11:15am-12:00pm Upson 4157 appointments: e-mail Rich |
|
Dexter Kozen kozen@cs.cornell.edu |
255-9209 | 5143 Upson | Tues. 1:30pm-2:30pm Thurs. 2:45pm-3:45pm Upson 5143 appointments: e-mail Kelly |
||
David I. Schwartz dis@cs.cornell.edu |
255-5395 | 5137 Upson | Week of 5/9 only Open hours Mon., 5/9 noon-1:00pm Fri., 5/13 12:30-1:30pm appointments: e-mail Kelly |
||
TAs | Elliott Bäck ecb29@cornell.edu |
Mon. 1:25pm - 5:00pm Upson 360 |
|||
Kevin Canini krc25@cornell.edu |
Wed. 2:30pm - 4:45 Upson 360 |
||||
Meghan Desai
mpd25@cornell.edu |
Fri 10:00am - 11:00am 360 Upson |
||||
AJ Fink ajf25@cs.cornell.edu |
Mon 4:00pm - 5:00pm 328A Upson |
||||
Michael George mdgeorge@cs.cornell.edu |
Mon 11:15am - 12:05pm Wed 10:05am - 10:55am 328B Upson |
||||
Alvin Jon-Hang Law ajl56@cornell.edu |
Tues 3:30pm - 4:30pm 328A Upson |
||||
Lisa Minich
lam76@cornell.edu |
Mon 12:00pm - 1:00pm Thur 1:00pm-2:00pm 328A Upson |
||||
Maksim Orlovich maksim@cs.cornell.edu |
Fri 1:25pm - 3:25pm 4121 Upson |
||||
Nicholas Robert Ruozzi nrr4@cornell.edu |
Tue 2:30pm - 3:30pm 328A Upson |
||||
Amit Shelawala ahs26@cs.cornell.edu |
Thu 12:20pm - 1:10pm 328B Upson |
||||
Dan Sheldon dsheldon@cs.cornell.edu |
Thu 11:15am - 12:05pm 328A Upson Fri 11:15am - 12:05pm 328B Upson |
||||
Hongtat Tong ht79@cs.cornell.edu |
Mon 2:30pm - 3:30pm 328B Upson |
||||
Course Administrator |
Kelly Patwell patwell@cs.cornell.edu |
255-7790 | 5147 Upson |
The 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.
In addition, 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. They are available in 360 Upson Hall most afternoons and evenings. We might also have hours in RPCC. See the section on Consulting for locations and hours.
Sun | Mon | Tue | Wed | Thu | |
---|---|---|---|---|---|
12 noon | TL, MS | AB | TL, MS | ||
1:25 PM | MC,KL, MS | TL, AB | MS | ||
2:30 PM | MC, KL | AS, TL, EH | KC, AS, | ||
3:25 PM | MC, KL | AS, EH | KC, AS | AL | |
4:45 PM | MU | TY, KL, SB, KL | AJB, KL | AL, MU | AL |
6:00 PM | MU | TY, SB | AJB, AL | AL, MU | |
7:00 PM | MU | TY | AJB, DB | SB, RD, AJB | |
8:00 PM | RD | RD, DB | SB, MC, AJB | ||
9:00 PM | RD | DB, RD | AB, SB, MC |
Mon | Wed | |
---|---|---|
12 noon | ||
1:25 PM | ||
2:30 PM | ||
4:00 PM | EH | |
5:00 PM | EH | |
6:00 PM | DB | |
7:00 PM | DB | |
8:00 PM | AB | |
9:00 PM |
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 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.
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"
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.
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)
The JDK 5.0 is already installed in the CIT labs. To install it on your own machine:
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:
You are expected to attend all lectures.
There are two ways to register:
Note that ENGRD 211 and COM S 211 are the same course (which we are calling CS211 on this website), 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 | 721-212 |
COM S Course ID | 657-337 |
Lecture | 01 |
Days | TR |
Time | 10:10 - 11am |
Location | 155 Olin |
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.
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.
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.
The current sections are as follows:
ENGRD Course ID |
COM S Course ID |
Section | Day | Time | Place | Instructor(s) |
---|---|---|---|---|---|---|
721-340 | 657-352 | 1 | T | 12:20-1:10 | HO 314 | Dan Sheldon |
721-399 | 657-477 | 2 | T | 1:25-2:15 | HO 320 | Michael George, Lisa Minich |
721-434 | 657-486 | 3 | T | 2:30-3:20 | HO 320 | Meghan Desai, Elliott Bäck |
721-547 | 657-655 | 4 | W | 12:20-1:10 | HO 320 | Hongtat Tong, Dan Sheldon |
721-776 | 657-881 | 5 | W | 1:25-2:15 | HO 320 | Maksim Orlovich |
721-902 | 657-919 | 6 | R | 2:30-3:20 | HO 314 | AJ Fink, Kevin Canini |
134-784 | 117-768 | 7 | T | 12:20-1:10 | HO 312 | Nicholas Robert Ruozzi, Amit Shelawala |
134-832 | 117-810 | 8 | T | 1:25-2:15 | UP 207 | Maksim Orlovich |
134-880 | 117-852 | 9 | W | 12:20-1:10 | HO 362 | Michael George, Alvin Jon-Hang Law |
134-928 | 134-736 | 10 | W | 1:25-2:15 | HO 401 | Nicholas Robert Ruozzi, Alvin Jon-Hang Law |
Occasionally section instructors might temporarily move their section to a computer lab. Pay attention to announcements to keep track of these potential room changes.
Generally, expectations of lecture are the same for section.
Notes and examples will be posted occasionally in the Section Notes link.
You will have six mandatory homework assignments to complete for the semester. These will involve writing Java programs and possibly other tasks. All assignments are posted at the Assignments link.
Occasionally, we might require smaller assignments (sometimes called exercises) to ensure that individuals do not rely completely on their partners to do the work. So, usually exercises will not allow partners. Exercises tend to have binary grading, which means 0/1.
You must follow the rules of Academic Integrity (AI). In addition, you must follow these rules concerning partners, unless we post otherwise:
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.
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 that the CMS Info link summarizes. We try to grade each assignment on the day 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 "a3ggcs211sp05.txt" (Assignment 3 Grading Guide for CS211 Spring 2005).
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.
You are required to take two prelims and a final exam. Please see the Exams link for times and locations, review session information, topics, practice problems, and solutions.
We distribute prelims in 363C 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.
If you have a conflict such as a prelim scheduled at the same time, you must first try rescheduling the event conflicting with the CS211 exam. If you have exhausted other means for rescheduling your conflict, you must contact the course administrator (Kelly) at least two weeks before the exam. You must explain the nature of the conflict and provide documentation. You might be eligible to take an early prelim offering at 5:45-7:15 PM. We do not usually offer makeup exams at any other time. 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. If we assign bonus points, these are added to your bonus point total for the semester.
Your final numerical score will be a weighted combination of your scores for all required course work, as given in the following table:
Assignments 1-5 | 35% (7% each) |
Assignment 6 | 9% |
Prelims | 30% (15% each) |
Final exam | 25% |
Course evaluation | 1% |
We reserve the right to change the relative weights.
We will determine your letter grade for the course using your final numerical score and pre-determined 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 |
We may choose to lower the cutoffs based on the overall class performance on all course work, but we will never raise them, which would be unfair to you.
Bonus points may also influence some students' grades after all letter grades are set.
In general, letter grades tend to split approximately into thirds for As, Bs, and Cs. But if everyone receives a final numerical grade of 90 or better this semester, everyone would get at least an A. Who knows? It might happen some day.
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 and will write a response and update the score on CMS if necessary.
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 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:
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. Both of the Bootcamps are the same. 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 | Thursday, 1/27 Tuesday, 2/1 |
Time | 7:30-10:30pm |
Materials | [Updated Notes] [Updated Solutions] (updated 2/01/2005) |
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.
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.
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.
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.
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.
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.
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.
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.