Computer Laboratory > Teaching > Course material 2009–10 > Further Java

 

Further Java
2009–10

Principal lecturers: Dr Alastair Beresford, Dr Andrew Rice
Taken by: Part IB
Syllabus
Past exam questions
Note: Questions from the old Concurrent Systems & Applications course are often relevant, although some knowledge of what is now the Concurrent & Distributed Systems course may required to answer parts of these questions. This year, questions for the Further Java course will not rely on knowledge of the Concurrent and Distributed Systems course in this way. With this caveat, suitable questions from the Concurrent Systems and Applications course include: 2002P5Q4, 2003P5Q4, 2004P4Q8, 2005P5Q4, 2006P5Q4, 2009P5Q6.

Meet the lecturers

Andrew RiceAlastair Beresford

 

Tick List

Students must pass five "ticklets" (1-5 inclusive) in order to gain the overall tick for this course. Work completed for Tick 0 is marked separately and is also worth a tick.

Current ticklist

Practical classes

Students are expected to attend one practical session per week. The dates and times of the practical sessions associated with this course are as follows:

DateTimeSession
Monday 2nd November2pm — 4pmA & B
4pm — 6pmC & D
Monday 9th November2pm — 4pmA & B
4pm — 6pmC & D
Monday 16th November2pm — 4pmA & B
4pm — 6pmC & D
Monday 23rd November2pm — 4pmA & B
4pm — 6pmC & D
Monday 30th November2pm — 4pmA & B
4pm — 6pmC & D

 

Workbooks

The workbook for each practical class will appear here just prior to the start of the practical session.

Workbook errata

The printed workbooks contain (at the very least!) the following errors. Errors are indexed by workbook (W), page (P) and line (L), which may be negative, indicating that the reader should count upwards from the bottom of the page. These errors have been corrected in the on-line versions of the workbooks shown above. If you find any further errors, please email ticks1b-admin[at]cl.cam.ac.uk.

ErrataCorrigeFrom
1312create a class in the project called HelloWorldcreate a class called HelloWorld in the package you've just createdrhm31
1720}};ia264
183uk.ac.cam.crsid.tick1uk.ac.cam.crsid.fjava.tick1arb33
1*113SwingAWTrjw201
2226heirarchyhierarchydb434
2314-15http://www.cl.cam.ac.uk/teaching/0910/fjava/testmessage.jobjhttp://www.cl.cam.ac.uk/teaching/0910/FJava/testmessage-crsid.jobjacr31
24-9http://www.cl.cam.ac.uk/teaching/0910/fjava/messages.jarhttp://www.cl.cam.ac.uk/teaching/0910/FJava/messages.jaracr31
252on port 15003on port 15003.arb33
26-3deserialiseddeserialisedb434
277loadedloaded.acr31
277,11[Server][Client]acr31
285-6Remove the two print statements you placed in the code in response to questions 11 and 12. (Only remove the print statements, leave the rest of the code intact.) Remove the print statement you placed in the code in response to question 12.acr31
2810[Server][Client]acr31
2814Please make sure you print out the contents of any fields (question 15 above) before you invoke the run method (if any).acr31
2*1-12Extra hint added for Apple usersmcm57
3114coordiationcoordinationjrb95
3114nor was therenor were therejrb95
36-7cycle 0cycle 1jrb95
3714-16aquireacquirejrb95
3720-23aquiringacquiringjrb95
3720-23aquiringacquiringjrb95
37-5BankSimlatorBankSimulatorjrb95
37-3acountsaccountsjrb95
4420excutedexecutedjrb95
4421-26Steps 3 and 4 are the wrong way round.Perform step 4 before step 3.acr31
4616-17MultiMessageQueueMultiQueueacr31
4*1-6java -jar chatserver.jar 2222 localhost:5678java -jar chatserver.jar 2222 1111 localhost:5678rk395
4*1-4java -jar chatclient.jar 1234java -jar chatclient.jar localhost 1234rk395
4*1-3java -jar chatclient.jar 2222java -jar chatclient.jar localhost 2222rk395
52-13MESSAGESmessagesrc478
53-16top ten most recent posts made by users.top ten most recent posts made by users, latest first.jrb95
5412shutdown the database cleanlyclose open connectionsarb33
54-7Total messagesTotal loginsarb33
54-3DatabseDatabasejrb95
5514you should also create the database tables.arb33
5515shutdown the database andarb33
55-5StatusMessageRelayMessagearb33
561RelayMessageChatMessagearb33

