Page | 77 Course Code:
F20PB
Course Title:
Project: Design & Implementation
Course Co-ordinator:
Peter King Pre-requisites:
Aims: Development of project design and implementation skills
Syllabus: ♦ Software and/or experimental design and its documentation
♦ Relevant commercial practice in applied design of software Learning Outcomes:
Subject Mastery
Understanding, Knowledge and Cognitive Skills; Scholarship, Enquiry and Research (Research-Informed Learning)
♦ Software design and implementation skills Learning Outcomes::
Personal Abilities:
Industrial, Commercial & Professional Practice; Autonomy, Accountability & Working with Others; Communication, Numeracy & ICT
♦ Time management
♦ Project Management Assessment
Methods:
Assessment:
Coursework (weighting – 100%) Synoptic with F20PA & F20PC
Re-assessment:
None
Course Code:
F20PC
Course Title:
Project: Testing & Presentation
Course Co-ordinator:
Peter King Pre-requisites:
Aims: Development of knowledge and skills for testing and evaluating a software project Syllabus: ♦ Testing of Software
♦ Evaluation of Software
♦ Report Writing Learning Outcomes:
Subject Mastery
Understanding, Knowledge and Cognitive Skills; Scholarship, Enquiry and Research (Research-Informed Learning)
♦ Testing and evaluation of software development projects
♦ Documenting Software projects Learning Outcomes::
Personal Abilities:
Industrial, Commercial & Professional Practice; Autonomy, Accountability & Working with Others; Communication, Numeracy & ICT
♦ Awareness and experience of methods and tools for validation and verification in professional practice
♦ Practical skills in testing and evaluation
♦ Documentation skills Assessment
Methods:
Assessment:
Coursework (weighting – 100%) Synoptic with F20PA & F20PB
Re-assessment:
None
Page | 78
Judy Robertson, Oliver Lemon Pre-requisites: F28IN Interaction Design or equivalent
Aims: The course aims to give students the opportunity to develop:
♦ An extensive, detailed and critical knowledge of requirements gathering, design and evaluation techniques in interaction design.
♦ An awareness of current research and emerging issues in the field of interaction design.
♦ A range of specialised skills, and research methods involved in working with users.
Syllabus: Current and emerging topics in Interaction Design including: user demographics, patterns in technology adoption, interaction design lifecycles, user interface design patterns, prototyping methods, a wide range of qualitative and quantitative data gathering and analysis techniques, accessibility, and a range of research case studies covering cutting edge issues in the field
Learning Outcomes:
Subject Mastery
Understanding, Knowledge and Subject-Specific Skills Students will develop skills in the following areas:
♦ Review, critically analyse, evaluate, and synthesise of previous research projects in the field of interaction design
♦ Identify and propose innovative solutions in response to analysis of users’
requirements.
♦ Make informed judgements about appropriate methodologies for developing and evaluating technologies suitable for user demographics and background experience.
Learning Outcomes::
Personal Abilities:
Cognitive skills, Core skills and Professional Awareness Students will develop skills in the following areas:
♦ Use discipline appropriate software for data analysis, prototyping and learning.
♦ Present, analyse and interpret numerical and graphical data gathered as part of evaluation studies.
♦ Communicate effectively to knowledgeable audiences by preparing formal and informal presentations and written reports.
♦ Exercise autonomy and initiative by planning and managing their own work;
develop strategies for independently solving problems and taking the initiative.
♦ Take responsibility for their own and other’s work by contributing effectively and conscientiously to the work of a group, actively maintaining good working relationships with group members, and leading the direction of the group where appropriate.
♦ Reflect on roles and responsibilities by critically reflecting on their own and others’ roles and responsibilities.
♦ Deal with complex professional and ethical issues including working with human subjects and wider issues relating to technology in society
Assessment Methods:
Assessment:
Exam: (weighting – 50%) Coursework: (weighting – 50%)
Re-assessment:
None
Page | 79 Course Code:
F21DP
Course Title:
Distributed & Parallel Technologies
Course Co-ordinator:
Hans Wolfgang Loidl & Bodo Scholz Pre-requisites: Academic knowledge of fundamentals of operating systems, computer networks and
software engineering equivalent to an ordinary degree in Computer Science, basic knowledge of programming in C.
Aims: ♦ To explore technologies and techniques underlying advanced software development for parallel and distributed systems.
♦ Review the principal abstractions, methods and techniques used in distributed and parallel programming.
♦ Develop an understanding of parallel programming on heterogeneous architectures including accelerators such as GPUs
♦ Enable students to appreciate critically a range of distributed and parallel computing technologies
Syllabus: Distributed Technologies: Distribution concepts; low-level, mid-level and high-level distributed technologies; emerging distribution and coordination technologies.
Parallel Technologies: Design of parallel systems, parallel performance analysis;
programming heterogeneous systems; practical imperative parallel programming;
practical declarative parallel programming Learning
Outcomes:
Personal Abilities
Understanding, Knowledge and Cognitive Skills; Scholarship, Enquiry and Research (Research-Informed Learning)
♦ Understanding of foundational concepts of distributed and parallel software
♦ Knowledge and application of contemporary techniques for constructing practical distributed and parallel systems using both declarative and imperative languages
♦ Parallel performance tuning using appropriate tools and methodologies
♦ Understand the role of control and data abstraction in software design and implementation
♦ Appreciation of relationship between imperative and declarative models of parallelism
Learning Outcomes:
Subject Mastery
Industrial, Commercial & Professional Practice; Autonomy, Accountability & Working with Others; Communication, Numeracy & ICT
♦ Critically analyse parallel and distributed problems.
♦ Generate, interpret and evaluate parallel performance graphs
♦ Develop original and creative parallel problem solutions
♦ Showing initiative, creativity and team working skills in shared distributed and parallel application development.
♦ Demonstrate critical reflection, e.g. understanding of applicability of, and limitations to, parallel and distributed systems
Assessment Methods:
Assessment:
Examination: (weighting – 70%) Coursework: (weighting – 30%)
Re-assessment:
Examination: (weighting – 100%)
Page | 80
Peter King, Sandy Louchart Pre-requisites: C++ programming skills
Aims: To develop programming skills and techniques specific to the area of 2D and 3D computer games
Syllabus: ♦ History and types of computer games
♦ Elements of game design
♦ Game-state, simulator, renderer, (hierarchical) controllers
♦ Tools and environments – e.g. Flash, games engines
♦ 2D games programming techniques
♦ Physically-based modelling, particle systems, flocking
♦ Use of physics engines
♦ Obstacle avoidance and path planning
♦ Group movement
♦ Learning and adaptation in games
♦ Action and behaviour selection
♦ Game theory and games
♦ Course summary and review Learning Outcomes:
Subject Mastery
Understanding, Knowledge and Subject-Specific Skills
♦ Critical understanding of game theory and computer games history, genres and impact
♦ Critical understanding of available tools and their application
♦ Detailed knowledge of algorithms for particle systems and flocking
♦ Detailed knowledge of algorithms for path planning and navigation
♦ Broad knowledge of physically-based modelling in games and selection of techniques
♦ Broad knowledge of AI techniques in games and selection of techniques
♦ Ability to understand, design and implement a small-scale game using 2D and 3D tools
♦ Practical skills in graphics and AI programming in the computer games context Learning Outcomes:
Personal Abilities
Cognitive skills, Core skills and Professional Awareness
♦ Ability to think and plan in three dimensions
♦ Technical report writing and organisation
♦ Team working skills
♦ Representation of, planning for, and solution of problems Assessment
Methods:
Assessment:
Exam: (weighting – 65%) Coursework: (weighting – 35%)
Re-assessment:
None
Page | 81
Pre-requisites: Either F28IT Internet & Communications and F27SB Software Development 2 or reasonable software development skills in Java and basic knowledge of data communications and the web.
Aims: ♦ To equip students with knowledge and understanding of the theories, principles and protocols underlying network applications on the Internet
♦ To enable students to appreciate critically the range of network application technologies and standards
♦ To give students significant development skills in a range of the principal network technologies, to grasp the main design and practical issues faced in their application, and confer the ability to select and apply relevant techniques for a given network application development problem.
♦ To have students creatively develop in teams a substantial network application involving web and application server technologies to an original design of their own.
Syllabus: Network application fundamentals, IPC via sockets, programming simple services, network information services. Network security issues, cryptography – symmetric and public key, certificates, digital signatures and SSL. Email protocols and formats - SMTP, POP, IMAP, RFC 2822, MIME. Nature of web – URIs and HTTP, web markup languages - (X)HTML, web design issues, CSS, XML, DOM. Client-side web programming - JavaScript, DHTML, AJAX, plugins, applets. Server side web programming – CGI, servlets, active web server pages – SSI, JSP, PHP. Web mediated database access – JDBC, PHP. Web security – HTTP authentication, HTTPS, cookies. Web services - SOAP and REST. Other styles of network applications – textual conferencing. Distributed service models - client server, P2P, publish & subscribe.
Learning Outcomes:
Subject Mastery
Understanding, Knowledge and Cognitive Skills; Scholarship, Enquiry and Research (Research-Informed Learning)
♦ Extensive, detailed and critical knowledge and understanding of the theories, techniques and principles underlying the design of network applications and the range of their application
♦ Theoretical and practical knowledge of the major network application types including email, web applications and services, IRC, streaming media
♦ Critical awareness of protocols and standards underlying key network applications especially the web and of enabling technologies for network applications such as sockets, DNS, XML
♦ Ability to design and develop useful network applications including WWW applications using apt technologies and languages: HTML, XML, JavaScript, Java applets, CGI, servlets, active web server pages, SOAP services etc. to professional standards
Learning Outcomes:
Personal Abilities
Industrial, Commercial & Professional Practice; Autonomy, Accountability & Working with Others; Communication, Numeracy & ICT
♦ Skills in selecting, applying and evaluating apt technologies in a professional way given a problem requiring network interaction
♦ Ability to build on initial skills and knowledge by independent research using online resources
♦ Showing initiative, creativity and team working skills in shared network application development
Assessment Methods:
Assessment:
Exam: (weighting – 70%) Coursework: (weighting – 30%)
Re-assessment:
None
Page | 82
Nick Taylor & Patricia Vargas
Pre-requisites: F29GR Computer Graphics or equivalent, F29AI Artificial Intelligence or equivalent Aims: ♦ To introduce students to concepts and techniques used in Robotics and applications
such as Automation.
♦ To understand the basic concepts used in swarm robotics, evolutionary and bio-inspired robotics and human-robot interaction.
♦ To gain exposure to the main issues involved in building intelligent robot controllers.
Syllabus: Industrial manipulators - Robot Control, Kinematics, Programming.
Automated Guided Vehicles - Maps, Path Planning, Navigation.
Automation - Organisation, Communication, Sensory devices.
Behaviour Based Robotics
Evolutionary and Bio-inspired Robotics Swarm Robotics
Human-Robot Interaction Learning Outcomes:
Subject Mastery
Understanding, Knowledge and Cognitive Skills; Scholarship, Enquiry and Research (Research-Informed Learning)
♦ To appreciate the basic concepts of automation and intelligent robotics.
♦ To develop detailed understanding of the geometries of industrial manipulators.
♦ To develop detailed understanding of the architectures of autonomous guided vehicles (AGVs).
♦ To develop detailed understanding of interfacing & control issues of industrial manipulators and AGVs.
♦ To explore the applications and implications of industrial automation and human-robot interaction.
♦ To develop detailed understanding of the architecture of behaviour-based robotics (BBR).
♦ To develop detailed understanding of the interfacing and ethical issues of human-robot interaction.
Learning Outcomes::
Personal Abilities
Industrial, Commercial & Professional Practice; Autonomy, Accountability & Working with Others; Communication, Numeracy & ICT
♦ To critically analyse various paradigms and architectures.
♦ To appreciate the real-world constraints imposed on technical skills.
♦ To offer professional and insights into the financial imperatives which apply to the introduction of new technology.
♦ To offer ethical insights into the introduction of new robotics technology.
Assessment Methods:
Assessment:
Examination: (weighting – 60%) Coursework: (weighting – 40%)
Re-assessment:
Examination: (weighting – 100%)
Page | 83
Pre-requisites: Elementary C++ programming equivalent to F29GR Computer Graphics
Aims: ♦ To enable participants to understand the concepts and benefits of Virtual Environments (VEs) with respect to various applications.
♦ To equip participants with the skills to create a skeleton Virtual Environment using state-of-the-art VE software toolkits
Syllabus: ♦ Introduction: History of VEs
♦ What a VE is not.; concepts of immersion and presence, RT constraints
♦ Overview of current VE applications
♦ Basic Types and Components of VEs (graphics hardware, displays, interaction devices, software,)
♦ Modelling – low polygon, standards, mechanisms
♦ Construction of models
♦ Physically-based modelling
♦ Web-based 3D
♦ Agents and avatars
♦ Distributed VEs
♦ Construction of VEs and future of VEs
♦ Creation of small VE
♦ Course summary and review Learning Outcomes:
Subject Mastery
Understanding, Knowledge and Cognitive Skills; Scholarship, Enquiry and Research (Research-Informed Learning)
♦ Be able to critically evaluate the strengths and weaknesses of current VR technologies
♦ Detailed understanding of the main components of a virtual reality system and the importance and impact of real-time constraints
♦ Detailed understanding of modelling approaches and their uses
♦ Critical understanding of the state-of-the-art in VE application domains
♦ Ability to apply appropriate display and interaction capabilities to specific VR applications and justify choices made
♦ Able to apply basic VE construction skills to the creation of small-scale systems Learning Outcomes:
Personal Abilities
Industrial, Commercial & Professional Practice; Autonomy, Accountability & Working with Others; Communication, Numeracy & ICT
♦ Taking responsibility for own work, taking responsibility in the development of resources, critical reflection on development process and work undertaken by self.
♦ Effective communication in electronic and written report form.
♦ Showing initiative, creativity and team working skills in virtual environment development
Assessment Methods:
Assessment:
Exam: (weighting – 70%) Coursework: (individual project) (weighting – 30%)
Re-Assessment None
Page | 84