Dr Matthew Huntbach - School of Electronic Engineering and Computer Science Skip to main content use href="http://eecs.qmul.ac.uk/media/ow-assets/assets/icons/sprite.svg#burger" xlink:href="http://eecs.qmul.ac.uk/media/ow-assets/assets/icons/sprite.svg#burger"> Study About Research Search Home Back to home Study Areas of study Foundation courses Biological and biomedical sciences Business and management Chemical sciences Comparative literature Computer and data science Dentistry Drama Economics and finance Engineering English Film studies Geography and environmental science Global health History Law Linguistics Materials science Mathematics Medicine Modern languages and cultures Physics and astronomy Politics and international relations Psychology Experience Queen Mary Why Queen Mary? Accommodation City campuses Student life The London advantage Study at Queen Mary Undergraduate study Postgraduate study International students A-Z undergraduate courses A-Z postgraduate taught courses A-Z PhD subjects About About home Welcome How to find us Calendar Our history Local community Facts and figures Freedom of information Who's who Sustainability Research Research home Strategy and Policies About our research News Impact Major grants PhDs Leading academics Research facilities Animal Research Support for QMUL researchers Publications Toolbox CritiQues School of Electronic Engineering and Computer Science School of Electronic Engineering and Computer Science School home School navigation Undergraduate Degree programmes Degree apprenticeships Foundation programme Fees and Funding Meet our students How to apply Industrial experience Study abroad Why choose us International students Joint Programme Innovation Centre Postgraduate Postgraduate programmes MSc project with industry Professional accreditation Entry requirements Fees & funding How to apply Why choose us PhD PhD research projects PhD studentships PhD fees and funding Meet our PhD students How to apply for a PhD Why choose us Research Research groups Research impact Industry collaboration Women in Computer Science and Electronic Engineering Research highlights Job opportunities Outreach First Lego League IET Faraday Challenge IT Counts Talks for schools Taster days Teaching London Computing The Royal Institution Masterclasses News People Academic staff Research staff Support staff Technical staff PhD students Emeritus staff Visiting staff News & Events News Events About us Contact us Equality, Diversity and Inclusion Intranet Jobs Institute of Coding Short courses and events Find a degree course Supporting teachers Scholarships School of Electronic Engineering and Computer Science People Profiles Dr Matthew Huntbach Lecturer Email: matthew.huntbach@qmul.ac.uk Telephone: +44 20 7882 5818 Room Number: Peter Landin, CS 303 Website: http://www.eecs.qmul.ac.uk/~mmh Office Hours: Wednesday 10:00-12:00 Teaching Research Publications Teaching 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. Further Object Oriented Programming (Undergraduate) This module is about writing code in a way that breaks large programs into small well-defined parts. It takes further what was taught about object-oriented programming in the first year, and its use in software engineering in the second year, emphasising practical coding aspects. The "SOLID" principles of good program design will be covered, and also implementation of important design patterns. Further aspects of the language Java will be considered, and comparison of Java with other programming languages. Some time will be given to programming in Scala, a functional style language implemented with the Java Virtual Machine/ 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. Software Engineering (Undergraduate) Software Engineering is concerned with applying engineering principles to the production of software. This module provides the management principles, theoretical foundations, tools, notation and background necessary to develop and test large-scale software systems. The practical part of the module consists of lab assignments in which students use a range of relevant tools (a Java programming IDE, unit testing tool, configuration management tool, UML design tool, and project planning tool). Aims To ensure students have the necessary understanding of the principles and tools needed to build and test large-scale software systems. In particular, it provides the necessary background for students to undertake a significant group project assignment in subsequent modules or employment. Software Engineering (BUPT joint programme) An introduction to modern software development techniques necessary to produce high quality software and to manage the production of this software, and additional practice in program development. The module focuses on communication: ensuring customer requirements have been correctly understood, learning to develop a software as a team, developing clean code and the critical problems of project management. Research Research Interests:Concurrent/Declarative Programming Languages Declarative programming languages are based on an abstract model of computing rather than the actual hardware. With an abstract model which breaks down clearly into pieces with defined patterns of interaction, we can write programs which are less likely to contain bugs than conventional programs and more easy to analyse. Another reason for using declarative languages is that as they are not tied to the standard single-processor architecture they may more easily be mapped onto multi-processor architectures, while saving the programmer from having to be concerned with low-level aspects of controlling these architectures. The challenge is to design programming languages which are easy for ordinary programmers to use, which fit into the modern pattern of computing which is as much about interaction is about calculation, and which have a clear abstract model underlying them. Publications Footer navigation Accommodation Alumni A-Z Schools and institutes Business Careers & Enterprise Contact Events Global How to find us International students Jobs Library MyQMUL New students News Order a prospectus Our brand Parents Professional services departments Public Engagement QMplus Staff directory Staff intranet Student life Students' Union Teachers Term dates Trade Union Facility Time Accessibility Disclaimer Privacy and cookies Site map Modern Slavery Statement Supplier fraud alert Contact the university Queen Mary University of London Mile End Road London E1 4NS +44 (0) 20 7882 5555 Follow us: Facebook Twitter Instagram YouTube Edit Page