CS 1110 Introduction to Computing using Java    Fall 2009  
11081 TR 09:05 Olin Hall 255 Instructors: David Gries & Lillian Lee  
11083 TR 11:15 Olin Hall 255 Grade: letter or S/U.   Credits: 4
flue image

CS1110, Fall 2009. Home page

From the Cornell Courses of Study

CS 1110 Introduction to Computing using Java
Fall, spring, summer. 4 credits. Assumes basic high school mathematics (no calculus) but no programming experience.

Programming and problem solving using Java. Emphasizes principles of software development, style, and testing. Topics include object-oriented concepts, procedures and functions, iteration, arrays, strings, algorithms, exceptions, GUIs (graphical user interfaces). Weekly labs provide guided practice on the computer, with staff present to help. Assignments use graphics and GUIs to help develop fluency and understanding.

This web page is for Course CS1110 (previously CS100J).

Click here for information about alternative courses.

Check the announcements

Mouse movement in A7.
Some of you are having trouble getting the ACM graphics system to listen to mouse movements. Before you email us, read our discussion of this and spend some time trying to figure out this yourself. You'll feel better than if we just tell you. If, after some time, you still can't figure it out, email us or ask a consultant or TA.
More about the CMS mail sent about A6.
(a) All the A6 submissions have been graded. The grade does not reflect academic integrity issues.
(b) In general, we'll be handling the A6 issues some time after the amnesty-petition window closes, and we may not respond to petitions or act on particular cases until sometime into next week or later.

Two more remarks about A5. (i) The spec for drawSpiral that says "Use angle ang between adjacent lines" means that angle ang should be added after drawing each line, as mentioned in the handout. (ii) The handout description for H-trees mentions method "moveAhead"; this should instead be "drawLine". We apologize for the error.

A5, a subtle GUI error, a Javadoc update, and remarks about speed.

(1) The ACM graphics package itself has a small bug that means that in order to be sure that the last all actions that a GTurtle or GPen undertakes happens, you may need to resize the drawing window.

For example, in the Interactions pane, try typing "a= new A5(); t= a.getTurtle(); t.setDirection(180);". The GTurtle obstinantly continues to face east until you resize the window.

The problem is that some of the ACM methods don't call the repaint() method correctly.

(2) The zip file includes the "student view" ACM javadoc, which omits some information. If you are curious, you can view the complete documentation here

(3) In the handout, we mistakenly have example calls for multiPolygons with speeds greater than 1. Also, your multiPolygons method, which has a speed parameter, calls drawPolygon, which doesn't but always goes at the fastest speed. Do not alter the code for drawPolygon; just write the code for multiPolygons to set the speed to its input speed and then restore the original speed as if this would actually matter. Sorry about that!

A4, a subtle GUI error. The GUI has an error, in that the values calculated when you click a button like InCMYK are wrong. This has been fixed; look at the assignments page and try the applet or download the jar file.

This was not an error in computation but one that concerned "listening" and responding to changes in sliders. It was a tough one to find. Visit the announcements page to read about it. Inputing values in the fields in the bottom f the GUI won't work in your version unless you download and use this fixed A4.java.

A4, round2Five. Here's another hint on writing round2Five.
A3. Click to see two uses in A3 of the principle of calling existing methods.
A3. A subtle programming error in function eatenBySame.
A3. Typo in explanation of function isHigherThan; a "not" is missing. The explanation should read, "The specification of the first function is equivalent to: if org is not null and this organism is at a higher level than org, return true; otherwise, return false."
A2. Here's a syllogism for you. All methods declared in a class appear in the partition for that class in an object; a constructor is a method; therefore, a constructor appears in the partition for that class in an object.
Office-hours. TA regular office-hours are going on. See the office hours of the profs, TAs, and consultants on the staff webpage (the consultant schedule, which varies week-by-week, is accessed by a link at the bottom of that page).
VideoNote. Lecturse are being videotaped. The link for this semester is www.cs.cornell.edu/videonote/cornell.
Flu. Click the image at the top right to check Cornell's flu status. If you have flu symptoms, stay home and use VideoNote to see the lectures.
About labs. Please read this announcement about labs.
Schedule of consulting hours. Click here
CMS. Haven't received any CS1110 email yet? No serial number on your iClicker so you can't register it? Can't login to the CMS to complete the First Day Survey? See the recent announcements by clicking here.
Older Announcements. Click here.

Expected outcomes of CS 1110:

(1) Understand OO concepts, as used in Java: classes, subclasses, inheritance, and overriding. This includes an operational model of method calls. Understand the basics of OO design.

(2) Be fluent in the use of procedural statements ---assignments, conditional statements, loops, method calls--- and one-dimensional arrays. Be able to design, code, and test small Java programs that meet requirements expressed in English. This includes a basic understanding of top-down design.

(3) Have knowledge of basic searching and sorting algorithms.

For more information on the course, see its syllabet.


Exams

The times for all prelims and the final are given here.
Please be sure you are free at these times, or email mwitlox@cs.cornell.edu if you have conflicts.