THE UNIVERSITY OF BIRMINGHAM
School of Computer Science

Software Workshop Java
2004/05 session

Exam -- new!

Last year the module was given by a different lecturer, so the exam is not relevant. The previous year (2003) the module was given by me on similar material, and the exam is relevant. The 2003 exam.

Timetable

Lectures Monday, 09:00,  Large Lect Theatre, Physics Poynting Bldg
Supplementary lectures (see below) Wednesday, 11:00, G40 Comp.Sci.
Demonstrator availability in labs See schedule below.
LG04, School of Computer Science
Come to lab sessions as/when you need to.
Assessment by viva During the lab sessions, as specified below

The supplementary lectures are intended for students new to the School of Computer Science, such as: E&SE students, direct entry students, or "occasional" students. The lectures will assume you have knowledge of another programming language, such as C or C++, and will constitute a fast introduction to Java. These lectures are not intended for students who took the first-year Java course. However, students who took the first-year Java course and gained less than 50% may attend, if they wish.

Teaching team

Lecturer Dr. Mark Ryan
Teaching Assistant Andy Brown
Demonstrators

See schedule below

Questions?

If you have questions about the module or the way it is run:

Labs

The lab designated for this module is LG04, which has Windows machines with 17 inch LCD monitors. This is the lab in which there will be demonstrator help, and the vivas will take place here. But you can use other labs at other times, and can of course use your home machine. The machines have NetBeans installed, as well as Xemacs and Java. To run Xemacs, you have to find it in J:, which is a central server for all the Windows machines. Look in the packages directory. To run Java, work from a command prompt. You can use the command prompt available in the Start menu; however, a much better one called Cygwin is available in J:. To make using the programs in J: easier, you can copy J:\shortcuts to your desktop.

It is possible to use the Windows machine as an Xterminal, and log into a Solaris machine such as dipsy, and use eXceed. However, this is not advisable because it places a heavy load on the network. 

Assessment

This module is assessed by the exercises you do during the semester (20%) and the examination in May (80%). The exam will assume knowledge of the exercises, so it is essential to do the exercises in order to pass.


Continuously assessed exercises


The module is structured around four exercises, each with equal marks weighting:

You will see that, within each exercise, the first few parts are very easy and carry quite a large proportion of the marks. This is to enable relatively inexperienced programmers to pass. The later parts of the exercises are often very difficult. This is to ensure that more experienced programmers are appropriately challenged. You will also notice that, as the term progresses, the exercises become more difficult. It is well worth making sure you gain as many marks as you can on the first two, because you will find the last two more difficult.

Lab book. Please buy yourself an appropriate lab book, preferably hard-backed and size A4. Use this to write your design notes and thoughts, and have it available so that demonstrators can see it and write in it if they need to explain things to you.

Each exercise receives marks for

To gain credit for the exercises, you must submit your design notes and your code electronically, and have a viva in the labs. It is not enough only to have a viva, or only to submit electronically.

Electronic submission

Under unix

To submit your design notes and your Java source files, you must copy them into the directory
/home/students/submit/java2/<exName>/<loginID>/
where <exName> is one of the following: PredText, RouteFinder, TilesGamDesign, TilesGameCode; and <loginID> is your login id. For example, if you are submitting the exercise on Predictive Text, and your login ID is ug12abc, you would copy your files into
/home/students/submit/java2/PredText/ug12abc/
To do this copying, you probably need to log in to dipsy, for example by running eXceed in the manner described above.

You should also make sure that your files are readable by me. If you create any subdirectories of these directories, please make sure they are readable too. Since the directory named after your login id is unreadable by anyone besides you and me, you can make the files within the directory world-readable; the permissions on the directory mean that only you and me can read them. Run chmod -R ugo+rx * in that directory.

For this example, then, you would run these commands:

