Skip to main content
School of Electronic Engineering and Computer Science

Mr Juan Alvarado López


Teaching Fellow

Room Number: Peter Landin, CS 400


Algorithms and Data Structures (Undergraduate)

The module is an introduction to Algorithms and Data Structures. It covers topics such as running time of algorithms, asymptotic complexity, simple and advanced sorting algorithms, divide and conquer algorithms, recursion, dynamic programming, greedy algorithms, basic data structures (strings, arrays, lists), linked lists, trees, hash tables.

Computer Systems and Networks (Undergraduate)

This module provides you with a basic understanding of how a computer works and how programs are executed by the CPU at the machine level. As an introduction to computer architecture and systems software, this module presents the concepts needed to understand typical computers at the level of their ';machine-code'; instruction set. It covers Boolean algebra rules and terminology as well as logic gates. The module also examines the use of bits, bytes and data formats to represent integers, text and programs as well as looking at the conventional von Neumann computer architecture (CPU, registers, memory). Assembly language programming and system software are introduced.

Graphical User Interfaces (Undergraduate)

Computers are tools that people interact with and through for work and pleasure. Nowadays computers are ubiquitous and are fundamental to all sorts of devices such as washing machines, cars, mobile phones, airplanes, televisions, and musical instruments. However, it is still very difficult to design user interfaces which are simple, intuitive, and easy to use; you only have to look at the number of help books (eg the proliferation of books with titles such as 'the idiots guide to') to realise that designers often simply fail to make interfaces usable. This module introduces you to basic concepts of psychology and communication, which inform the way in which interfaces should be designed. The centre of the module is the hands-on coursework undertaken in small teams where you will design, prototype, and evaluate interactive user interfaces for a specific set of user requirements. The module comprises lectures, problem classes, and lab sessions.

Graphical User Interfaces (Work based)

This module is only open to degree apprentices in the School of Electronic Engineering and Computer Science. It covers the following topics: cognitive psychology principles relevant to the design of GUIs; building GUIs using Java, and use of basic vision and audio libraries for input/ output; framework of GUI design guidelines to inform and evaluate GUI design; techniques for analysing artefacts and situations to inform the design of suitable GUIs; iterative design processes; evaluation techniques with users, heuristics and models; interaction beyond the visual modality.

Web Programming (Undergraduate)

Many computer systems are now accessed through a web interface. This module provides an in-depth and practical study of techniques for programming the web. Students will become proficient in a modern web development framework using PHP for sever programming and Javascript for client programming. The strengths and weaknesses of the framework are evaluated considering issues including authentication, security, session management, cross languages (PHP, SQL, Javascript) consistency and abstraction of the server-client interface. Different architecture styles are compared, including REST and AJAX and the use of JSON. Techniques for testing and for engineering web systems that behave robustly under high load are also covered.


Back to top