I will be holding office hours tomorrow (Friday) morning from 9am until noon: they will be my last office hours of 2010. If you have any questions or concerns about your grade, the course, &c.—or simply want to chat—please stop by.
I can only hope that this course has left you well prepared for your future endeavors. I wish you the best of luck and a happy holiday season. Take care! — Dave
Due Mon 12/6: mandatory Postmortem and final deliverables.
For what it's worth, I loathe double-spaced papers—quad-spaced is the only way to do it. But seriously: I like single-spaced, 12pt. font.
This is the promised material from today's lecture Shape hierarchy & implementation.
This lecture supplement may save you some aggravation: Working with interfaces.
For those of you unable to attend class last wednesday, here are the lecture 39 notes.
For maximum benefit, do this before Friday's class! Practice lab 11/10/10
There is, not surprisingly, a very strong correlation between the number of homeworks completed and median exam scores.

As I suspected, the grade distribution is bimodal (two humps). I'm delighted to report that 10% of those taking the exam earned 100 or more points and that 20% earned 90 or more! Congratulations! Great job! The most common grade was in the 80's (a very respectable score), and (much to my dismay) the second most common grade was in the 30's. While more people did better on this exam (compared to exam 1), more people also did worse [it should be noted that any attempt to draw conclusions by comparing performance on the first two exams is fraught with peril as exam 1 was biased towards regurgitating definitions and exam 2 biased towards problem solving].