cp design.txt *.java *.class /home/students/submit/java2/PredText/ug12abc/
chmod -R ugo+rx /home/students/submit/java2/PredText/ug12abc/*
Use ls to verify that the files are present and readable by me.

Under Windows

Unfortunately, submitting under Windows appears not to work. Please submit under Unix.

You can easily log into a Unix machine from the Windows machine you are sitting at. Find the "Run..." from the Start menu, and type "telnet dipsy" or "telnet tw". Then enter your login details and follow the instructions for submitting under unix above.

Plagiarism

Please note that (as last year) plagiarism detection software will be used, and that students found plagiarising will be dealt with very severely. The plagiarism detection software I will be using is much more sophisticated than the one I used last year.

Getting the viva

You can have a viva only after you have submitted your code. During the viva, you will demonstrate your working program. The assessor will want to see the source code as well as the working program. You should work from the directory you have submitted to, e.g. /home/students/submit/java2/PredText/ug12abc/. The demonstrator will note the date and time of the viva, and you should not change your code after you have had the viva.

Before your viva begins, you should fill in a viva form. You are asked to declare what marks you consider you should get for each section of the form, by writing in the mark. You are ready for your viva when you have filled in the form. The demonstrator assessor will ask you to demonstrate various aspects of your program. He or she will also ask you to explain various aspects of the code.

You should only take a viva once you are completely finished coding their exercise. The excercise need not be complete, but it must be finished to your expectation. If you have any question concerning submission, your work or assessment, do this prior to taking a viva. The demonstrator will assess the work on an 'as-is' basis. No marks will be awarded for compoments that do not work or have not been implemented, although partial marks may be awarded for attempted work.

It is your responsibility to make sure the program performs as expected on the machine it is presented on. If there are any problems with porting your application, these should be addressed prior to any viva, not during it. If your program has known bugs, it is better to let the demonstrator know about this at the beginning of the viva. If such errors are encountered during testing, it looks bad and the loss of marks may be greater.

Only have the files directly related to your assignment on the screen (e.g. Java, design, javadoc). Close any other windows. If you are using NetBeans, make sure only the relevant directory structure is mounted in NetBeans. Make sure you are able to present any component of the assignment when requested to do so.

The code you present should be the one you submitted prior to the viva.  The demonstrator can not award marks for extra functionality that may be found in the submitted code yet not in the one presented during the viva

Vivas give students the chance to present their work efficiently. It is an important skill to be able to communicate your work and doing vivas in one way of improving this skill. It helps us to fully understand your program and to award the maximum number of marks possible. As there are many students, it is imperative that vivas run smoothly.

The viva forms are available here: PredText RouteFinder TilesGame (these links will appear shortly).

Week by week plan

Week beginning Lecture content Exercises Viva
27 September 2004 NO LECTURES
Predictive Text  
4 October Java basics reminder: Strings, command-line arguments, imput from files. Intro to PredText exercise.
Predictive Text  
11 October Data structures for predictive text
Model-View-Controller architecture
Predictive text  
18 October Notes from Horstmann, Big Java: Designing classes
What should you put in your design doc
Start RouteFinder
PredText Predictive Text
viva during week beginning 18 October
deadline: 22 October
25 October Intro to RouteFinder. Databases. Route finding algorithms.
Route finder  
1 November RouteFinder will have been updated
Explanation of Dijkstra's algorithm
Examples of trains tableau
Route finder  
8 November Servlets tutorial by Alan Sexton
Developing servlets with Netbeans
Route finder

15 November Tiles game
Horstmann, Big Java: Notes on GUIs
Tiles game Route finder
viva week 15 Nov
deadline: 19 Nov
22 November Event handling
More on GUIs
Tiles Game: Making Moves, User Intrf.
Tiles game
29 November
Tiles game - the suggested image processing code has changed
Solvability of the tiles game

 
6 December
No Lecture. There will be individual meetings with selected students instead.
  Tiles game
viva week 6 December
deadline: 10

Demonstrator schedule

  Tuesday Thursday
Friday h/wk
Remarks
Demonstrator 1600 1700 1600 1700 1800
1400
1500 1600
1700


Adedayo Adetoye




*
*
*

3

Andy Brown
*
*


*


*
*
5
absent w/b 25 Oct
Stefano Cattani



*
*



2
terminated w/b 22 Nov
Dan Chen
*
*



*


*
4
started w/b 7 Oct
Richard Downing *
*




*
*

4

Aidan Harding


*
*

*
*
*
*
6

Thomas Miconi *
*




*
*

4

Aybek Mukhamedov

*


*


*
3
absent w/b 7 Oct
Sheila Peacock


*
*


*
*
*
5

Philipp Rohlfshagen
*
*
*
*





4
started w/b 7 Oct. absent 2Dec.
Thanos Staikopoulos


*
*


*
*
*
5
absent w/b 7 Oct
Hao Wu
*
*
*
*





4
started w/b 15 Oct
Nan Zhang

*
*
*
*



4

Numbers
6 7
6
6
4
4
6
7
6


Demonstrator photos

Answers and marks

Answers and comments

Marks


Lecturer notes private to lecturer/TA


Page written and maintained by Mark Ryan
Last modified: 14 February 2005