|Module Title||ARTIFICIAL INTELLIGENCE AND VISION, GRAPHICS AND GAMES|
|Co-ordinator||Dr Simon M Garrett|
|Other staff||Dr Simon M Garrett, Dr Frederic Labrosse|
|Pre-Requisite||Only for students whose scheme requires this module.|
|Course delivery||Lecture||18 Hours.|
|Seminars / Tutorials||Up to 12 workshops|
* expose students to best practices in the engineering activities of project management, quality assurance and standards compliance;
* enable students to identify and employ appropriate practices for the specification, design, testing and operation of large software systems;
* provide a framework for the discipline of software engineering, including the more detailed material on design and implementation that is taught in other courses;
* involve students in the development of a piece of software which approximates as closely as possible in the university environment the software development conditions found in industry.
The approach and the obligations of the professional engineer. Software as an engineering artifact. Analogies between software and other branches of engineering.
2. The Software Life Cycle - 3 Lectures
Description of the phases of a range of software life cycles (including the Waterfall, Prototyping, Extreme Programming and Spiral models) and the major deliverables and activities associated with each phase. Software process improvement.
3. Project Management - 2 Lectures
Planning and cost estimation. Progress monitoring. Team structure and team management.
4. Quality Management - 2 Lectures
Validation, verification and testing. Quality plans. Walkthroughs, code inspections and other types of review. Role of the quality assurance group. Standards (international, national and local).
5. Configuration Management - 2 Lectures
Baselines. Change control procedures. Version control. Software tools to support configuration management.
6. Requirements Engineering and HCI - 2 Lectures
The IEEE standard for requirements specifications. Validation of requirement by e.g., prototyping. Deficiencies in the traditional approach to requirements. Introduction to UML Use cases. An introduction to HCI.
7. Design - 2 Lectures
Outline (architectural) design and detailed design. Use of abstraction, information hiding, functional and hierarchical decomposition at levels higher then the individual program. Contents of design documentation. State diagrams. Relevant UML notations: packages, sequence and activity diagrams, active objects.
8. Implementation and maintenance - 2 Lectures
Choice of language. Cutover. Types of maintenance. Maintenance process. Refactoring.
9. Testing - 2 Lectures
Testing strategies. Testing tools: static and dynamic analysers, test harnesses and test data generators, simulators. Performance testing. Regression testing. User documentation and training.
Tutorials: A weekly tutorial will be associated with this course. The tutorial will be used to organise group project activities and to discuss software engineering issues.
The AI and VGV elements will be provided by other courses
|Research skills||The students will need to explore several solutions to the problems given.|
|Communication||It will be impossible to successfully complete the group project without effective communication.|
|Improving own Learning and Performance||Reflection and self-learning will be encouraged during the workshop sessions.|
|Team work||The entire group project exercise depends on team work.|
|Information Technology||Methods of storing and retrieving information to be used by a group will be taught.|
|Personal Development and Career planning||This exercise has proved to be one of the most useful in terms of PDP, and can help students assess which aspects of a Computer Science career are appropriate for them.|
This module is at CQFW Level 5