Programming in Java Practical Class
This course consists of a series of practical classes designed to teach the basics of programming in Java. There are no lectures associated with this course, but there is a question based on it in the final exam. The material in this couse relies on the material taught concurrently in Object-Oriented Programming.
We expect you to attend a two-hour practical lesson once a week for the eight weeks. During the practical lessons you will work through course workbooks. You will also need to complete the associated assessed exercise, or tick, described at the end of each workbook.
The tasks you need to perform in week n of the practical class are as follows:
Arrive at the practical class at the start of your allocated time period (1400-1600, or 1600-1800).
Find a free computer.
Use the course webpage to find the electronic sign-up system and register for a marking slot. You should use this slot to get work for week n-1 marked.
Leave your computer at the end of the session, taking your workbook(s) with you; you may continue to complete any exercises in your own time.
Ensure your solution to the exercises for week n is correct (including any automated tests) and print it out ready for marking in week n+1.
Note: when n=1 (i.e. the first week), the ticker will mark your final submission for ML, and when n=8 there is no additional Programming in Java work but the ticker will mark your submission for Java tick 7.
Those students who are offering only Paper 1 of the Computer Science Tripos need only complete the first five ticked exercises but are free (and encouraged) to attempt all seven. The starred exercises are optional to all students.
Workbook 1: Java command-line tools; primitive types and operators
Workbook 1*: Binary representation of floating point numbers
Workbook 2: Conditional execution and loops
Workbook 2*: More loops
Workbook 3: Arrays and references
Workbook 3*: Animated graphics
Workbook 4: Exceptions; reading data from external sources
Workbook 4*: Batch analysis and statistics
Workbook 5: Interfaces and inheritance
Workbook 5*: Audio synthesis
Workbook 6: Building a Graphical User Interface (GUI)
Workbook 6*: Drawing graphs
Workbook 7: Handling GUI events
Workbook 7*: More GUI programming
Algorithms practical class and final ticking session for Java.
Last ticking session for any remaining unmarked work
Android smartphones are primarily programmed in Java. Its surprisingly easy to build your own Android applications. This year we have an extra bonus exercise to help you get started with Android programming. Completing this exercise does not provide any additional course credit, but please do tell the course lecturers when you have completed it: they are keen to hear how you have got on.
If you already have an Android handset you can develop your application on that. Alternatively, we have 12 Android smartphone handsets to loan to students this term and over the Easter vacation. If you would like to borrow a phone you should send an email to email@example.com once you have passed the unit tests for the first five ticks and associated starred exercises. Phones will be allocated by lottery drawn at 14:00 on the day of the 6th practical session.
The task is to build a GeoMessaging application in order to demonstrate your basic understanding of programming a simple Android application. A GeoMessage consists of a photograph, a short piece of text and a location. The application should consist of an Activity for posting a GeoMessage. The Activity should allow the user to take a photograph and enter some text. When the user indicates that they are ready, the message and the current location should be uploaded to the central server provided by the Programming in Java lecturers. Figure 1, “Screenshots of the Android application” provides a visual impression of the application requirements.
An (optional) extension to this Bonus exercise is to extend the application with an Android Service which runs in the background monitoring the device's current location. When a location update is received you should consult the central server; if there are any new messages near this location you should create a Notification for the user so they can read the nearby GeoMessage. If the notification is selected by the user, your application should display the new message in a new Activity.
A getting-started guide and a detailed walk-through is available on the course website.