Skip to main content






Course Info

CS 2110 (formerly 211) is an intermediate-level programming course and an introduction to computer science. Topics include program design and development, debugging and testing, object-oriented programming, proofs of correctness and complexity analysis, recursion, and commonly used data structures and abstract data types. Java is the principal programming language.

You must have had some exposure to programming and Java prior to taking this course. Official prerequisities are CS 1110 (formerly 100J), Introduction to Computing Using Java, or CS 1130 (formerly 101J), Transition to Object-Oriented Programming. To brush up, visit the CS 1130 web site.

In CS 2110, you will learn about:

  • concepts in modern programming languages, including classes, objects, inheritance, recursion, and generic programming;
  • data structures, such as lists, stacks, queues, trees, hash tables, graphs, and collections;
  • how to produce correct, well-structured, readable, and maintainable programs.

A complete listing of topics can be found on the lecture notes page.

There is an associated 1-credit project course CS 2111 (formerly 212) required for the Computer Science major. Students may take 2111 either simultaneously with 2110 or afterwards.


Staff

Instructor

NAME & INFO OFFICE HOURS
Dexter Kozen
kozen [at] cs.cornell.edu
255-9209
5143 Upson
appt hours: M 10-11am
open hours: M 11am-12pm
appointments: email Kelly


Teaching Assistants (TAs)

The TAs mainly teach recitation sections and assist with homework and exams. All TAs hold office hours, and we encourage you to attend them if you have difficulties.

NAME & INFO OFFICE HOURS
Zoe Chiang
lzc2 [at] cornell.edu
office 328 Upson
R 5-6pm
328B Upson
Bay A
Greg Femec
gmf42 [at] cornell.edu
office 328 Upson
W 5-6pm
328B Upson
Bay A
Jonathan Hui
jyh27 [at] cornell.edu
office 328 Upson
R 12-1pm CANCELED 12/18
Replacement hrs T, 12/16 5:45-7pm
328B Upson
Bay A
Parvati Iyer
parvati [at] cs.cornell.edu
office 4142 Upson
W 4-5pm
328B Upson
Bay A
Anthony Jawad
jawad [at] cornell.edu
office 328 Upson
M 1:30-2:30pm
328B Upson
Bay A
Oleg Krokhin
ok43 [at] cornell.edu
office 328 Upson
R 4-5pm
328B Upson
Bay A
Sonica Li
syl32 [at] cornell.edu
office 328 Upson
F 1:40-2:40pm
328B Upson
Bay A
Fang Liu
fl95 [at] cornell.edu
office 5156 Upson
F 4:30-5:30pm
328B Upson
Bay A
Geoff Liu
cl436 [at] cornell.edu
office 328 Upson
F 10-11am
328B Upson
Bay A
Atul Luykx
al373 [at] cornell.edu
office 328 Upson
M 4-5pm
328B Upson
Bay A
Bobby Morrow
gentoo9ball [at] gmail.com
office 328 Upson
R 3:00-4:00 pm
328B Upson
Bay A
Anthony Nahas
apnahas [at] gmail.com
office 328 Upson
R 2:00-3:00pm
328B Upson
Bay
Christopher Parsons
csp33 [at] cornell.edu
office 328 Upson
W 1:30-2:30
328B Upson
Bay A
Morgan Ulinski
meu3 [at] cornell.edu
office 328 Upson
M 3-4 pm
328B Upson
Bay A
Ashwin Badanidiyuru Varadaraja
ab794 [at] cornell.edu
office 4121 Upson
M 6-7pm
4121 Upson
Mike Wacker
mew66 [at] cornell.edu
office 328 Upson
T 3-4pm
328B Upson
Bay A


Course Administrator (CA)

The CA provides clerical and logistical support for the course. Please notify the CA of any errors or discrepancies in the website.

NAME & INFO OFFICE HOURS
Kelly Patwell
patwell [at] cs.cornell.edu
255-7790
5147 Upson
M-F 8:30am-4pm


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. See Consulting below.