There is an error in the use of database connections and calls to commit in Workbook 5. Since the class Database only creates a single connection to the database, and calls to commit are made on this single connection, different threads may still interleave updates to the statistics table and the messages table. One easy fix is to create a new instance of Database for each instance of ClientHandler, however this might lead to performance problems when a large number of clients are connected. A better solution would associate a database connection with each instance of ClientHandler. You do not need to implement either fix to pass Ticklet 5 this year.

 

Seating assignments

Students have been assigned the following seats for the practical classes. Please email the Principal Lecturers without delay if you are a CST 1B student and your name is not in this list.

StudentCRSIDSessionMachine
Aggarwal, I.ia264CPCCL036
Alexander, T.ta299DPCCL054
Aralbayev, A.aa537DPCCL060
Askham, H.ha293CPCCL045
Aucinas, A.aa535BPCCL023
Bastow, J.jb637DPCCL059
Bell, J.R.jrb95DPCCL061
Benwell, J.D.jdb65DPCCL069
Betser, D.dmb62APCCL006
Blume, B.bb379APCCL003
Bown, J.C.jcb84DPCCL065
Brewin, F.P.fpb22APCCL004
Brown, C.L.clb76BPCCL039
Cameron, H.D.hdc21CPCCL048
Chen, N.J.nc344CPCCL039
Chen, Q.qc217BPCCL034
Chick, O.oc243DPCCL057
Clark, M.J.A.mjac4BPCCL027
Codreanu, R.rc478BPCCL021
Cooper, R.rmc57APCCL019
Dalibard, V.vd241BPCCL037
Drozdzynski, M.md481BPCCL026
Dunietz, J.jd511BPCCL046
Eaton-Rosen, S.se289CPCCL035
Edwards, T.D.tde21DPCCL070
Eide, S.P.spe24CPCCL049
Griffiths, L.J.ljg39BPCCL035
Hall, S.sh580BPCCL043
Hamad, H.hh316CPCCL051
Hands, C.R.crh55BPCCL040
Helliwell, G.gh323BPCCL024
Hogan, M.W.mwh27APCCL020
Hollington, S.sh583BPCCL031
Hughes, H.hrh32APCCL015
Imbrasaite, V.vi206BPCCL041
Iosif, A.ali22CPCCL043
Irons, D.di227BPCCL028
Jiang, X.xj216APCCL008
Johnston, C.crj29DPCCL056
Joseph, I. C.icj20APCCL045
Kaplan, J.jk451CPCCL037
Karim, R.rk395CPCCL042
Katz, E.P.epk23DPCCL071
Kim, J.M.C.jmck3DPCCL058
Kislov, D.dk382DPCCL068
Kyng, R.J.rjk43CPCCL038
Lehtinen, M.K.mkl25APCCL016
Li, R.rl374DPCCL063
Maas, M.C.mcm57CPCCL041
McKnight, A.am771APCCL001
Milouchev, A.am925CPCCL034
Mohrmann, J.K.jkm47DPCCL064
Montgomery, D.J.djm208APCCL013
Moody, D.dm484APCCL012
Nath, P.A.pan23APCCL005
Nawazish, A.M.amn36DPCCL062
Neve, J.jn283BPCCL029
Pham, N.L.nlp27CPCCL053
Piggott, D.H.dhp26APCCL018
Powell, C.cp398APCCL010
Qin, T.T.ttq20DPCCL067
Reid, D.dr336BPCCL030
Reynolds, P.J.R.pjrr2BPCCL032
Schmidt, L.ls475BPCCL038
Sethasathien, N.ns450BPCCL042
Shan, Y.ys333DPCCL066
Shaw, S.ss837BPCCL033
Spencer, C.cs560DPCCL055
Sumner, P.ps488CPCCL046
Szpiro, N.ns447CPCCL052
Thomas, D.drt24APCCL007
Tordoff, S.S.sst32BPCCL025
Vaitukaitis, V.vv236CPCCL040
van Duuren, K.kv250CPCCL044
Walshaw, C.clw60APCCL014
White, T.tfmw2BPCCL022
Whitehouse, R.J.rjw201APCCL011
Whittaker, S.R.srw42APCCL017
Wilson-Haffenden, S.R.srw45APCCL050
Wright, D.A.daw68CPCCL047
Zhang, F.fz227APCCL002