FYI: no lab this Thursday (11/11) as it is a holiday.
Start reading chapter 5
One of the the HashMap methods I mentioned in class is really named containsKey( key ).
Do: 5.1-5.35
Turn in: 5.17, 5.18, 5.20, 5.27, 5.32, 5.34, & 5.35
If you did not attend this week's lab, please e-mail me today if you plan to take the exam on Monday (I need an accurate count of exams to print).
FYI: I uploaded the inefficient HW17 solution to the code directory.
The ScannerDemo has been uploaded to the code directory. For the homework, you'll be reading from a File (which will need to be in the BlueJ project directory in which you are creating/running your program) so you'll need to
import java.io.*;
For those of you wanting a pre-quiz practice problem... implement (and, of course test) the method printAligned that takes four integer values and prints them in an aligned column, such that the longest integer shall be flush with the start of a newline and that their least significant digit shall form a column. Some examples (note: the start of a newline is indicated by | and is not part of the output):
|-1 |11 | 7 |13
| 4 | 888 |12345 | -3
| 8 |-4892 | 2 | 19
For those of you wanting an even more challenging pre-quiz practice problem... implement (and, of course test) the method printCommaAligned that takes four integer values and prints them in an aligned column, such that the longest integer shall be flush with the start of a newline, the digits are group by threes separated by commas (the standard written convention) and that their least significant digit shall form a column. Some examples (note: the start of a newline is indicated by | and is not part of the output):
|-1 |11 | 7 |13
| 4 | 888 |12,345 | -3
| 8 |-4,892 | 2 | 19
Hint: how many characters, does the largest "written" int value require? The smallest?
Microsoft's annual College Puzzle Challenge will be held on Saturday, November 6th. Team registration is open. It's a fun event, hosted by Gator grads!
FYI: in BlueJ, if your program gets stuck in an infinite loop, open the debugger window and click the Terminate button (big, red X).
Tony will be holding extra office hours periods 8 and 9 today.
This is both a HW and a lab preview Write and throughly test methods that do each of the following:
5 5 4 5 4 3 5 4 3 2 5 4 3 2 1
1 ⇒ * 2 ⇒ ** ** 3 ⇒ *** *** ***
1 ⇒ * 2 ⇒ ** ** 3 ⇒ *** * * *** 4 ⇒ **** * * * * ****
Write methods that do each of the following; then write another test method that takes a String and calls each of the other methods.
TiGeR! --> tIgEr!
TiGeR! --> T!iRGe Tiger --> Trieg cat in hat --> ctaath in
Here are some practice problems for those of you who want some exercises to help prepare for the next lab quiz.
FYI: this week's lab will not cover any material new to chapter 4. Expect the problem to be a simulation that requires the use of conditional logic, unit conversions, and figuring out formulae. Remember: analysis first!
FYI: I curently can read, but not reply to email. I've spoken to the sysadmins and hope to have the situation fixed sometime tomorrow.
Please bring at least one blue pen or black pen with which to record your answers on today's and future exams. The requirement, of course, refers only to the exterior of the pen: its ink must be some shade of invisible-except-under-UV-light. ;)
The exam dates are now confirmed. The syllabus has been updated with locations and times.
The Labs are held in CSE room E113. To get there, go to the ground floor of the CSE building (across from Turlington, separated from Marston Science Library by the "fries.") Find the recessed, double-wooden-door doorway, which is the entrance to E114. Go inside. E113 is in the back left corner. For the first quiz, HW01 - HW03 are fair game. Bring your UF ID!
The labs are quizzes: that means... Closed notes. Closed book. Closed internet (except webpage(s) your TA specifically tells you are OK for that lab. Closed files (you may not look at any files stored in the CISE directory space other than those your TA specifically tells you are OK for that lab).
Because the Labs are quizzes, to be fair to everyone, you are prohibited from discussing or divulging the contents of a lab quiz until after 6pm on the day it is given. You are likewise prohibited from receiving information about a quiz in advance of your taking it. If you know of someone violating these prohibitions, please inform Dave ASAP.
You will be issued a CISE account in lab. All account owners are responsible for knowing and following the CISE Acceptable Use Policy, and other CISE policies. They are also responsible for knowing the information contained in the CISE help pages relevant to their uses of the account.
Pick a good password before your lab meets. It must be one that you can remember (because you are not allowed to record it anywhere other than your neurons)!
Version 3.0.2 was released a couple days ago; you may want to download and install it as it supposedly fixes a couple bugs.
You should submit hardcopies of the complete source code for all classes that you modify or (later in the semester) author. When you are modifying someone else's code, it's a good idea to highlight the changes you made. You should be able to print straight from BlueJ—but, frankly it doesn't matter how you print the source code as long as you print it (though I would note that making screen shots of the source code is a waste of ink/toner).
1.14 enhanced: In this exercise, we'll be adding a second sun to the picture. Pay attention to the field definitions close to the top of the class. You will find this code:
private Square wall;
private Square window;
private Triangle roof;
private Circle sun;
Immediately below that line, add the line
private Circle sun;
Yes, you should have two identical lines in a row! Now press Compile. Write down what happens (is anything highlighted with yellow? is there a message at the bottom of the editor window? What does it say?)
Now change the line that you wrote so that it looks exactly like this:
private Circle sun2
(Notice the semicolon has been replaced with a 2.) Press Compile. Write down what happens (is anything highlighted with yellow? is there a message at the bottom of the editor window? What does it say?)
Now change the line that you wrote so that it looks exactly like this:
private Circle sun2;
(Notice a semicolon has been added after the 2.) Press Compile. Write down what happens (is anything highlighted with yellow? is there a message at the bottom of the editor window? What does it say?)
Picture and invoke its draw method. What happens? What didn't happen? Why?
Remember, when you make changes to the source code you, before you can run it, you will need to press the Compile button at the top left of the editor window. This will translate the source code (which is meant to be human readable) into code that is runnable by the computer. Remember: anytime you make a change to the source code, you'll need to compile before the program can be run.
What am I supposed to turn in?
Did you write or modify any code?
No: so no source code should be turned in
Did you do something that produced graphical output?
Yes: so a screen shot of the output should be turned in
The the problem ask you any questions or tell you to write anything down?
Yes: that should be included.
How do I take a screen shot/print the picture?
That depends... Google for "screen shot" and your operating system's name to find out how to do it for your OS.
If when you run the shapes example, the top part of your BlueJ window looks like this...
then you probably using the "shapes" from BlueJ's examples directory and not the one in projects/chapter01 (from the zip filed that item #3 on the required software page instructed you to download), because if you were, you'd be seeing...
instead. I'm can't guarantee that both "shapes" are the same version of the program, so use the one from the zip file.
BTW, What's the difference between the two pictures? The diagonal lines indicate that the class needs to be compiled before it can be instantiated. If you right click, you'll see that compile is one of the options on the pop-up window. We'll talk about compilation soon.
I will be collecting the biosketch and HW01 separately. Please do not combine them.
Unless otherwise explictly specified, all homeworks are due at the beginning of the next lecture and you should expect that homework will assigned every lecture. Homework assignments typically will be announced in class and not posted online. Remember the deliverable format (and when the output is graphical, to include a screen shot).
As announced in today's lecture, the deliverable's coverpage shall have an additional item in the upper right-hand corner:
Labs will begin on Thursday, 9/2; they will not meet the first week of class.
If you don't have the book yet, you can download the first two chapters here.
Welcome to Programming Fundamentals for CIS Majors 1! Be sure to check this page at least once a day so you don't miss any important announcements.
The mandatory biosketch assignment is due at the start of lecture on Friday 8/27. If you've written one previously, you can simply resubmit it with an updated “why you are taking this course” section, or even better, take the opportunity to tell me something new about yourself. (Should you be interested in such things, Dave: fact or fiction? is available for your reading pleasure.)