Course Information
About this Course
CS 2110 (cross-listed as ENGRD 2110) 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 a working knowledge of basic programming and Java prior to taking CS2110. Official prerequisities are CS 1110 'Introduction to Computing Using Java', or CS 1130 'Transition to Object-Oriented Programming', or an equivalent course in Java or C++. To brush up, visit the CS 1130 web site. We strongly recommend going over the CS1130 material if you aren't completely sure you remember Java.
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.
- the ideas underlying "types" as used in modern programming languages.
You will also get plenty of hands-on programming experience with Java, and learn about its flaws and limitations. You will also learn about the powerful features and the issues associated with Eclipse, the interactive development environment (IDE) we use.
Time and Location
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.
Lectures
Recitation Sections
Day | Time | Room | TA |
---|---|---|---|
Tu | 12:20pm - 1:10pm | HLS 306 | Lydia |
Tu | 12:20pm - 1:10pm | OLH 165 | Akilesh |
Tu | 1:25pm - 2:15pm | BRD 140 | Mark |
Tu | 2:30pm - 3:20pm | PHL 219 | Thomas |
We | 12:20pm - 1:10pm | HLS 306 | Nick |
We | 1:25pm - 2:15pm | BRD 140 | Yinglei |
We | 2:30pm - 3:20pm | HLS 110 | Haocheng |
Instructor
NAME | CONTACT | |
---|---|---|
![]() |
Prof. Doug James Professor |
djames [at] cs.cornell.edu |
Teaching Assistants
The TAs teach recitation sections and assist with homework and exams. All TAs hold office hours, and we strongly encourage you to attend them if you have difficulties.
NAME | CONTACT | |
---|---|---|
![]() |
Mark Verheggen HEAD TA |
mark [at] cs.cornell.edu |
![]() |
Konstantinos Mamouras HEAD TA |
mamouras [at] cs.cornell.edu |
![]() |
Nicholas Eng-Rohrbach TA |
nse6 [at] cornell.edu |
![]() |
Lydia Wang TA |
lw354 [at] cornell.edu |
![]() |
Akilesh Potti TA |
avp39 [at] cornell.edu |
![]() |
James Feher TA |
jkf49 [at] cornell.edu |
![]() |
Yinglei Adam Wang TA |
yw287 [at] cornell.edu |
![]() |
Haocheng Victor Shen TA |
hs454 [at] cornell.edu |
![]() |
Thomas Torng TA |
tlt58 [at] cornell.edu |
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. Consultants hold office hours in 360, and are always happy to help with Java and Eclipse issues. See the consultant schedule.
NAME | CONTACT | |
---|---|---|
![]() |
Sara Boccabella Consultant |
snb42 [at] cornell.edu |
![]() |
Jared Claypoole Consultant |
jjc385 [at] cornell.edu |
![]() |
Jeremy Cohen Consultant |
jrc352 [at] cornell.edu |
![]() |
Husam Eldawi Consultant |
hme36 [at] cornell.edu |
![]() |
David Felty Consultant |
djf242 [at] cornell.edu |
![]() |
Brian Finn Consultant |
bgf25 [at] cornell.edu |
![]() |
Samuel Fischer Consultant |
sef67 [at] cornell.edu |
![]() |
Amanda Gordon Consultant |
akg56 [at] cornell.edu |
![]() |
Xiaoyue Guo Consultant |
xg55 [at] cornell.edu |
![]() |
Matthew Hayes Consultant |
mjh388 [at] cornell.edu |
![]() |
Jisun Jung Consultant |
jj329 [at] cornell.edu |
![]() |
Maxwell Klefstad Consultant |
mk672 [at] cornell.edu |
![]() |
Ryan Kozierok Consultant |
rnk49 [at] cornell.edu |
![]() |
Ying Crystal Qin Consultant |
yq37 [at] cornell.edu |
![]() |
Xue Rong Shane Soh Consultant |
xs46 [at] cornell.edu |
![]() |
Rebant Srivastava Consultant |
rrs67 [at] cornell.edu |
![]() |
Kristen Tierney Consultant |
kjt54 [at] cornell.edu |
![]() |
Darren Voon Consultant |
dtv23 [at] cornell.edu |
![]() |
Joachim Valdez Consultant |
jjv57 [at] cornell.edu |
![]() |
Xue Helena Wang Consultant |
xw92 [at] cornell.edu |
![]() |
Alvin Adrian Wijaya Consultant |
aaw39 [at] cornell.edu |
![]() |
Victoria Wu Consultant |
vw52 [at] cornell.edu |
![]() |
Limin Zhu Consultant |
lz98 [at] cornell.edu |
Piazza Forum
The CS 2110 Piazza Forum is a public forum for discussing questions about the assignments. The course staff monitors this forum regularly, so this is a great way of getting help and interacting with the course staff. An extra advantage of using Piazza is that everyone else can benefit from your question as well.
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.
Academic Excellence Workshops
There will be Academic Excellence Workshops (AEW) accompanying CS2110 this semester. AEWs offer 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.
See the AEW webpage for further information.
Times Offered
Tuesday | 11:15AM - 1:10 PM | Olin Hall 216 |
Friday | 2:30PM - 4:25 PM | Hollister Hall 401 |
Grading
All assignments and exams receive scores out of 100 points. The points roughly correspond to letter grades as follows.
92 - 100 | A-, A or A+ |
82 - 88 | B-, B or B+ |
72 - 78 | C-, C or C+ |
50 - 68 | D-, D or D+ |
For homeworks, your grader's comments will be posted on CMS. For exams, the comments are written directly on the exam. Graded prelims can be picked up in Upson 360 (opening hours Mondays - Thursday: noon - 4:00pm, Friday: 1:30pm - 4:00pm).
If an assignment is handed in late, we deduct 5 points for every 24 hours it is late. However, every student has a budget of 5 late days (i.e. 24 hour periods after the time the assignment was due) throughout the semester for which there is no late penalty. At some point CMS locks down and you can't hand the assignment in at all. Normally, this occurs after 3 days, but we may make an exception if the head TA feels that extra time is needed for some reason.
Your final numerical score will be a weighted combination of your scores for all required course work, and it will follow the same mapping to letter grades that was stated above. We reserve the right to change the relative weights.
- 5 Assignments (43%)
- 2 Prelims (30%)
- Final (20%)
- Survey (1%)
- CourseEval (1%)
- Quizzes in class (5%)
To eliminate outlier grades for homework assignments and quizzes, the lowest grade is replaced by the second lowest grade in the final grade computation.
"CourseEval" is the University course evaluation. You get one point for participating. We get a list of people who fill it out, but the university keeps your responses anonymous. Similarly, we are conducting a "Survey" at the beginning of class to learn more about your background and interests.
Regrades Requests
Regrade Requests for Assignments and Prelims
- Do NOT use CMS for regrade requests.
- Retrieve your assignment from CMS or your exam from the distribution center in 360 Upson. Bring your student ID!
- Fill out a regrade form. Write your request clearly and succinctly. Refer to specific portions of your code or to specific exam questions.
- Staple the form to the front of the exam or the portion of your assignment.
- Drop your regrade request off in class.
General Regrade 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.
Academic Integrity
The utmost level of academic integrity is expected of all students. Please read the following carefully.
- Cornell University Code of Academic Integrity
- Computer Science Department Code of Academic Integrity
Course-Specific Academic Integrity 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.
- If you work with a partner on an assignment, 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.
- 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 negative score 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.