NOTE: I initially created this site while still at University, and stopped updating it several years ago. I'm leaving it here as most of the stuff here is probably still true, but please note that most is almost certainly out of date.

I've started making an up-to-date CV at

 Education :: Degree > Final Year Modules
This page contains more detailed information about the modules I took during the final year of my Computing degree.
To provide students with a critical look at management and organisations; to uncover issues and assumptions underlying the world of management and evaluate them. By the end of this module, students should be able to understand and critically evaluate a range of approaches to the study of management, organisations and people's behaviour.
Topics of study will be drawn from the following:
  • The meaning of work
  • Scientific Management and Human Relations
  • The nature of managerial work
  • Weber and bureaucracy
  • Normality, emotions and feelings
  • Power, control and resistance
  • Organisational culture and control
  • Changes in work organisation
  • Theories of learning
  • Leadership
  • Motivation
  • Issues of diversity and difference, including gender and race
To demonstrate the impact that computer architecture is having on compiler design. To explore trends in hardware development, and examine techniques for efficient use of machine resources.
Students should be able to describe the philosophy of RISC and CISC architectures. They should know at least one technique for register allocation, and one technique for instruction scheduling. They should be able to write a simple code generator.
  • Description of several state-of-the-art chip designs
  • The implications for compilers of RISC architectures
  • Register allocation algorithms (colouring, DAGS, scheduling)
  • Global data-flow analysis
  • Pipelines and instruction scheduling
  • Delayed branches and loads
  • Multiple instruction issue
  • VLIW and the Bulldog compiler
  • Harvard architecture and Caches
  • Benchmarking
To give an appreciation of the current state of safe systems development. To develop an understanding of risk in systems. To give a foundation in hazard analysis models and techniques. To show how safety principles may be built into all stages of the software development process.
At the end of this course a student should be able to demonstrate the following skills: An understanding of the nature of risk in developing computer-based systems. The ability to choose and apply appropriate hazard analysis models for simple safety-related problems. An understanding of how to approach the design of safety-critical software systems.
  • The nature of risk: computers and risk
  • How accidents happen
  • Human error
  • System safety: historical approaches to system safety; basic concepts and terminology
  • Managing the development of safety-critical systems
  • Modelling human error and the accident process
  • Hazard analysis: basic principles; models and techniques
  • Safety principles in the software lifecycle
  • Hazard analysis as part of requirements analysis
  • Designing for safety
  • Designing the human-machine interface
  • Verification of safety in computer systems
The primary aims are to understand the ways of representing, rendering and displaying pictures of three-dimensional objects (in particular). In order to achieve this it will be necessary to understand the underlying mathematics and computer techniques.
Students will be able to distinguish modelling from rendering. They will be able to describe the relevant components of Euclidean and projective geometry and their relationships to matrix algebra formulations. Students will know the difference between solid- and surface-modelling and be able to describe typical computer representations of each. Rendering for raster displays will be explainable in detail, including lighting models and a variety of visual effects and defects. Students will be expected to describe the sampling problem and solutions for both static and moving pictures.
  • Euclidean and projective geometry transformations
  • Modelling: Mesh models and their representation
  • Constructive solid geometry (CSG) and its representation
  • Specialised models
  • Rendering: Raster images; illumination models; meshes and hidden surface removal; scan-line rendering
  • CSG: ray-casting; visual effects and defects
  • Rendering for animation
  • Ordered dither
  • Resolution
  • Aliasing
  • Colour
To give the student an advanced level of understanding of current research issues in human computer interaction. To focus upon HCI research methods, HCI theory covering topics of user interface design, evaluation and modelling. application areas such as safety and dependable systems, collaborative systems, virtual environments and agent interaction are examples of current application topics. Issues of HCI in mobile and embedded contexts.
The student should obtain an in-depth understanding of HCI theory and methods in state of the art research. Particular focus will be placed on the interdisciplinary nature of HCI and on the relationship between theory, and design practice. The students should be able to contribute to both HCI theory and HCI practice as a result.
  • Psychological theories of human behaviour
  • Contextual analysis
  • Frameworks for HCI
  • Model based design
  • Topics in agent-agent and human-agent interaction
  • Modelling collaborations, group work and domains of high safety or dependency requirements
  • HCI and creativity
  • Evolutionary theories of design
  • The role of formal methods in HCI
  • Advanced forms of interaction technologies
To acquire an appreciation of the suitability of different techniques for the analysis and representations for programming languages, followed by the various means to interpret them.
To be able to choose suitable techniques for lexing, parsing, type analysis, intermediate representation, transformation and interpretation given the properties of the language to be implemented.
  • Construction of lexical analysers
  • Recursive descent parsing
  • Construction of LR parser tables
  • Type checking
  • Polymorphic type synthesis
  • Continuation passing style
  • Combinators
  • Lambda lifting
  • Super-combinators
  • Abstract interpretation
  • Storage management
  • Byte-code interpreters
  • Code-threaded interpreters
  • Partial evaluation
  • Staging transformations
To understand the Internet, and associated background and theory, to a level sufficient for a competent domain manager.
Students should be able to explain the acronyms and concepts of the Internet and how they relate. Students should be able to state the steps required to connect a domain to the Internet, and be able to explain the issues involved to both technical and non-technical audiences. Students should be able to discuss the ethical issues involved, and have an "intelligent layman's" grasp of the legal issues and uncertainties. Students should be aware of the fundamental security issues, and should be able to advise on the configuration issues surrounding a firewall.
  • The ISO 7-layer model
  • The Internet: its history and evolution - predictions for the future
  • The TCP/IP stack: IP, ICMP, TCP, UDP, DNS, XDR, NFS and SMTP
  • Berkeley Introduction to packet layout: source routing etc.
  • The CONS/CLNS debate theory versus practice
  • Various link levels: SLIP, 802.5 and Ethernet
  • Satellites
  • The "fat pipe"
  • ATM
  • Performance issues: bandwidth, MSS and RTT
  • Caching at various layers
  • Who 'owns' the Internet and who 'manages' it: RFCs, service providers, domain managers, IANA, UKERNA, commercial British activities
  • Routing protocols and default routers
  • HTML and electronic publishing
  • Legal and ethical issues: slander/libel, copyright, pornography, publishing versus carrying
  • Security and firewalls
  • Kerberos
To develop skills in planning, performing and writing reports on computing projects.
To demonstrate skills in the above aims by completing the project plan, the literature review, defining the structure of the report and completing the initial studies.
  • Effective and ineffective written communication
  • Project planning
  • Proposal writing
  • How to carry out a literature survey
  • Resource assessment and management
  • Report planning and writing

Last updated: 6 Nov 2005

Site design: Dale Lane

valid CSS used in this sitevalid HTML used on this page
 Education :: Degree > Final Year Modules

Home | Contact Details | CV | Technical | Training & Development
Community | Education | Employment