Dr Liam O'Reilly
Senior Lecturer
Computer Science
Telephone: (01792) 604033
Email: JavaScript is required to view this email address.

Teaching

  • CS-230 Software Engineering

    This module exposes the student to the major components of a practical software lifecycle through team-based practical software engineering. This module introduces students to prototyping, software design and implementation, and testing. Students are introduced to the issues and techniques of working in teams.

  • CSF100 Work-Based Portfolio 1

    In this module students will develop a portfolio of documents and projects which will demonstrate the application of knowledge gained from the co-requisite modules to their work experience.

  • CSF101 Programming 1

    This module will teach students to solve computational problems by writing simple programs in a high-level language, specifically Java. Students will understand the fundamental principles underlying imperative programming languages, and have the ability and confidence to write programs in Java to solve a variety of simple problems.

  • CSF102 Programming 2

    This module is a continuation of CSF101: Programming 1. In it, students will enhance their programming skills and will be introduced to object oriented programming.

  • CSF200 Work-Based Portfolio 2

    In this module students will develop a portfolio of documents and projects which will demonstrate the application of knowledge gained from the co-requisite modules to their work experience.

  • CSF206 Algorithms and Automata

    This module introduces students to theoretical tools and techniques important in software development. The first half of the module is concerned with algorithms and data structures and will enable the student to understand how the selection of different algorithms and data structures affects the performance and efficiency of a program. The second half of the module will concerned with automata in the form of labelled transition systems and will enable the student to understand their role in modelling computing systems.

  • CSF208 Human-Computer Interaction

    This module introduces the key principles and practices of Human-Computer Interaction (HCI). It describes in detail the basic concepts, methods and issues surrounding interaction design, explores the properties which make good and poor interfaces and presents the major design principles in the discipline. Students will learn how to gather and analyse requirement data, how to prototype designs, how to construct more usable user interfaces and how to design and run user evaluations.

  • CSF300 Project Implementation and Dissertation

    This module forms the second part of the capstone project for the BSc in Applied Software Engineering project (together with CSF301). It consists of the implementation of a software system; a substantial written dissertation; and a presentation of the system.

  • CSF301 Project Specification and Development

    This module forms the first part of the capstone project for the BSc in Applied Software Engineering (together with CSF300). It consists of the specification and development of a software system.

  • CSF302 Project Planning and Management

    Software projects have long had a reputation for cost and time overruns - but they need not, and there are well-established, and emerging, techniques and processes to manage them well and effectively: for example, agile methodologies like Scrum which are becoming a de-facto standard in the industry. Also, many projects have significant legal, social, ethical and professional consequences that a practitioner needs to be aware of and sensitive to. This module develops the fundamental skills of successfully building complex software systems, and the implications, including on wider society, of doing so. It will also prepare students for work on any project by equipping them with the skills to successfully plan them, and to commence that planning process.

  • CSF303 Software Testing

    Testing is the process of systematically experimenting with an object (the SUT = System Under Test) in order to establish its quality, where quality means the degree of accordance to the intention or specification. This module will cover various test scenarios; practical exerercises will allow the students to gain hands-on experience.

  • CSF304 Web Application Development

    The module will develop the principles and technologies used for building web-based systems. Practical experience of building web systems will be gained via laboratories and coursework.

  • CSF306 Mobile App Development

    This module will introduce students to developing well-designed and functional apps for mobile devices. Special emphasis is placed on general design paradigms for mobile devices, taking into account limitations such as battery life, limited memory and low user attention compared with desktop computers.

  • CSF307 Advanced Object Oriented Programming

    This module will give an overview on advanced techniques in object oriented programming. It will investigate some standard libraries in depth. It will examine many design patterns and students will understand how to design their own generic libraries to allow for full static type checking. The module introduces the programming languages C and C++ to experienced programmers, including low-level aspects of programming that are usually abstracted in languages like Java and Objects as implemented by C++.

  • CSF399 Human-Computer Interaction

    This module introduces the key principles and practices of human-computer interaction (HCI). It describes in detail the basic concepts, methods and issues surrounding interaction design, explores the properties which make good and poor interfaces and presents the major design principles in the discipline. Students will learn how to gather and analyse requirement data, how to prototype designs, how to construct more usable user interfaces and how to design and run user evaluations.