module specification

CU4007 - Computer Gaming Hardware Architectures (2017/18)

Module specification Module approved to run in 2017/18
Module title Computer Gaming Hardware Architectures
Module level Certificate (04)
Credit rating for module 30
School School of Computing and Digital Media
Total study hours 300
 
81 hours Guided independent study
219 hours Scheduled learning & teaching activities
Assessment components
Type Weighting Qualifying mark Description
Coursework 10%   Presentation and logbook
Coursework 10%   Project Plan
Coursework 80%   Artefact and report
Running in 2017/18

(Please note that module timeslots are subject to change)
Period Campus Day Time Module Leader
Year North Thursday Afternoon

Module summary

The module introduces students to the basics of Information Technology; past, current and future trend in computer and gaming systems.   The detailed design of a small scale Gaming System is presented where students have the opportunity to directly program the hardware. Students will learn how a knowledge of assembly language and different compilers should inform the development of higher level programming languages, such as C++, in order to produce optimal code.  Students will develop expertise and transferable skills in writing for a particular handheld gaming platform.

Module aims

  1. To introduce students to the fundamental concepts of Information Technology and basic networking,
  2. To provide a working technical knowledge of modern computer and gaming systems and their respective components,
  3. Build awareness of assembly and compilers so as to inform the development of optimal programming code
  4. Gain skills in interfacing assembly with a high level language for a console emulator
  5. Gain skills in interfacing assembly with a high level language on a PC.

Syllabus

 Introduction to Information Technology
Basic Digital Logic Elements
Microprocessors ; past, current an future
Computer Architecture, elements and their operation in a typical computer system
The relationship and role of hardware and software
Assembly language programming
The design of Computer and Gaming Hardware architecture, typical examples.  Memory types and IO peripherals,
The detailed design of a small-scale computer and gaming system
Communications Channel; Serial, USB etc...
Advanced hardware fundamentals, High performance systems
Writing example game for GBA emulator - eg. visual boy advance
Optimisation of code for different platforms
Interfacing high level languages (C++) with assembly
Input and output to video memory
Accessing audio hardware
Current trends in Computer and Gaming hardware / software architecture
How to use compiler and debugger with competence

Learning and teaching

The teaching and learning strategy for this module is a combination of intensive laboratory work were students will be expected to develop their programming skills. Group work is encouraged and reinforced at the laboratory sessions.  The student’s understanding will be tested by practical exercises in class

Learning outcomes

On successful completion of this module students will be able to:
LO1.Understand how the modern PC and Gaming systems work, the interrelation between hardware and software and their evolution.
LO2. Ability to distinguish between assembly and higher level languages with regard to writing optimal code for particular tasks
LO3. Using An integrated Development System with a compiler and debugger to develop Assembly Language programs to perform a given task.
LO4. Ability to plan and program a simple game for a handheld device
LO5.Implement hardware and software performance troubleshooting techniques;
LO6. Ability to program audio hardware

Assessment strategy

The following is indicative of the assessment strategy.  The coursework will implement ideas that have been introduced in lectures to assure the student has understood what has been presented. Students will present and explain their work for peer assessment.  The module is passed on the aggregate mark.

Bibliography

IT Essentials: PC Hardware and Software, Companion Guide
http://www.gbadev.org  - for useful links and sourcecode
ARM Assembly Langauge - an introduction:  J R Gibson;
Tonc Online tutorial -  http://www.coranac.com/tonc/text/toc.htm