Course Administration

Website

The course website is http://www.cs.cornell.edu/Courses/cs2110/2008fa/. Announcements will be posted on the home page. Check every day for new announcements.

Newsgroups

We have two newsgroups:

NEWSGROUP PURPOSE
cornell.class.2110 technical questions and discussions on topics relevant to the course material
cornell.class.2110.talk everything else

Instructions for accessing the newsgroups can be found here.

The course staff monitors the newsgroups and will respond to questions in a timely manner. This is often the most efficient method of interaction with the course staff and has the added advantage that others can benefit from your question.

If you know the answer to a question, feel free to post a reply yourself, but please avoid giving away any hints on the homework or posting any part of a solution. This will be considered a violation of Academic Integrity. Generally, rough algorithms or non-solution-specific code fragments are ok if you need them to illustrate a point.

Please reserve email for urgent or confidential matters only.

CMS

We are using the course management system CMS. Everyone who preregistered for the course is entered, but if you did not preregister, you are probably missing. Please login to http://cms.csuglab.cornell.edu/ and check whether you exist. There will be a list of courses you are registered for, and CS 2110 should be one of them. If not, please send your full name and Cornell netId to the Course Administrator so that you can be registered.

You can check your grades and submit homework in CMS. There is a help page with instructions.

Sources

Required Text

See also the Prentice Hall website for additional material.

Other Sources

These titles are on reserve in the Engineering library, Carpenter Hall.

Handouts

All handouts other than homework and exams will be available on the web in pdf, html, or plain text format on the lecture notes page associated with the appropriate lecture. Check often for new postings.

For viewing pdf files, we recommend Adobe Reader, available free of charge.

Lectures and Sections

Registration

There are two ways to register:

  • Engineering students should register for ENGRD 2110 and one recitation section using the ENGRD course ids.
  • Non-Engineering students should register for CS 2110 and one recitation section using the CS course ids.

This is for clerical purposes only, there is no other difference.

In the table below, LEC=lecture, DIS=recitation section, OLH=Olin Hall, HLS=Hollister Hall, UPS=Upson Hall, T=Tuesday, R=Thursday.

Time and Place

CS COURSE ID ENGRD COURSE ID SECTION DAY TIME ROOM INSTRUCTOR
4632 9280 LEC 001 TR 10:10-
11am
OLH 155 Dexter
4633 9282 DIS 201 T 12:20-
1:10pm
OLH 165 Mike
Parvati
4634 9283 DIS 202 T 1:25-
2:15pm
HLS 110 Atul
Fang
Oleg
4635 9284 DIS 203 T 2:30-
3:20pm
OLH 165 Zoe
Jonathan
Oleg
4636 9285 DIS 204 W 12:20-
1:10pm
HLS 206 Bobby
Greg
4637 9287 DIS 205 W 1:25-
2:15pm
UPS 205 Sonica
Parvati
4638 9290 DIS 206 W 2:30-
3:20pm
UPS 205 Fang
Morgan
4639 9291 DIS 207 T 12:20-
1:10pm
HLS 306 Geoff
Chris
New Section W 7:30-
8:20pm
HLS 306 Atul
Anthony J

Attendance

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

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

Notes

Lecture notes, corresponding readings, and examples will be made available on the lecture notes page, usually just before or just after lecture.

Notes and examples from section will be posted occasionally on the lecture notes page as well.


Consulting

Consultants are available in Upson 360 most afternoons and evenings. They also hold hours in Robert Purcell Union (RPCC) on North Campus.

Consulting runs only when Cornell is in session. Consulting hours end at 6pm on a day following an assignment due date and 7pm on a prelim day. There are no consulting hours during official breaks. Consulting ends on the last shift on the last week of classes.

Consulting Hours

Upson 360

