Skip to main content
School of Electronic Engineering and Computer Science

Dr Ethan Lau


Lecturer in Internet of Things

Room Number: Engineering, Eng E206


Introductory Java Programming (BUPT joint programme)

Microprocessors for Embedded Computing (BUPT joint programme)

The course examines the structure, applications and programming of microprocessors and their support devices. There will be practical work on using a real hardware processor as part of the module. The course is available only to students on the H6NI BSc (Eng) Internet of Things Engineering programme. The course includes: - Microprocessor / Microcontroller Architecture - Instruction Cycle - Program Development Program Life Cycle - Program Structures - Data Structures - 8051 Microcontroller Overview - Hardware Summary (Memory Map and Register Function) - Instruction Set - Addressing Modes - Assembly Language - Testing and Debugging - Interrupts and Timers - Internal and External Memory: RAM, ROM, EPROM, EEPROM - 8051 ADO Pin Demultiplexing - Von Neumann / Harvard Architecture - Principles of Interfacing - Dedicated I/O Memory Mapped I/O - Address Decoding - Timing Diagrams - Handshaking - Busses - Tri-state logic - Parallel Interfacing - Serial Interfacing - Analogue / Digital Conversion - PWM - Comparators - Polling and Interrupts for Interface Management - 8051 Supporting Hardware - Oscillator and Reset Circuits - Reset Behaviour - LEDs, LCDs, Intelligent Displays - Switches, Keypads / Keyboards - Opto-isolators

Middleware (BUPT joint programme)

Middleware is the glue that holds heterogeneous and distributed systems together and is central to the assured functionality, the security, the resilience and cooperation between entities in the Internet of Things. This module builds on previous modules, viz. Networks and Protocols for understanding the functionality and structure of the communications substrate, Databases as a standard component in almost all software systems large and small, RFID and sensor networks for low energy middleware constraints and protocols, and Java programming. Key middleware functions are introduced, including the development of web based applications, web servers, web services, Web 2, message oriented middleware, the Open Services Gateway Initiative (OSGi) architecture and Cloud based messaging services. This is underpinned by key networking programming concepts that include socket programming, remote procedure call, mechanisms to support peer to peer computing, message queuing systems such JMS. Different modes of interaction, e.g. via push and pull interactions, and the management through middleware in the fixed network and on mobile devices will also be investigated. In the mobile and home appliances environment ,programming of middleware solutions will also be introduced, e.g. programming on Android devices for dishwashers, and for mobile phone interaction, e.g. turning lights on and off with a phone. Core security concepts are introduced and the mechanisms to support security and to reduce vulnerabilities in middleware are described. Common attacks and their mitigation are described. An important aspect of the course is implementation. Students will develop software for mobile and other devices in the Internet of Things. At the end of this module the student will not only be aware of the important middleware support that is available, but be able to understand how the middleware works, and be able to implement the concepts and services that they provide.