Computer Laboratory > Teaching > Course material 2009–10 > Programming in Java


Programming in Java

Principal lecturers: Dr Alastair Beresford, Dr Andrew Rice
Taken by: Part IA CST, Part IA NST, Part I PPS
Past exam questions

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:

Thursday 14th January2pm — 4pmA & B
4pm — 6pmC & D
Thursday 21st January2pm — 4pmA & B
4pm — 6pmC & D
Thursday 28th January2pm — 4pmA & B
4pm — 6pmC & D
Thursday 4th February2pm — 4pmA & B
4pm — 6pmC & D
Thursday 11th February2pm — 4pmA & B
4pm — 6pmC & D
Thursday 18th February2pm — 4pmA & B
4pm — 6pmC & D
Thursday 25th February2pm — 4pmA & B
4pm — 6pmC & D
Thursday 4th March2pm — 4pmA & B
4pm — 6pmC & D


Game of Life Animations (Tick 3*)

The submissions for Tick 3* can be viewed here

Audio representations of the Game of Life (Tick 5*)

A description of how each submission works can be viewed here


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

You may find the restart guide helpful if you need to reboot your PWF workstation from Windows into Linux.

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 ticks1a-admin[at]

24-5should not leave the PackedLong class in the tick2 packageshould not leave the PackedLong class in the tick1 packagecv274
25-22the method PackedLong.set in Tick 2the method PackedLong.set in Tick 1arb33
410-10The source code and byte code for PatternLife is required.Add: and PatternLife.classcjre3
7121Make the variable patternList inside the method setPatterns in the class PatternPanel a private field of the class instead. (This will allow the event handler you write in the next step to access the list of patterns referenced by patternList.)Create a new field called patternList in the class PatternPanel. Change the method setPatterns in the class PatternPanel to update the field patternList to reference the method argument list whenever the setPatterns method is called. (This will allow the event handler you write in the next step to access the list of patterns by referencing the field patternList.)acr31


Bit visualisation programs

You can download three bit visualisation programs from this website:

  • b2d.jar (exploring binary to decimal conversion)
  • d2b.jar (exploring decimal to binary conversion)
  • bitwise.jar (exploring bitwise operators)

To use the programs, download them to your home directory, start a new shell, and run the jar file as described in the workbook. For example, to run bitwise.jar you would type the following:

java -jar bitwise.jar

Each program will print out a helpful usage message which you can use to work out what additional options to give the program. Ask a demonstrator for help if you get stuck.


Seating assignments

Students have been assigned the following seats for the practical classes. Please email the Principal Lecturers without delay if your name is not on this list and you are a Part IA CST student or otherwise due to offer Paper 1 of Part IA CST.

Akra, A.M.APCCL001
Allen, J.-M.A.APCCL002
Amarsi, A.M.APCCL003
Balogh, M.APCCL004
Bargery, L.J.APCCL005
Beardmore, F.S.W.APCCL006
Beaumont, S.J.APCCL007
Bergman, A.APCCL008
Bland, J.R.APCCL010
Bowers, W.A.APCCL011
Burksaitis, A.APCCL012
Bytheway, T.A.APCCL013
Chau, K.C.I.APCCL014
Chen, D.APCCL015
Colliver, E.C.APCCL016
Conway, M.J.APCCL017
Cowan, P.R.APCCL018
Lockett, J.A.APCCL019
Long, X.APCCL020
Lonsdale, T.B.APCCL021
Lucas, S.E.APCCL022
Marsh, W.APCCL023
Morland, W.M.APCCL024
Norris, J.J.APCCL025
Ostasevicius, T.APCCL026
Pappenheim, E.R.APCCL027
Paris, J.APCCL067
Pinski, P.APCCL028
Potts, A.T.APCCL029
Reed, S.L.APCCL030
Rex, S.K.APCCL031
Robertson, A.APCCL032
Robertson, F.R.APCCL033
Ryrie, A.M.APCCL034
Cross, S.M.BPCCL035
Cunningham, E.J.BPCCL036
Day, F.V.BPCCL037
Day, M.D.J.BPCCL038
Dittes, B.C.M.BPCCL039
Gibbons, A.H.BPCCL040
Goodenough, M.W.A.BPCCL041
Guruswamy, T.BPCCL042
Hall, R.M.BPCCL043
Harvey, D.M.BPCCL044
Hillary, E.J.BPCCL045
Hobson Sayers, A.P.BPCCL046
Keen, W.P.BPCCL047
Kenyon, W.BPCCL048
Lepper, A.J.BPCCL049
Sargent, M.J.BPCCL050
Seaton, J.BPCCL051
Semeniuk, K.BPCCL052
Shah, J.BPCCL053
Shaikh, A.A.BPCCL054
Silaghi, D.BPCCL055
Skehin, N.BPCCL056
Soloviev, M.BPCCL057
Stannard, O.J.BPCCL058
Stanyon, P.G.BPCCL059
Tait, E.W.BPCCL060
Tang, H.BPCCL061
Tang, S.BPCCL062
Tian, B.BPCCL063
Tomlinson, N.S.BPCCL064
Wang, R.BPCCL065
Whitehead, R.J.F.BPCCL066
Aboobakar, M.F.CPCCL001
Ahmed, M.CPCCL002
Arulkumaran, K.CPCCL003
Ashton, E.D.CPCCL004
Caller, B.S.CPCCL005
Cheung, H.C.S.CPCCL006
Chowdhury, M.R.CPCCL007
Crooks, N.S.C.CPCCL008
Curello, G.CPCCL010
Danka, M.A.CPCCL011
Elsby, C.J.R.CPCCL012
Green, D.CPCCL013
Hellier, J.D.M.CPCCL014
Herbst, M.F.CPCCL015
Hinks, M.J.CPCCL016
Lawrence-Jones, J.V.CPCCL017
Lim, K.V.R.CPCCL018
Mannan, F.A.CPCCL019
Mao, J.X.CPCCL020
Mehandzhiyski, Y.R.CPCCL021
Narula, H.CPCCL022
Nguyen, H.M.T.CPCCL037
Pace, E.T.CPCCL023
Peskett, M.CPCCL024
Roffey, J.CPCCL025
Sarkar, A.CPCCL026
Shaw, B.D.CPCCL027
Tchokni, S.E.CPCCL028
Thamotheram, D.G.CPCCL029
Tran, T.K.CPCCL030
Tsoi, M.C.CPCCL031
Irish, H.C.DPCCL032
Jarvis, M.F.DPCCL033
Jones, R.L.DPCCL034
Killough, M.J.DPCCL035
Kram, J.D.DPCCL036
Lica, A.S.DPCCL038
Lindstrom, C.A.DPCCL039
Liotsiou, D.DPCCL040
Loew, D.DPCCL041
Low, W.X.A.DPCCL042
Maughan, J.M.DPCCL043
McManus, M.D.DPCCL044
Norman, S.M.DPCCL045
Tsoi, Y.C.J.DPCCL046
Vaghela, M.B.DPCCL047
Vaquero-Stainer, C.P.DPCCL048
Vriend, P.B.DPCCL049
Webb, B.J.DPCCL050
Wells, A.W.J.DPCCL051
Withnall, P.R.DPCCL052
Wood, E.W.DPCCL053
Wood, J.A.DPCCL054
Xie, C.DPCCL055
Xu, B.DPCCL056
Yeeles, P.M.DPCCL057
Zabarauskas, M.DPCCL058
Zupkauskas, M.DPCCL059