TIME SUN MON TUE WED THU FRI SAT
1:25-2:30pm LD       SPu YL JZ LD
2:30-3:35pm LD JM WL   TT JM JX YL JZ LD
3:35-4:40pm LD SPa WL   TT JM JX JZ LD
4:45-6pm LD SPa DR TT DR JX JZ
6-7pm SPa DR WL DR Closed Closed
7-8pm EY   DD WL MA Closed Closed
8-9pm EY   DD WL Closed Closed
9-10pm EY DD   Closed Closed

RPCC

TIME SUN MON TUE WED THU FRI SAT
1:25-2:30pm DD       SB    
2:30-3:35pm DD   DH   SB    
3:35-4:40pm     DH NL      
4:45-6pm     NL    
6-7pm       NL   Closed Closed
7-8pm KF     SB   Closed Closed
8-9pm KF DH   SB   Closed Closed
9-10pm KF DH       Closed Closed

Consulting Policies

  • Occasionally, consultants need to adjust their hours, which are updated outside their office and online.
  • Start your assignments early! Ask the consultants for help after you have tried your best and still cannot figure something out.
  • Keep questions specific.
  • Do not expect the consultants to debug your code or proofread your work. That's your job.
  • Do not hang out or work in the consulting room.
  • Do not store your work in the consulting room.

Want to Be a Consultant?

CS 2110 and many other CS courses are always looking for consultants. In general, CS 2110 is the launch pad for many courses. In addition, our best consultants can become undergraduate TAs. If you get at least an A- in CS 2110 and want to be a consultant, click here to find out how.


Programming Assignments

There will be five programming assignments. Materials will be available on CMS.

ASSIGNMENT DUE DATE SUPERVISORS
A1 Wed 9/10 11:59pm
Ashwin, Jonathan
A2 Tue 9/23 11:59pm Parvati, Anthony J, Oleg
A3 Fri 10/10 11:59pm Fang, Sonica
A4 Sun 11/9 11:59pm Ashwin, Atul
A5 Thu 12/4 11:59pm Parvati, Morgan

Due dates are subject to change.

Partners

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

  • For the first assignment, you must work by yourself. For subsequent assignments, you may work either by yourself or with one partner.
  • You must work with the same partner for all parts of the same assignment. You may only change partners between assignments.
  • You may not change partners or drop a partner once you have started working on an assignment.
  • You share equal responsibility with your partner for completing the assignment and for maintaining academic integrity.

Submission

You must submit your work online via CMS. The staff will not accept files submitted by email. Follow the online instructions in CMS for submitting files.

You may upload as many times as you wish, and only the latest version of each file will be graded. Note however that if you upload both before and after the deadline, the one after the deadline will be taken, and you will be subject to a late penalty.

If you are working 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 must register the partner relationship in CMS. One of the partners must invite the other, and the other must accept the invitation. See the CMS online help for details. Only one of the partners needs to submit the files.

Please be careful to submit the correct versions of your files. We will view the excuse "I accidentally submitted the wrong version" with extreme skepticism (we have heard it countless times).

More detailed instructions are available in the CMS online help.

Format Requirements

File Size

Each requested file has a size limit that is much bigger than a typical correct file. If CMS reports that your file is too big, that usually means you submitted a file in an incorrect format.

Files to Include

Include all files that we indicate on the assignment and no others. In particular, do not include any .class files or auxiliary files produced by your IDE such as .project files. Exception: You may include a brief readme.txt file if there are any special features or issues that you wish to bring to the attention of the grading staff.

Each public Java class must go in a separate .java file of the same name. The file may contain other non-public classes.

If you are asked to produce a compressed archive, you must use a format that WinZip will understand on Windows XP.

Compilers and IDES

At the very least, you must submit code that compiles, even if it does not run properly. We will recompile all of your code before running it. You should test your code at the command line with the JDK on Windows in the labs to ensure that your program works. If it does not compile, we will not debug your code and you may receive a grade of zero.

Although we advocate the use of an IDE, your code must always be able to compile and run at the command line with the required version of Java, because that is how we will be testing it. Refer to the resources page for information about the required version Java and how to run from the command line.

