Frequently Asked Questions
[Will there be recitations in the first week of classes?] No. The first recitation sections commence on the week of Feb 1. Students should attend any one recitation per week. If Tuesday or Wednesday is a university holiday for a given week, all recitation sections that week are canceled.
[Which code should I register under?] Engineering undergraduates should register under the ENGRD codes, and Arts students under the COMS codes. Requirements and grading are identical, but if you mess this up, you don't get the proper college credit.
[Do I really need the book?] Yes and No. Obviously, you need access to a copy, but you can share or use a copy from the ones we put on reserve in the Engineering library (you won't be able to check those out, of course). We won't use the book very heavily and I think one copy for as many as 2 or 3 people will work out just fine. So get your roommates to take cs2110 too, and save big bucks! Used textbooks are fine but get the correct edition, please.
[Do you really care if I use Eclipse or not?] Actually, yes. If possible we prefer that you use Java under Eclipse. We use this for demos in class and recitation. Java is non-negotiable: you do need to work in Java, no matter how awesome you are in Erlang, OCaml, or SNOBOL-4....
[So, where can I find Eclipse?] Follow the download instructions on the resources page on our web site. Download the current version of Sun's Java JDK (you won't need the IDE), and then download Eclipse, and you should be able to build a simple "hello world" application and run it.
[Do I really need to come to class?] Yes. We have surprise quizzes in class every week or two and they count towards your grade. Most people who ask this question are trying to take two classes scheduled at the same time. Cornell doesn't allow you to do that, so please don't. We often cover things in class that you won't find in the book and we sometimes depart from the material on the posted slides from lecture. Exams reflect what we covered in class and in recitation, not the book or any other material you could use for a self-taught approach...
[Why can't I just watch the video-notes?]Those are from last year, and from a different instructor; several changes will be made this year. So yes, last year's videotaped lectures are a useful resource and we recommend using them if you cannot avoid missing a lecture. But if you were to get addicted to sleeping late and using videonotes, you would probably have some nasty surprises, plus you would miss those in-class quizzes mentioned above.
[Do I really need to attend a recitation?] Yes, although we don't care which one and you can sign up for one and then attend some other section. But you do need to sign up.
[Can my roommate do my coding for me?] No. We always catch people who get other people to do their homeworks, and then terrible things happen to them. So don't cheat in cs2110, please. We're kind of obsessive about this and we use powerful automated software tools to help us catch people who don't get the point. Asking your roommate (or anyone else) for help is fine, but showing them your code, or looking at their code, or in any way ending up with code that you didn't write your very own self... all of those are big mistakes in this particular class.
[Can I base my solution for the spring 2012 assignment on my friend's solution from a previous year?] No, the assignments differ. But we also check. We kept all the solutions from previous years and will check all the 2012 solutions against them. If we notice that code somehow seems to have evolved from some previous year solution into a 2012 version, we'll treat that as cheating.
[I took CS in high school. Should I skip to cs3110?] Usually the answer to this is a firm "no". Even people with a 5 on the CS AP exam seem to lack a lot of the more theoretical material we cover. Apparently most high school classes are a bit too focused on coding and not focused enough on the ideas behind the code, and on algorithm design and analysis. So definitely skip cs111x if you arrive at Cornell with a good high school background, but don't skip into cs3110 unless some very unusual situation applies (for example you live in Boston and took the equivalent class to cs2110 at Harvard). In those extreme situations, see Professor Joachims for permission to take cs3110. We don't give that permission very often.
[I took CS in high school but I'm terrified. Should I take cs111x as a kind of refresher?] Base this on your CS AP exam score. With a 4 or 5 I would skip into cs2110. With a 1, 2 or 3 you might consider taking cs111x first.
[Don't I need to learn Matlab? If I skip cs111x how will I catch up?] Engineering undergrads who skip cs111x should take the 1-credit self-paced online transition to Matlab course to gain proficiency with that system. You don't need to take cs1112 if you already know Java well enough to have a 4 or 5 on the AP exam.