Course Description
The Computer Science Large Practical (CSLP) gives students experience in developing a non-trivial software system and providing some analysis of its behaviour. In particular the student gains practical experience of:
- Design: ensuring the requirement is well scoped and defined and constructing a design at a level of detail that allows some prediction of the behaviour of the system without committing to implementation detail.
- Implementation: implementing and testing a working prototype of the design.
- Analysis: providing some analysis of the characteristics of the design.
Further details can be obtained by visiting the
drps page for the course.
Eligibility
- The Computer Science Large Practical is a third-year undergraduate course.
It is only available to third-year undergraduate students.
- The CSLP is not available to visiting
undergraduates, or to fourth-year undergraduate and MSc
students, who have their own individual projects.
- This practical cannot be taken in combination with the
Software Engineering Large Practical or the AI Large Practical.
- Third-year UG students should choose at most one large
practical, as allowed by their degree regulations (see the DRPS for your degree).
Lectures
- There is one lecture per week.
- Lectures will take place on Fridays at 12:10-13:00.
- Lectures will be located in the Psychology building (7 George Square), Room F.21 – see Map.
Grading
There is no exam for this course, assessment is 100% based on the assigned coursework.
Coursework
-
The coursework objective is to develop a command-line application in a
programming language of your choice (which compiles and executes on DiCE).
The requirements are detailed in the formal practical handout.
-
The practical handout will be issued on
Monday 19th September, 2016. On this day you will be able to begin work on the practical.
-
The CSLP assessment is divided into three parts, the deadlines of which are below. Part 1 is formative, i.e. you will
receive feedback but this does not contribute to your mark. Parts 2 and 3 are summative, each carrying a 50% weight.
- Submission for all parts is electronic via the BitBucket platform as
detailed in the practical handout. There is no paper submission.
The coursework handout is available
here.
- General University and School of Informatics rules for course work
-
Deadlines
There are there parts, the deadlines are:
- Part 1
- Deadline: Friday 7th October, 2016 at 16:00.
- Part 1 is zero-weighted: it is just for feedback.
- Part 2
- Deadline: Friday 11th November, 2016 at 16:00.
- Part 2 is worth 50% of the marks.
- Part 3
- Deadline: Wednesday 21st December, 2016 at 16:00.
- Part 3 is worth 50% of the marks.
Getting Help
- Piazza: The primary source of help will be through the Piazza online platform. Please enrol via this link.
All questions should be asked on Piazza first before emailing the lecturer, unless it is a private matter.
- Office hours: Thursdays, 10:00-11:00, Room IF-2.03. If you are not able to attend email the course organiser to arrange a meeting outside the office hours.
Announcements
The coursework handout is available
here.
Lecture notes
Slides for upcoming lectures should appear here before the lecture and will
remain once the lecture has been given. Slides are subject to some minor
modifications at any time prior to the start of the lecture.
1. Introduction. Requirements. Assessment summary. [slides] [PDF]
2. The simulator. Bash scripting. Version control. [slides] [PDF]
3. Route Planning. [slides] [PDF]
4. Graph Traversal. [slides] [PDF]
5. Code Structuring & Coding Strategy. [slides] [PDF]
6. Clarifications & Tips. Code Optimisation. [slides] [PDF]
7. Design Aspects. Summary Statistics. Unit Testing. [slides] [PDF]
8. Results Visualisation. Recap of Part 3 requirements. [slides] [PDF]
Useful resources
Example Input for the Main Coursework
A simple input script containing the coursework example is available here.
An invalid input file with multiple errors is available here.
An example with two small areas following a grid layout is available here.