Course Information
Overview
CS 2112/ENGRD 2112 is an honors version of CS 2110/ENGRD 2110. Credit is given for only one of 2110 and 2112. Transfer between 2110 and 2112 (in either direction) is encouraged during the first three weeks. We cover intermediate software design and introduce some key computer science ideas. The topics are similar to those in 2110 but are covered in greater depth with more challenging assignments. Topics include object-oriented programming, program structure and organization, program reasoning using specifications and invariants, recursion, design patterns, concurrent programming, graphical user interfaces, data structures, sorting and graph algorithms, asymptotic complexity, and simple algorithm analysis. Java is the principal programming language.
Time & Place
Lecture:
- Tuesdays and Thursdays, 10:10-11am, Gates G01 (ground floor, below the main entrance).
Labs:
- Mondays 12:20-1:10pm, Hollister 206 or
- Mondays 7:30-8:20pm, Upson 206 or
- Wednesdays 7:30-8:20pm, Upson 206
Discussions:
- Tuesdays 12:20-1:10pm, Hollister 206 or
- Wednesdays 1:25-2:15pm, Hollister 206 or
- Wednesdays 3:35-4:25pm, Hollister 372
You are expected to attend all lectures, one lab, and one discussion each week.
Course Staff
Placeholder for staff
Office Hours Weekly Chart
Day | Name | Time | Location |
---|---|---|---|
Monday | Richard | 11am-12pm | Gates G17 |
Olivia | 1-2pm | Gates G15 | |
Sixian | 4-5pm | Gates G15 | |
Gautam | 6-7pm | Gates G11 | |
Tuesday | Dexter | 11:15am-12pm | Gates 406 |
Travis | 1:30-2:30pm | Gates G17 | |
Jane | 4:30-5:30pm | Gates G15 | |
Wilson | 7:30-8:30pm | Gates G11 | |
Wednesday | Kenneth | 2:30-3:30pm | Gates G19 |
Talha | 4:30-5:30pm | Gates G19 | |
Yiteng | 6-7pm | Gates G19 | |
Thursday | Dexter | 11:15am-12pm | Gates 310 |
Jacob | 1-2pm | Gates G15 | |
Shiyu | 6-7pm | Gates G19 | |
Friday | Albert | 11am-12pm | Gates G19 |
Alan | 12-1pm | Gates G13 | |
John | 1-2pm | Gates G15 | |
Lucas | 3:30-4:30pm | Gates G15 | |
Sunday | Kenneth | 3:30-4:30pm | Tatkon 3343 |
Newton | 8-9pm | Gates G15 |
Prerequisites
Very good performance in CS 1110 or CS 1130 or an equivalent course, or permission of the instructor. If you are unsure whether CS 2110 or CS 2112 is the right course for you, please talk to the instructor of either course. Both courses cover similar material and satisfy the same requirements, but CS 2112 covers material in more depth and has more challenging assignments. It is aimed at computer science majors.
Texts
You are required to read the course notes posted on the web site. These will often contain more detail than what was presented in lecture.
There is a recommended textbook, which is also the textbook for CS 2110. It is useful especially for examples of how to implement various data structures.
- • Data Structures and Abstractions with Java, 4th edition, Frank M. Carrano and Timothy Henry, Pearson Education, 2014. ISBN-10: 0133744051, ISBN-13: 9780133744057.
See also the companion website for additional material.
Other Sources
- • Data Structures and Problem Solving Using Java, 3rd edition, Mark Allen Weiss, Addison Wesley, 2006. ISBN 0-321-32213-4. See also Weiss's website for additional material. A required text from previous years.
- • Program development in Java: Abstraction, Specification, and Object-Oriented Design, B. Liskov and J. Guttag, Addison-Wesley, 2000. ISBN 0-201-65768-6. An excellent source of material on designing and specifying abstractions.
- • Java Precisely, 2nd edition, P. Sestoft, MIT Press, 2005. To access the entire book for free, login via the Cornell Engineering Library.
- • Design Patterns, Erich Gamma, Richard Helm, Ralph Johnson, and John M. Vlissides, Addison Wesley, 1994. ISBN 0-201-63361-2. An extremely influential book on software engineering. According to Wikipedia, as of April 2007, the book was in its 36th printing and has sold over 500,000 copies in English and 13 other languages.
- • Java in a Nutshell, 5th edition, David Flanagan, O'Reilly, 2005. ISBN 0-596-00773-6.
These titles are on reserve in the Engineering library, Carpenter Hall.
The CS 2110 website has many online learning aids and tutorial videos, including introductory videos on Java and Eclipse.
Piazza
We will be using Piazza as an online discussion forum. You are encouraged to post any questions you might have about the course material. The course staff monitor Piazza fairly closely and you will usually get a quick response. If you know the answer to a question, you are encouraged to post it, but please avoid giving away any hints on the homework or posting any part of a solution—this is considered a violation of academic integrity.
By default, your posts are visible to the course staff and other students, and you should prefer this mode so that others can benefit from your question and the answer. However, you can post privately so that only the course staff can see your question, and you should do so if your post might reveal information about a solution to a homework problem. You can also post anonymously if you wish. If you post privately, we reserve the right to make your question public if we think the class will benefit.
Piazza is the most effective way to communicate with the staff and is the preferred mode of interaction. Please reserve email for urgent or confidential matters. Free-ranging technical discussions are especially encouraged. Broadcast messages from the course staff to students will be sent using Piazza and all course announcements will be posted there, so check in often.
CMS
We will be using the course management system CMS for managing assignments, exams, and grades. Everyone who preregistered for the course should be entered, but if you did not preregister, you are probably missing. Please login here and check whether you exist. There will be a list of courses you are registered for, and CS 2112 should be one of them. If not, please send your full name and Cornell netId to the Administrative Assistant or so that you can be registered.
You can check your grades, submit homework, and request regrades in CMS. Please check your grades regularly to make sure we are recording things properly. The system also provides some grading statistics. There is a help page with instructions.
Please do not repost course materials released on CMS publicly. These materials are intellectual property and are meant for participants in the course. They are not free to the public.
Announcements and Handouts
Announcements will be posted to Piazza. Homework and exam solutions will be available in CMS. Check frequently for new postings.
Assignments
There will be seven assignments, mostly involving programming but also some written problems. These assignments will make up 40% of your score. The first three assignments will be done alone. The last four assignments are parts of a single project, which will be done with a partner.
Unless otherwise specified, assignments may be turned in late with a deduction of 10% per day up to a maximum of four days.
Extensions are granted in case of illness or other acceptable excuse.
Exams
There will be one evening prelim and a final exam. Please check the schedule page for times and locations. The prelim will be 20% of your score and the final will be 35%.
Regrades
Graded homework will be available on CMS. Graded exams will be available in the handback room, 216 Gates.
Homework regrade requests can be submitted electronically in CMS. Exam regrades should be handwritten and submitted to the course staff. Please include a description of the grading error with your regrade request.
Academic Integrity
The utmost level of academic integrity is expected of all students. Under no circumstances may you submit work done with or by someone else under your own name or share detailed proofs or code with anyone else except your partner. However, questions regarding general techniques or the requirements of the assignment are permissible.
You must cite all sources, including Internet sources. You must acknowledge by name anyone whom you consulted. You may not give nor receive assistance from anyone else during an exam. You may not give any hints or post any material that might be part of a solution publicly on Piazza. If your question necessarily includes such material, post privately.
If you are unsure about what is permissible and what is not, please ask.
Academic Integrity Resources:
- • Cornell University Code of Academic Integrity
- • Computer Science Department Code of Academic Integrity
- • Explanation of AI Proceedings
Special Needs
We will provide appropriate accommodations for students with special needs and/or disabilities. Requests for 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 110 Ho Plaza (Cornell Health Building), Level 5 to document your eligibility.