Course Information!

Time and Location

Lectures (required)

Every weekday 10:00AM - 11:15AM Hollister Hall 110

About this Course

CS 2110 (cross-listed as ENGRD 2100) 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, complexity analysis, recursion, commonly used data structures, trees, graph algorithms, and abstract data types. Java is the principal programming language. The course syllabus can easily be extracted by looking at the link to lectures.

The official prerequisites are CS 1110 or CS 1112 or equivalent background. This means that you must have a working knowledge of basic programming in some programming language, but not necessarily Java. About 70% of students have not seen Java prior to taking this course, so, if your lack of knowledge of Java makes you nervous, you are in the majority! No need to be nervous.

A complete listing of topics, lecture-by-lecture, appears on the lecture notes page.

Each lecture will be best appreciated if you download the ppt slides the day before the lecture and spend a few minutes going over them; then, during the lecture, have them available to look at, either in paper form or on your laptop or tablet.

In CS 2110, you will learn about:

 

Instructor

NAME & INFO OFFICE HOURS
Natacha Crooks Natacha Crooks
nsc36@cornell.edu

Office hours are every day MWF:12-1pm , TT: 1-2pm in G13.

Teaching Assistants

NAME & INFO OFFICE HOURS
J Hyun Kyo Jung
hj283@cornell.edu
G13
Office hours are 7-8pm on Monday/Thursday.
Liye Zhong Juliet Zhong
lz246@cornell.edu
G13
Office hours are Friday 8.45-9.45am.
Chris Mulvaney Chris Mulvaney
cmm435@cornell.edu
G13
Office hours are Wednesday 6-7pm.

Policies

Makeup Exams (sorry, not possible)

We don't offer makeup exams in cs2110. There are too many reasons for this to list them, but the main reason is that we work hard to create these exams and creating two of them isn't practical. Also, no two exams are of identical difficulty.

Special Situations

We follow Cornell's university-level policy when issues that fall under that policy arise. This covers a wide range of special situations including disabilities, health or family crises, etc.

As a practical matter, this sometimes means we need to excuse you from a particular exam, give you a bit of extra time on an exam or an assignment, or work out a way for you to take the exam remotely.

Work habits in CS2110

Students sometimes study in a course on a weekly or biweekly basis (instead of daily or every other day) and start doing homework a day before it is due. That won't work well in CS2110! For several reasons.

  1. The material taught each lecture is put to use almost immediately. If you don't learn the material each lecture, you won't understand the next lecture.

  2. Programming is learned by doing. It takes regular, steady practice to become fluent. If you play a musical instrument, you know that you have to practice every day or almost every day ---practicing once a week is useless. It's the same thing with programming.

  3. If you start early on a programming assignment, you have time to do it in almost a leisurely, steady, way, giving yourself time to think about and mull over problems and issues. You can easily get help from our consultants. You enjoy it. But if you wait until the last day (or penultimate day) to work on an assignment, the following happens:

    1. You can't get questions answered easily and quickly.
    2. You don't have time to mull things over.
    3. The consultant room is filled with too many students and the consultants are overwhelmed (this is a REAL problem).
    4. You get angry, upset, frustrated. You blame us for not providing more staff help. You make more mistakes because of your state of mind. Consequently, the assignment is not a good, educational experience.

So, for your own sake, do some studying and homework every day, or every other day, rather than once a week or once every two weeks. Learn the material of one lecture before the next lecture. You will find the course so much more relaxed and enjoyable and fruitful.

Grading

You can take the course for a letter grade, an S/U grade, or AUDIT.

Check with your advisor or major to make sure it is allowed before signing up for an S/U grade. To get a grade of S, you have to get the equivalent of a letter grade C- or better. We encourage S/U grades because it does lower your stress.

Someone who takes the course for AUDIT does not take exams and don't have to turn in assignments. They are in the course just for the fun of it and do not get a grade.

Submission of assignments and the lateness penalty

An assignment may be submitted more than once on the CMS. All submissions are kept, but we grade only the latest one. Try to submit well before the 11:59PM deadline. The closer to that time, the more students are submitting, the higher he chance that the CMS will be overloaded and break down or not handle your submission properly. That is your problem. We do program a grace period of an hour or two into the submission time.

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.

The lateness penalty for assignments is 3 points the first day, 4 the second, and 5 each day thereafter. Eventually we lock down CMS, and you can't hand the assignment in at all. Normally, this occurs after 3 days, but we may make an exception if extra time is needed for some reason. We do program a very short grace period into CMS.

Piazza

Piazza hosts a public forum that we use for discussing questions about the assignments. The course staff monitors this group regularly, so this is a great way to get help and interact with the course staf and other studentsf. An extra advantage of using the group is that everyone else can benefit from your question as well. Anyone can visit the group and read previous questions here .

If you know the answer to a question, feel free to post a reply yourself, and you can edit another student's post if you think there is an error in it. 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 Integrity

The utmost level of academic integrity is expected of all students. Please read the following webages carefully. The second one is a great resource for both students and faculty, looking at Academic Integrity from all viewpoints and answering many questions about procedures.