The Computer Science Large Practical exposes students to the problems that arise with the design and implementation of large scale computer systems, and to methods of coping with such problems. Students will gain experience in how to:
Further details can be obtained by visiting the drps page for the course.
The coursework will be detailed further in the lectures.
The coursework handout is available here.
Example coursework input will appear in the Coursework Examples tab above.
The coursework handout is available here.
The slides for the first lecture are available here.
The slides for the second lecture are available here.
The slides for the third lecture are available here.
The slides for the forth lecture are available here.
The slides for the fifth lecture are available here.
The slides for the sixth lecture are available here.
The slides for the seventh lecture are available here.
Several input examples have been posted to the "Coursework Examples" section.
The slides for the final lecture are available here.
Slides are available here. I finished at the coursework handout slide here.
I gave an overview of the course and discussed the requirements for the practical. I emphasised that these slides should not be seen as a substitute for reading and comprehending the coursework handout.
Slides are available here. I finished with clarifications at this slide.
I discussed the properties of the simulator, explained the exponential distribution, and introduced practical aspects of sampling from a probability distribution, with particular emphasis on pseudo-random number generation. I answered questions raised previously in class and offline.
Slides are available here. I finished with a summary about choosing route planning algorithms.
I explained how service areas, bin locations and the distances between them can be modelled with weighted graphs. I reviewed fundamental graph theory concepts and discussed several heuristics that solve minimum cost Hamiltonian circuit problems.
Slides are available here. I finished with concluding remarks about refactoring and coding strategy here.
I discussed good code structuring practices, refactoring, janitorial work, and development approaches.
Slides are available here. I finished with final points about the assessment here.
I discussed memory management aspects in C and common mistakes. I gave a few tips on code benchmarking and profiling. I discussed in detail the CSLP assessment criteria.
Slides are available here. I finished with a discussion about IDEs here.
I discussed memory allocation/deallocation for matrices and structures, and a set of functions useful for manipulating strings. I explained compilation and linking, optimising compilation, as well as the pros and cons of working with multiple source code files.
Slides are available here. I finished with clarifications on metrics relevant to the CSLP. here.
I talked about the typical steps involved in the design and implementation of a system/process. I explained several concepts pertaining to performance evaluation and common evaluation methodologies. I discussed summary statistics, including standard deviation and confidence intervals. I revisited the metrics relevant to the CSLP assignment.
Slides are available here.
An example input with two areas of different sizes, where bins are laid out on a grid structure, is available here.
An input script containing the description of a single area with some bins poorly connected is available here.
An example of invalid input exposing multiple issues is available here.
Informatics Forum, 10 Crichton Street, Edinburgh, EH8 9AB, Scotland, UK
Tel: +44 131 651 5661, Fax: +44 131 651 1426, E-mail: school-office@inf.ed.ac.uk Please contact our webadmin with any comments or corrections. Logging and Cookies Unless explicitly stated otherwise, all material is copyright © The University of Edinburgh |