Practical project 2020 - clarifications
(due 5pm Fri 22nd May - end of week 11)
Please post requests for clarification about any aspect of the project to
so that all students may remain equally informed.
They will be summarized here.
- 14th May
Please note: the project does not require you to find the
absolute fastest route between source and destination - just a valid one
(though great to see, however, that some students are investigating this).
If each station's timetables indicate that there's no connections to the
destination today, then report that there is no route -
do not wait until the first possible connection tomorrow.
- 11th May
You can safely assume that no UDP datagrams will be lost on (within)
a single machine; they will all arrive at their destination port.
- 10th May
Still unsure how to get started; too many shellscripts not helping?
- The C program
when compiled and executed,
generates a random network of bidirectional links, and creates files holding
its adjacency (connectivity) information and each station's timetables.
Though random, the network is guaranteed to be connected,
and all generated files are in their correct format.
Generate a 6-station network with:
shell> ./buildrandomtimetables 6
- The shellscript
takes an adjacency file as input,
and generates another shellscript containing commands to invoke each station server
with available TCP and UDP ports as their arguments.
You will need to edit the generated shellscript to correctly
invoke your servers written in Java or Python.
Create a shellscript which starts the station servers:
shell> ./assignports.sh adjacency startstations.sh
- The shellscript
takes a script which starts your station servers as input,
and generates an HTML webpage that can be used to contact each server.
The webpage will need to be opened in a web-browser.
Create a webpage to make route queries:
shell> ./makeform.sh startstations.sh myform.html
- (Only for the brave) the shellscript
builds our project's simplified timetable files
from downloaded Transperth GTFS textfiles.
Generate 90 timetable files for the Transperth network (on Wednesdays):
shell> ./buildtransperthtimetables.sh # takes several minutes
- 5th, 7th May
There's now 4 helpful shellscripts on the Getting Started page
(each highlighted in yellow) -
- 2nd May
The project description has been updated, and the Getting Started page completed.
The project's specification has not changed but, hopefully,
the wording on the webpages has improved to make things clearer.
The Getting Started page also provides a shellscript
producing a webpage that can be used to query each server.
- 28th April
On programming language choice:
2 of Java and Python and (C or C++) - note, not C and C++
On programming language versions:
For C - definitely C99 or C11... (nothing earlier, which only supports ANSI C89)
For C++ - C++11 or C++17
For Python - v3.6 or later, not Python-2.x
For Java - Java-11 appears sufficient
- 24th April
More advice, than a clarification -
do not attempt to code anything immediately.
Instead, grab some paper or a notebook
and undertake some design of your project.
"Computer Science is all boxes and arrows".
Focus on the following questions:
Who are the significant players?
What information needs to be communicated?
How will the information be represented?
What path will the information take?
How will success and failures be communicated?