Style

Style counts! Follow accepted style conventions for code elements, layout, and commenting. For advice on Java style, see:

Place a comment block at the top of each file that you submit. The block must give the assignment number, due date, and the name(s), NetID(s), and CUID(s) of the creator(s). For example,

   /**********************************
    * Assignment 0: Example format
    * Date: 1/1/1111
    *
    * Tad Morose: tm10, 123456
    * Justin Tyme: jt33, 654321
    **********************************/
 

Late Policy

Submit your assignments on time. CMS tends to lag right near the deadline because too many students wait until the last minute to submit. You will get a very short grace period after the deadline during which you may submit without penalty, but we will not tell you how long (and don't ask). We typically grade the assignments the following evening.

Late submissions will be accepted until 5pm on the day following the due date. Until submissions are closed, you may submit your assignment late at a cost of 15% of your total score. If you submit only a portion of an assignment late, your entire assignment score will still be penalized.

Extensions will be granted only in exceptional circumstances, such as documented illness.

Exams

There are three scheduled exams, two prelims and a final.

EXAM DATE/TIME/LOC REVIEW SUPERVISORS STATS
Prelim 1 Thu 10/16
7:30-9pm
Uris Aud
Wed 10/15
7:30-9pm &
9-10:30pm
Upson B17
(both sessions identical)
Parvati, Anthony N P1 stats
Prelim 2 Tue 11/18
7:30-9pm
Uris Aud
Sun 11/16
1:30-3pm
Upson B17
Ashwin, Bobby P2 stats
Final Exam Thu 12/18
2-4:30pm
Uris Aud
Tues 12/9
1:30-3:00pm
Kimball B11

Wed 12/17
7:30-9pm &
9-10:30pm
Upson B17
(both sessions identical)
Fang, Mike final stats

Conflicts

If you have a conflict with another exam or other university-sponsored event:

  • First try rescheduling the other event. Exams take precedence over almost everything else.
  • For other exams, refer to the official schedule. If the other exam is not scheduled by the registrar, the other instructor is obligated to give you the makeup exam.
  • If you have exhausted other means for rescheduling your conflict, you must contact the Course Administrator at least two weeks before the exam. You must explain the nature of the conflict and provide documentation.
  • If you miss an exam because of illness, you must provide documentation.

By University policy, courses are not obligated to provide makeup exams for students taking concurrent courses, and we will not do so in this course. The Courses of Study states: "Students are expected to be present throughout each semester at all meetings of courses for which they are registered."

Retrieving Exams

We distribute prelims in 360 Upson (M-F, 10am-12noon and 2-4pm) 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.

Past Exams

Prelim 1

Prelim 2

Final


Quizzes

There will be occasional in-class quizzes. Quizzes are graded in a binary fashion:

  • 0: you either made no attempt or missed the quiz.
  • 1: you made an attempt at solving the problems.

Quizzes will count for a small percentage of your final grade.


Grading

All assignments and exams receive scores out of 100 points.

Your grader's comments will be posted on CMS. The grading guide will be posted as well, so you can see why points were deducted.

You may receive bonus points for exceptionally nice work. Bonus points do not count in the computation of your final score, but are accumulated separately in a single bonus score for the semester. In some cases this can affect your grade.

Weights

Your final numerical score will be a weighted combination of your scores for all required course work.

ASSIGNMENTS
(45%)
QUIZZES
(4%)
EXAMS
(50%)
EVAL
(1%)
A1 A2 A3 A4 A5 Q P1 P2 F E
9 9 9 9 9 4 15 15 20 1

"EVAL" is the University course evaluation. We get a list of people who fill it out, but 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 D

Note:

  • We may choose to lower the cutoffs based on the overall class performance on all course work, but we will never raise them.
  • 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 an A. Who knows? It might happen some day.

Regrades

For all graded work, you may request a regrade if you feel we have made an error in the grading or simply to request a clarification. To request a regrade, 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 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

  • You may submit a regrade request on any graded assignment or exam to correct mistakes or request clarifications.
  • We reserve the right to regrade the entire submission. As a result, we might raise or lower your entire score. This applies to the final exam as well, which may affect your course grade.
  • We will announce when regrades are completed.
  • Do not email the course staff to request a regrade unless you have a unique situation that our system cannot handle.
  • For assignments and prelims, you must submit your request within one week of the posting of both the grading guide and solutions, unless otherwise posted. For final exams, you have until the end of the last day of classes of the following semester.
  • Final exams do not get handed back, but you may review them in Upson 360 starting the second week of classes in the following semester.

Regrade Procedure

Assignments

  • Use CMS.
  • Under CMS, view the Help screen for information on the regrade facility.
  • In the regrade box, type your request clearly and succinctly. Refer to specific portions of your code and the grading guide.
  • If you need to submit a file, or if CMS's text box does not suffice, write in the text box that you need to communicate with the assignment supervisor.
  • Do not contact the assignment supervisor directly unless the issue is time-sensitive.
  • Completed regrades can be viewed under CMS.

Prelims

  • Do not use CMS unless otherwise instructed.
  • Retrieve your exam from the assignment distribution center in 360 Upson. Bring your student ID!
  • Fill out a regrade form. The consultants will also have some copies. Write your request clearly and succinctly. Refer to specific portions of your code and the grading guide.
  • Staple the form to the front of the exam and submit the request to a CS 2110 consultant during regular consulting hours in Upson 360.
  • Ensure that the consultant on duty logs your request.
  • Completed regrades can be retrieved from the consulting office. We will announce when regrades are complete.

Final Exam

  • Wait until after the second week of classes.
  • Bring your Cornell ID to the consulting office during posted consulting hours.
  • Ask a consultant to review your final. The exam must stay in the room.
  • Fill out a regrade form, which you will find in of 360 Upson. You must put the instructor's name and email address on the form. If you wish to obtain your new grade by email, please state that request on the form.
  • Give the form to the consultant, who will log the request and alert the former instructor of the request.
  • Regrades are usually processed within 2 weeks. You will have to return to the consulting office if you did not give permission for us to email you the grade, as stated above.

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

The utmost level of academic integrity is expected of all students. Please read the following carefully.

Course-Specific AI Policies

  • Each assignment will specify whether you may work with a partner. You may discuss homework problems with other students at a high level. That is, you may discuss general approaches to a problem, high-level algorithm design, and the general structure of code. However, you may not share written code with any other student except your own partner, nor may you possess code written by anyone else who is not your partner, either in whole or in part, regardless of format.
  • When you are allowed to use additional resources such as textbook examples or supplied code, you must credit those sources.
  • When applicable, the programs and other work that you submit must generate the indicated output and/or results.
  • All exams are closed book.
  • You may not assist nor receive assistance from anyone else during an exam.
  • Do not give away any hints on the homework or post any code that might be part of a solution on the newsgroup. Rough algorithms or non-solution-specific code fragments are ok if you need them to illustrate a point.

You are responsible for understanding and abiding by these policies. It is no defense to say that you did not understand them, or that it was not done this way in another course. If you are ever in doubt about anything, ask.

If You Suspect a Violation...

...please contact a member of the course staff immediately. This is not a competition between students vs. faculty. We are all working together toward the same goal, to maximize the value of your educational experience. Violations of academic integrity only hinder this process. There is no honor in it, nor in protecting it. Your information will be held in the strictest confidence and you will not be asked to testify against your peers at an AI hearing.

Penalties

Penalties for violations are assessed on a case-by-case basis. The penalty will usually be a grade penalty. It may be a point deduction, a zero on the homework or exam, a grade reduction in the course, or failure in the course, depending on severity. Repeated offenses are automatically referred to the Academic Integrity Hearing Board and may result in suspension or expulsion from Cornell.

Special Needs

We provide appropriate academic accommodations 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 document your eligibility.