3 hours, during lab on Wednesday May 7th, Main 205, 3-6pm
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
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 activities), modifying XML to design the UI, Java code for implementing application logic