School of Electronic Engineering and Computer Science

Mr Tianhao Guo

Tianhao

Email: t.guo@qmul.ac.uk
Room Number: Engineering, Eng 153

Teaching

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.

Object-Oriented Programming (Undergraduate)

Major topics include the concepts of class, object, method, subclass, inheritance and their use in programming. The relevance of the object oriented style with respect to concrete software problems will be stressed both in lectures and labs. There will be two hours of lectures per week, and each student will have a weekly timetabled lab session. In addition, you will be expected to spend further time outside scheduled lab periods in the lab (or at home machines if they are available), and to read textbooks and review notes.

Procedural Programming (Undergraduate)

This is an introductory module in computer programming using Java. You will learn the basic concepts of programming and learn to write and reason about simple programs. The main topics covered are: storing and manipulating data, control structures, methods and recursion, and algorithms for searching and sorting data. Classes include weekly lectures and lab sessions. You will be assessed by coursework throughout the term and by an end-of-term exam. Both will require you to demonstrate that you can write programs and understand theory.

Research