No makeups will be considered without an official University excuse
The exam will consist of two parts:
Written part
50 minutes
Closed book, closed notes
You are allowed a two-sided 8 1/2 x 11 note sheet, hand-written
No electronic devices are allowed during the written portion.
Programming part
100 minutes
Open web, open notes
This will be like a mini-programming assignment
You may use code from your past programming assignments or from the course web site
You will submit your final program(s) into the Moodle Exam #2 dropbox
Your program will be graded on correctness, clarity (including comments), design, and efficiency
You will lose a substantial number of points if your program(s) do no compile or if they crash on typical inputs
You can use a lab machine or your own laptop
No communication with any non-staff members is allowed.
This includes all forms of real-world and electronic communication (talking, sign language, ESP, email, twitter, IRC, facebook, SMS, posting questions on forums, smoke signals, etc).
Material covered:
Lectures 0-20
Head First Java, Ch 7, 8, 9, 11, 12, 13, 15, 16, p.670
Programming assignments 0-9
Detailed topics:
Topics covered in CSCI 135 and CSCI 136 Exam 0 and 1, but with an emphasis on the topics below:
Differences between command line and GUI applications
JFrame, what it is, how to create one
JFrame, common operations: adding things, setting size, visibility, title
How an applet is an element appearing on a web page, runs in a security sandbox
Double buffering for preventing flickering when drawing
Differences/advantages/disadvantages between compiling a program to native code, compiling to byte-code, or interpreting at runtime
Deploying Java application via a JAR file
What the Java Classpath switch/system parameter does
Two approaches to saving state of your program/objects
Serializable marker interface, needed for object serialization to work, no methods to implement
To serialize, all instance variables must also be serializable
Marking instance variables as transient if they should not be saved
Saving/reading objects from disk using ObjectOutputStream and ObjectInputStream
Components of the web: URLs, HTTP request/response protocol, HTML
Understand basic request/response protocol used by HTTP via socket communication on port 80
How to retrieve a web page in Java, using URL and URLConnection classes
Web services: basic idea, examples of what they might provide
REST web services: request desired information by going to a specific URL
Extending an existing class versus implementing an interface, why do we extend things like JFrame and JPanel but implement things like Runnable and ActionListener?
Abstract classes, fact that you can't instantiate them, why they are still useful, e.g. Rectangle class in Stick Man assignment.
super() for calling a constructor in parent, super() for calling a method in parent
Basic Android development concepts: activities (usually a screen), intents (sending messages to other activites), modifying XML to design UI, Java code for implementing application logic