Software Workshop Java
2004/05 session
| 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.
| Lecturer | Dr. Mark Ryan |
| Teaching Assistant | Andy Brown |
| Demonstrators |
See schedule below |
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.dipsy, and use eXceed.
However, this is not advisable because it places a heavy load on the
network.
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,
/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/Use
chmod -R ugo+rx /home/students/submit/java2/PredText/ug12abc/*
ls to verify that the
files are present and readable by me.
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.
| 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 |
| 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 |
||