Undergraduate Course: Informatics Large Practical (INFR09051)
|School||School of Informatics
||College||College of Science and Engineering
|Credit level (Normal year taken)||SCQF Level 9 (Year 3 Undergraduate)
||Availability||Not available to visiting students
|Summary||**This course replaces AI Large Practical (INFR09043), Software Engineering Large Practical (INFR09045) and Computer Science Large Practical (INFR09044).**
The Informatics Large Practical exposes students to the problems that arise with the design and implementation of large-scale software systems, and to methods of coping with such problems.
Students will gain experience in how to:
- Schedule their work load
- Design clearly and coherently structured systems
- Discover and use relevant technical information
- Implement a large-scale software system
- Design and run experiments and tests
- Analyse and report results
- Present their work in a clear and concise way.
The Informatics Large Practical gives students experience in developing a non-trivial software system and reporting on the end product. In this way, the practical provides an introduction to the issues and requirements of the more demanding fourth-year project. In particular, the student gains practical experience of:
- Reading technical material and identifying the important content
- Identifying and formalising project requirements
- Identifying computational problems and inventing algorithmic solutions
- Constructing a detailed design which does not over-commit to implementation detail
- Implementing and testing a software application which realises the design
- Experimenting with the implementation to explore the solutions to the computational problems
- Writing a report which documents the solutions and the implementation
- Managing a software project using a source-code repository.
Entry Requirements (not applicable to Visiting Students)
|Prohibited Combinations|| Students MUST NOT also be taking
Informatics Project Proposal (INFR11147)
||Other requirements|| Successful completion of Year 2 of an Informatics Single or Combined Honours Degree, or equivalent by permission of the School.
Course Delivery Information
|Academic year 2022/23, Not available to visiting students (SS1)
|Learning and Teaching activities (Further Info)
Lecture Hours 8,
Supervised Practical/Workshop/Studio Hours 20,
Feedback/Feedforward Hours 2,
Summative Assessment Hours 160,
Programme Level Learning and Teaching Hours 4,
Directed Learning and Independent Learning Hours
|Assessment (Further Info)
|Additional Information (Assessment)
||One large design, implementation and evaluation project, done in two parts.
1. The first part consists of a project plan outlining the problem area, and proposing a solution technique and application design considering both functional and non-functional requirements on the project (25% of course total).
2. In the second part, students fully implement their application design, and submit both their implementation and a report that presents and analyses their specification, design, implementation and tests (75% of course total).
Written Examination: 0%
Practical Examination: 0%
||A standard mid-semester course survey will be distributed during the course lectures. Feedback from this will be distributed as a report which is made available from the course web page.
Feedback and the assessment result from the student's Part 1 submission will be made available as a written individual report sent by email. This will also contain feedforward suggestions relating to the Part 2 submission.
Feedback and the assessment result from the student's Part 2 submission will be made available as a written individual report sent by email.
Students can respond to the feedback via email to the course lecturer.
|No Exam Information
On completion of this course, the student will be able to:
- Consider alternative algorithm designs and data structures for tackling a given problem.
- Show awareness of the difference between design and implementation in software development.
- Implement and debug a software system of medium to large size.
- Design and carry out experiments and tests, and explain the methodology involved.
- Write a well-structured report providing clear and concise documentation for a software project.
|Graduate Attributes and Skills
||This course attempts to enhance the student's attributes, personal and professional skills in the following areas. Students on the course will:
- Apply knowledge, skills and understanding:
* In using a range of the principal professional skills, techniques, and practices associated with Informatics. (For example, software installation, software development skills, testing strategies and frameworks.)
* In using a few techniques and practices that are specialised. (For example, specific testing strategies for applications with rich user interface elements.)
* In practising routine methods of enquiry and research. (For example, through using search engines to diagnose problems with software configuration or installation, or using question-and-answer fora to solve implementation issues.)
- Undertake critical analysis, evaluation and/or synthesis of ideas, concepts, information and issues in Informatics. (For example, through researching algorithms which could be used in the service of this practical.)
- Identify and analyse routine professional problems and issues. (For example, through gaining experience in understanding problems with complex software systems, and in improving debugging skills in learning how to use sources of information such as StackOverflow in de-bugging programs.)
- Draw on a range of sources in making judgements. (For example, reading documentation on software, learning about software frameworks or libraries in trying to decide whether or not to use them in this practical exercise.)
- Use a wide range of routine skills and some advanced and specialised skills in support of established practices in Informatics, for example:
* Present or convey, formally and informally, information on standard/mainstream topics in Informatics to a range of audiences.
* Use a range of software applications to support and enhance work. (For example, integrated development environments, device managers, SDK managers, emulators, physical devices, debuggers, profilers, testing frameworks.)
* Interpret, use and evaluate numerical and graphical data to achieve goals/targets. (For example, using profilers to identify bottlenecks in software.)
|Keywords||ILP,Practical exercise,software development,software testing
|Course organiser||Dr Michael Glienecke
|Course secretary||Mrs Michelle Bain
Tel: (0131 6)51 7607