MEng FT Electronic Engineering and Computing
- Duration:
- 4 Years
Description
This programme includes the digital circuit design elements of the electronic engineering programmes, while emphasising computer systems and software. You will also study the increasingly important areas of artificial intelligence and network computing, internet computing, and e-commerce engineering.
The programme follows the same structure as the BEng, with the inclusion of a team project in the third year. It incorporates an additional year of specialisation in such topics as music, speech, video and image processing, quality management and network modelling and performance. You can transfer onto the MEng from the BEng until the end of the second year, subject to satisfactory performance.
Modules
Year 1
- Communications and Networks
-
Communications and Networks
The course provides an introduction to the principles of telecommunications embracing fundamental concepts in communication systems and the transmission of information.
Read More - Professional and Research Themes
- Electronic Engineering Mathematics I
-
Electronic Engineering Mathematics I
This module covers linear algebra, vector algebra and analysis, and differential equations. Linear algebra includes: introduction to Matrices, addition of Matrices, multiplication of Matrices, Systems of Equations; Eigenvalues and eigenvectors. Differential Equations cover first and second order D.E, and vector algebra includes field operators and surface and volume integration in different coordinate systems. All topics will be related to engineering applications.
Read More - Procedural Programming
-
Procedural Programming
This is a laboratory-based course supported by lectures. Each student will have a weekly timetabled lab session. These sessions will be backed up by a weekly two-hour lecture.
Topics include the use of:
- basic control structures
- arrays and other datatypes
- methods and recursion
- simple search and sort algorithms
- basic control structures
- arrays and other datatypes
- methods and recursion
- simple search and sort algorithms
- Fundamentals of Web Technology
-
Fundamentals of Web Technology
This is a course designed to offer student practical skills as well as understanding of underlying principles of programming the World Wide Web. There will be two hours of lectures per week, and weekly timetabled lab sessions in the Information Technology Lab (ITL) for each student. Major topics include:
- Internet and Web server basics
- Client-side programming using XHTML, Cascading Style Sheets, and Javascript.
- Server-side programming using PHP
- Practical issues on setting up a website
- Internet and Web server basics
- Client-side programming using XHTML, Cascading Style Sheets, and Javascript.
- Server-side programming using PHP
- Practical issues on setting up a website
- Issues surrounding the technical development of web services
- The ability to undertake basic programming using a range of common web languages
- The programming concept of a markup language
- The programming concept of a scripting language
- The programming concept of event-driven computation
- Object-Oriented Programming
-
Object-Oriented Programming
There will be two hours of lectures per week, and each student will have a weekly timetabled lab session in the Information Technology Lab (ITL). In addition, students 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.
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.
Read More - identify the relevant classes and subclasses for the solution.
- write the methods reflecting the requested behaviour of the system.
- test and debug the program.
- Digital Circuit Design
-
Digital Circuit Design
The Course is concerned with the design of digital electronic circuits. The principles of combinational and sequential logic design and the fundamentals of digital hardware design are covered.
Read More - Signals and Information
-
Signals and Information
This first year module introduces the fundamentals of signals, Fourier Series, information theory and signal statistics. Topics covered include: signal fundamentals such as discrete versus continuous time signals; signal average, energy and power; orthogonality; Fourier Series. The module also provides an introduction to information theory, including the information measure, entropy and the binary symmetric channel. Basic ideas in statistics will also be introduced. It will be taught by a combination of lectures, tutorials and labs.
Read More
Communications and Networks
Summary:The course provides an introduction to the principles of telecommunications embracing fundamental concepts in communication systems and the transmission of information.
Credits:
15.0
Pre-requisites:
None
Aims:
The course aims to give each participant a broad overview of telecommunications and internet systems, knowledge of fundamental principles and concepts for transmitting information, techniques for representing telecommunications traffic.
Objectives:
Name the major components of all communications systems. Explain the principles of data communications. Explain the principles of internetworking. Describe the basic operation of internet applications (such as email, ftp, web, etc.). Describe the process of establishing a telephone call. Explain the principles of resource sharing in telecommunications networks.
Books:
Data and Computer Communications by William Stallings; 6th Edition; Prentice-Hall 2000; ISBN 0130843709Telecommunications Principles by O'Reilly, John J; 2nd Edition; Chapman & Hall 1989; ISBN 0412437007Data Communications and Computer Networks by Michael Duck and Richard Read; Pearson 2003; ISBN 0130930474
Electronic Engineering Mathematics I
Summary:This module covers linear algebra, vector algebra and analysis, and differential equations. Linear algebra includes: introduction to Matrices, addition of Matrices, multiplication of Matrices, Systems of Equations; Eigenvalues and eigenvectors. Differential Equations cover first and second order D.E, and vector algebra includes field operators and surface and volume integration in different coordinate systems. All topics will be related to engineering applications.
Credits:
15.0
Pre-requisites:
Maths A level or equivalent
Procedural Programming
Summary:This is a laboratory-based course supported by lectures. Each student will have a weekly timetabled lab session. These sessions will be backed up by a weekly two-hour lecture.
Topics include the use of:
Credits:
15.0
Pre-requisites:
- None - .
Aims:
The major aim of this course is to teach you how to write simple programs fluently and correctly. In the course of doing this you will also learn to read and understand programs, and some basic use of an operating system. The course is given using Java under Linux, but the skills you will learn are intended to be transferable.
Objectives:
By the end of the module you will be able to: - write code at a procedural level fluently and accurately, - explain the functioning of your code to others and document it suitably, - read similar code written by others, understand it, track down errors, and make modifications. - explain technical programming concepts and discuss issues related to them.
Core Skills:
By the end of the module you will be able to: - solve problems by thinking algorithmically, - recognize when an algorithmic solution can be used to solve a range of problems - recognize the underlying logic within problems and solutions, - explain programming concepts, - compare and contrast related technical concepts - discuss issues: arguing a case based on evidence for both sides of the argument then drawing evidence-based conclusions. Programming develops a range of skills such as logical thinking and problem solving. The course also focuses on technical writing skills. These transferable skills are developed in the context of programming.
Fundamentals of Web Technology
Summary:This is a course designed to offer student practical skills as well as understanding of underlying principles of programming the World Wide Web. There will be two hours of lectures per week, and weekly timetabled lab sessions in the Information Technology Lab (ITL) for each student. Major topics include:
Credits:
15.0
Pre-requisites:
The students need to have taken a course on procedural programming.
Aims:
The aim of this course is to provide students with a basic understanding of the operation of the World Wide Web and teach students practical skills for programming the Web. In the course of doing so they will gain hands-on experience with the use of web programming languages and technologies. They will also develop an understanding of the important programming concepts such as a markup language for text layout design, and a scripting language.
Objectives:
At the end of this course students will have an understanding of:
Core Skills:
This course will help students develop a range of skills including analytic problem solving through exercises and coursework, communication skills through coursework and report writing, and team-working skills through discussing with TAs and other students.
Extra Costs:
There are no additional costs to study this module, unless you exceed your print credit and choose to purchase additional print credit.
Object-Oriented Programming
Summary:There will be two hours of lectures per week, and each student will have a weekly timetabled lab session in the Information Technology Lab (ITL). In addition, students 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.
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.
Credits:
15.0
Pre-requisites:
Procedural programming or an equivalent course.
Aims:
The course aims to improve the programming skills of students and to develop fundamental skills in reading, writing, describing, structuring and reasoning about programs. In particular, the course aims to develop these skills at the level of mid-level structure as seen in the object oriented style of programming.
Objectives:
At the end of the course the student should be able to use most of the object oriented concepts when writing programs. Given a description of a problem in English, the student should be able to:
Core Skills:
Ability to write basic programs using classes, inheritance, polymorphism, exceptions. Ability to read, understand and edit java code. Ability to design and implement code starting from a specification.
Books:
K.N.King: Java Programming From the Beginning. W. W. Norton 2000, 788 pages.
Extra Costs:
There are no additional costs to study this module, unless you exceed your print credit and choose to purchase additional print credit.
Digital Circuit Design
Summary:The Course is concerned with the design of digital electronic circuits. The principles of combinational and sequential logic design and the fundamentals of digital hardware design are covered.
Credits:
15.0
Pre-requisites:
A level Maths
Aims:
To introduce the basic theorems of digital logic; To present basic techniques for designing digital circuits; To provide the knowledge and understanding required to embark on level 2 courses concerned with digital systems and microprocessors.
Objectives:
Perform number base conversions; use complements to represent signed numbers and perform arithmetic operations with negative numbers Understand the difference between binary numbers and codes and error detection. Manipulate Boolean algebraic expressions using the Boolean postulates and theorems. Derive a Boolean function from the truth table of the function. Use a Karnaugh map to reduce a Boolean function to its minimum form. Express a combinational logic function as a logic gate circuit; convert expressions between the sum-of-products and the product-of-sums forms and implement in NAND or NOR gate form respectively. Use NAND gates to realise a half-adder logic circuit. Use the half adder as a building block for full-adders, parallel adders and multipliers. Understand the gate structure and applications of MSI logic chips such as code converters, decoders and encoders, multiplexers and demultiplexers. Devise test vectors to perform waveform analysis on combinational logic circuits. Understand how to use logic gates to build gated latches and flip-flops. Use characteristic tables and state diagrams to design sequential logic circuits. Use TTL integrated circuit logic chips to build combinational and sequential logic circuits in the lab.
Books:
Digital Design: Principles and Practices by John F. Wakerly; 4th Edition updated; Prentice Hall 2001; ISBN 0130898961
Signals and Information
Summary:This first year module introduces the fundamentals of signals, Fourier Series, information theory and signal statistics. Topics covered include: signal fundamentals such as discrete versus continuous time signals; signal average, energy and power; orthogonality; Fourier Series. The module also provides an introduction to information theory, including the information measure, entropy and the binary symmetric channel. Basic ideas in statistics will also be introduced. It will be taught by a combination of lectures, tutorials and labs.
Credits:
15.0
Aims:
To provide an understanding of the fundamentals of signals, Fourier Series, information theory and signal statistics, including how these are evaluated, and how they are used in a limited range of practical real-world scenarios.
Year 2
- Programming Fundamentals
-
Programming Fundamentals
The course stresses the importance and principles of computer algorithm design and structured programming techniques as a discipline for developing quality software. Fundamental concepts of software programming, including the use of pseudocodes, flowcharts and structured high-level programming languages are introduced. The C programming language is used as the high-level programming language.
Read More - Microprocessor Systems Design
-
Microprocessor Systems Design
The course examines the structure, applications and programming of microcontroller and similar devices. There will be practical work on using the devices as part of the module.
Read More - Graphical User Interfaces
-
Graphical User Interfaces
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 (e.g. the proliferation of books with titles such as 'the idiots guide to ') and courses to realise that designers often simply fail to make interfaces usable.
This course introduces you to basic concepts of psychology and communication which inform the way in which interfaces should be designed.
The course comprises lectures, problem classes, and lab sessions.
Lectures
The lectures teach you the basics of:
- Cognitive psychology principles relevant to the design of GUIs
- A framework of GUI design guidelines which you can use to inform and evaluate GUI design
- An introduction to techniques for analysing artefacts and situations to inform the design of suitable GUIs
- An iterative design process
- Evaluation techniques with users, heuristics, and models
- Interaction beyond the visual modality
The lectures are also used to outline coursework to be completed in the lab sessions, and to provide feedback and discussion opportunities about the coursework as it evolves.
Problem classes
Problem classes provide you with a chance to develop your Java skills in order to develop the complex interactivity required in the coursework.
Lab sessions
The lab sessions are a time for you to complete programming exercises set in the early part of the course, and coursework as the course progresses. Lab sessions are compulsory as they are used to assess your progress and to identify problems that you are having. Interesting ideas, and pertinent problems will be discussed in the following lecture.
Exercises
You will undertake exercises individually to help develop your Java Swing capabilities for the first third of the course.
Coursework
The majority of the lab time is for the coursework which is itself strongly linked to the lecture material. You will work in small teams to complete coursework which is composed of three parts:
- Design iterative design of a GUI to support the key requirement(s) you identified in the requirements capture stage.
- Implementation of interactive prototype.
- Evaluation you will evaluate your own prototype and another groups prototype using methods taught in the lecture.
- Cognitive psychology principles relevant to the design of GUIs
- A framework of GUI design guidelines which you can use to inform and evaluate GUI design
- An introduction to techniques for analysing artefacts and situations to inform the design of suitable GUIs
- An iterative design process
- Evaluation techniques with users, heuristics, and models
- Interaction beyond the visual modality
- Design iterative design of a GUI to support the key requirement(s) you identified in the requirements capture stage.
- Implementation of interactive prototype.
- Evaluation you will evaluate your own prototype and another groups prototype using methods taught in the lecture.
- be able to construct GUIs
- understand basic principles of psychology and communication which inform the design of GUIs
- understand how to analyse activities and situations to inform the design of suitable GUIs
- understand, and have experienced, an iterative design process
- be able to evaluate your own and other peoples GUI designs
- be able to reflect upon different design and techniques and to critique their applicability
- Preece, J., Rogers, Y. and Sharp, H. Interaction Design. John Wiley and Sons (2001)
- Benyon, D., Turner, P., and Turner, S. Designing Interactive Systems. Addison-Wesley (2004) [note that this is also useful for the Interaction Design course]
- Raskin, J. The Humane Interface. Addison-Wesley (2000)
- H. Thimblebly, User Interface Design, ACM Press (1990)
- Software Engineering
-
Software Engineering
Software Engineering is concerned with applying engineering principles to the production of software. In the first semester 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 semester 1 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). In Semester 2 students (in pre-assigned groups of approximately six) will be presented with a significant software problem to solve. To meet the problem requirements and build a satisfactory system within the time constraints the students will have to apply the principles learnt in semester 1 and will have to work effectively as a team. Each team must choose a project manager and assign appropriate roles to each member. Course details, lecture slides and extensive supporting documentation are provided on the courseware page. .
Read More - Acquire technical knowledge: Understand difference between programming in the small and software system construction; Understand and use object oriented design techniques and software quality assurance methods; Produce a range of documentation necessary for software systems. Understand how to deliver systems incrementally;
- Acquire practical & managerial knowledgee: Work in a team environment to produce a high quality software system within budget & time while dealing with complexity and change; Understand the principles of risk management in software engineering and relevant ethical, professional and legal issues;
- Acquire highly marketable skills: become proficient in UML - the most widely used method for object oriented system design (and a case tool to support it); be able to build 'real- world' Java programs using a widely used programming environment;
- a range of interpersonal and communication skills through the work on the group project.
- a range of report writing skills, ranging from improving their technical report writing through to how to write up minutes of meetings
- project management, time management and planning, as well as legal, social and ethical and professional issues
- a range of problem solving skills
- how to arrange and conduct meetings
- a range of software documentation skills
- making presentations
- general office management IT skills (spreadsheets, word processing, presentation pacakges)
- object oriented programming
- Operating Systems
-
Operating Systems
This course builds upon the Programming Fundamentals and Telecoms and Internet Fundamentals courses, introducing the students to the major internet applications. It focuses on the TCP/IP protocol suite from OSI layers 5 through to 7, though some appreciation is given to transport layer protocols as part of the socket-programming topic.
Read More - Internet Applications
-
Internet Applications
This course builds upon the Programming Fundamentals and Telecoms and Internet Fundamentals courses, introducing the students to the major internet applications. It focuses on the TCP/IP protocol suite from OSI layers 5 through to 7, though some appreciation is given to transport layer protocols as part of the socket-programming topic.
Read More - Database Systems
-
Database Systems
Introduction to databases and their language systems in theory and practice.The main topics covered by the course are:
- The principles and components of database management systems.
- The main modelling techniques used in the construction of database systems.
- Implementation of databases using an object-relational database management system.
- SQL, the main relational database language.
- Object-Oriented database systems.
- Future trends, in particular information retrieval and data warehouses.
There are 2 timetabled lectures a week, and 1 hour tutorial per week (though not every week). There will be timetabled laboratory sessions (2 hours a week) for approximately 10 weeks.
Read More - The principles and components of database management systems.
- The main modelling techniques used in the construction of database systems.
- Implementation of databases using an object-relational database management system.
- SQL, the main relational database language.
- Object-Oriented database systems.
- Future trends, in particular information retrieval and data warehouses.
- To give an understanding of the purpose, features and facilities of database management systems.
- To give an understanding of the various database models, and their interrelationships.
- To give an understanding of, and practical experience of using, the relational database language SQL.
- Describe the facilities and features of database management systems.
- Construct database models from informal descriptions, and translate between such models.
- Implement, manipulate and query relational databases.
- Be aware of advanced database technologies.
- Describe relevant professional issues, including the role of the system administrator in DBMS use and management.
- Team working
- Written and oral communication
- Time management
- Problem solving
- Awareness of professional issues
Programming Fundamentals
Summary:The course stresses the importance and principles of computer algorithm design and structured programming techniques as a discipline for developing quality software. Fundamental concepts of software programming, including the use of pseudocodes, flowcharts and structured high-level programming languages are introduced. The C programming language is used as the high-level programming language.
Credits:
15.0
Aims:
The course aims to give students unfamiliar with software programming: - a methodology for developing programs; - knowledge of the concepts of programming in a high-level language; - knowledge of the features of the C programming language; - practice in developing simple programs.
Objectives:
Design simple algorithms using top-down stepwise refinement. Describe the basic aspects of any high-level language. Describe the basic features of the C language. Write, debug and execute programs in the C language which fulfill a set of specifications.
Core Skills:
Manage their time effectively to prepare and finish the lab exercises. Produce written laboratory reports.
Books:
Beginning C by Ivor Horton; Wrox Press 1997; ISBN 1861001142
Extra Costs:
There are no additional costs to study this module, unless you exceed your print credit and choose to purchase additional print credit.
Microprocessor Systems Design
Summary:The course examines the structure, applications and programming of microcontroller and similar devices. There will be practical work on using the devices as part of the module.
Credits:
15.0
Pre-requisites:
ECS412U
Aims:
- To impart an understanding of the architectures of microcontrollers and microprocessors.
- To impart an understanding of the design issues in using microcontrollers and similar devices.
- To enable students to make an informed choice of microcontrollers or similar device for a particular application.
- To enable students to use microcontroller devices in electronic circuits.
Objectives:
- Understand the architecture of microcontroller and microprocessor devices.
- Understand the timing, memory and data transfer limitations of using these devices.
- Be able to choose the right device for a particular application.
- Understand of the development cycle for the devices.
- Understand interfacing issues for the devices.
- Be able to write C code and assembly code for the devices.
- Use a microcontroller in an electronic circuit.
Core Skills:
- Analyse information in the literature.
- Present a coherent report on a topic that is initially unfamiliar.
- Assess information and produce a summary.
Books:
The 8051 Microcontroller and Embedded Systems (2nd edition) by M A Mazidi and J Mazidi and R McKinlay; Prentice Hall 2006; ISBN 9780131194021
Graphical User Interfaces
Summary: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 (e.g. the proliferation of books with titles such as 'the idiots guide to ') and courses to realise that designers often simply fail to make interfaces usable.
This course introduces you to basic concepts of psychology and communication which inform the way in which interfaces should be designed.
The course comprises lectures, problem classes, and lab sessions.
Lectures
The lectures teach you the basics of:
The lectures are also used to outline coursework to be completed in the lab sessions, and to provide feedback and discussion opportunities about the coursework as it evolves.
Problem classes
Problem classes provide you with a chance to develop your Java skills in order to develop the complex interactivity required in the coursework.
Lab sessions
The lab sessions are a time for you to complete programming exercises set in the early part of the course, and coursework as the course progresses. Lab sessions are compulsory as they are used to assess your progress and to identify problems that you are having. Interesting ideas, and pertinent problems will be discussed in the following lecture.
Exercises
You will undertake exercises individually to help develop your Java Swing capabilities for the first third of the course.
Coursework
The majority of the lab time is for the coursework which is itself strongly linked to the lecture material. You will work in small teams to complete coursework which is composed of three parts:
Credits:
15.0
Pre-requisites:
A good working knowledge of Java.
Good written skills would be useful.
Aims:
The course aims to teach the basics of designing graphic user interfaces and to provide some understanding of what makes interfaces appropriate for their intended use and audience.
Through self-directed learning students will learn techniques for the construction of graphic user interfaces.
Objectives:
At the end of the course you should:
Core Skills:
Communication skills
1 Communicate effectively in writing in a style appropriate to the situation(may include visual/graphic media where appropriate)
Examination, exercises, design studio and coursework test such skills.
2 Close read and synthesise information from extended documents including abstract ideas/ arguments to extract lines of reasoning
The recommended course reading list provides the material to develop these skills.
3 Understand, interpret and use specialist vocabulary
An understanding of the basic principles of psychology and communication which inform the design of GUIs is acquired.
4 Make an oral presentation
Groups evaluate and defend their own and evaluate another group's prototype in studio practice.
Working with others
5 Establish and maintain co-operative working relationships and agree ways to overcome difficulties
Courseworks are done in small teams and facilitates the development of these skills.
6 Plan and agree group objectives , responsibilities and working arrangements
Courseworks enable students to develop and practice the above skills.
7 Interact effectively and create opportunities for others to contribute to discussions; exchange information and ideas and modify responses
Courseworks enable students to develop and practice the above skills. Groups have to evaluate another group's prototype. Lectures provide feedback and discussion opportunities.
8 Review work with others , including factors that influence the outcome.
Courseworks enable students to develop and practice the above skills. Groups have to evaluate their own prototype.
Problem Solving
9 Explore the problem, identifying key areas and compare and choose the appropriate tools/ methods for its resolution (and be able to justify that choice)
Lab sessions are an important means for problem exploration and resolution and are used to monitor progress.
10 Plan and implement methods, review progress and revise as necessary
Individual exercises help develop programming capabilities, group coursework have progress monitored as milestones of development.
11 Apply agreed methods to check the problem has been resolved
Evaluation of own and peer prototypes using evaluation methods taught in lectures consolidates such skills.
Numeracy
12 Select and use numerical information and methods appropriate to the discipline
Courseworks require students to select between programme options design
13 Carry out multi-stage calculations, including those of a large data set
The iterative design process will test such a skill.
14 Explain and justify the choice of methods and the results of calculations
Justification of design choices are part of the assessment process
The use of information technology
15 Search and select appropriate information from a range of sources based on judgements of relevance and quality
Courseworks enable students to develop and practice the such skills in a group setting, with feedback from peers and assessors.
16 Use a software package to manage references
Not applicable
17 Use a range of methods to explore, develop and exchange information
Courseworks enable students to develop and practice such skills in a group setting.
Learning how to learn, (improving own learning and performance.)
18 Develop appropriate research strategies & take responsibility for learning with minimum direction
Identification of user requirements and iterative design of a GUI enhance such skills. Understand how to analyse activities and situations to inform the design of suitable GUIs.
19 Manage learning using available resources
Online and library resources are used to support this courses learning infrastructure.
20 Evaluate strengths and weaknesses, challenge received opinion and develop own criteria and judgement
Evaluation of own and peer prototypes using methods taught in lectures consolidates such skills which are evaluated in presentations.
Personal & professional development
21 Collect, record and analyse data relating to potential occupational areas
Professional context and importance of good GUI is stressed
22 Reflect on and record development of own career ideas
Not applicable
Books:
Good books to read in conjunction with this course are:
Other relevant books are:
Extra Costs:
There are no additional costs to study this module, unless you exceed your print credit and choose to purchase additional print credit.
Software Engineering
Summary:Software Engineering is concerned with applying engineering principles to the production of software. In the first semester 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 semester 1 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). In Semester 2 students (in pre-assigned groups of approximately six) will be presented with a significant software problem to solve. To meet the problem requirements and build a satisfactory system within the time constraints the students will have to apply the principles learnt in semester 1 and will have to work effectively as a team. Each team must choose a project manager and assign appropriate roles to each member. Course details, lecture slides and extensive supporting documentation are provided on the courseware page. .
Credits:
30.0
Pre-requisites:
Students need to have passed the first year programming modules It is also assumed that students will either have completed Systems Analysis or will be doing it concurrently.
Aims:
To ensure students have the necessary understanding of the principles and tools needed to build and test large-scale software systems. To ensure students are able to work in a team environment to build robust, maintainable software systems
Objectives:
Core Skills:
Students will learn:
Operating Systems
Summary:This course builds upon the Programming Fundamentals and Telecoms and Internet Fundamentals courses, introducing the students to the major internet applications. It focuses on the TCP/IP protocol suite from OSI layers 5 through to 7, though some appreciation is given to transport layer protocols as part of the socket-programming topic.
Credits:
15.0
Pre-requisites:
ELE103, ELE161
Aims:
The course aims to provide an in-depth knowledge of contemporary and widely-deployed Internet Applications, providing the student with an insight into their functionality and inter-relationship. This includes DNS, SNMP and traditional non-real-time data delivery services such as e-mail, file transfer protocol and telnet. In addition, new real-time and low access latency services including voice over IP, multimedia transport and multimedia retrieval technologies are addressed. The Internet Applications course is complementary to the Internet Protocols course as it is examining OSI layers 5-7, whilst the latter considers layers 1-4.
Objectives:
Explain the primary applications that are operating over the Internet infrastructure, their role and implementation. Describe the operation of these protocols. Explain the demands they place on the underlying infrastructure. Design simple internet applications using the socket construct.
Books:
Internetworking with TCP/IP Vol 1: Principles, Protocols and Architecture by D. Comer; 5th Edition; Prentice Hall 2006; ISBN 0131876716
Extra Costs:
There are no additional costs to study this module, unless you exceed your print credit and choose to purchase additional print credit.
Internet Applications
Summary:This course builds upon the Programming Fundamentals and Telecoms and Internet Fundamentals courses, introducing the students to the major internet applications. It focuses on the TCP/IP protocol suite from OSI layers 5 through to 7, though some appreciation is given to transport layer protocols as part of the socket-programming topic.
Credits:
15.0
Pre-requisites:
ELE103, ELE161
Aims:
The course aims to provide an in-depth knowledge of contemporary and widely-deployed Internet Applications, providing the student with an insight into their functionality and inter-relationship. This includes DNS, SNMP and traditional non-real-time data delivery services such as e-mail, file transfer protocol and telnet. In addition, new real-time and low access latency services including voice over IP, multimedia transport and multimedia retrieval technologies are addressed. The Internet Applications course is complementary to the Internet Protocols course as it is examining OSI layers 5-7, whilst the latter considers layers 1-4.
Objectives:
Explain the primary applications that are operating over the Internet infrastructure, their role and implementation. Describe the operation of these protocols. Explain the demands they place on the underlying infrastructure. Design simple internet applications using the socket construct.
Books:
Internetworking with TCP/IP Vol 1: Principles, Protocols and Architecture by D. Comer; 5th Edition; Prentice Hall 2006; ISBN 0131876716
Extra Costs:
There are no additional costs to study this module, unless you exceed your print credit and choose to purchase additional print credit.
Database Systems
Summary:Introduction to databases and their language systems in theory and practice.The main topics covered by the course are:
There are 2 timetabled lectures a week, and 1 hour tutorial per week (though not every week). There will be timetabled laboratory sessions (2 hours a week) for approximately 10 weeks.
Credits:
15.0
Pre-requisites:
No formal prerequisites, but some experience of programming language(s), and an awareness of some aspects of operating systems and systems design.
Aims:
Objectives:
At the end of this course the student should be able to:
Core Skills:
Books:
Database systems, Elmasri and Navathe, 6th Edition,Addison-Wesley.
Database Systems, 5th or 4th ed, Thomas Connolly and Carolyn Begg, Addison Wesley.
On-line manuals for the relational database management system used for the practicals.
Extra Costs:
There are no additional costs to study this module, unless you exceed your print credit and choose to purchase additional print credit.
Year 3
- Microprocessor Systems Design
-
Microprocessor Systems Design
The course examines the structure, applications and programming of microcontroller and similar devices. There will be practical work on using the devices as part of the module.
Read More - Digital Signal Processing
-
Digital Signal Processing
This is a level 3 course which builds upon the signal processing theory introduced in ELE374, Signals and Systems Theory. The main part of the course covers the theory of digital signal processing techniques and digital filter design. The course concludes with an examination of some applications of digital signal processing.
Read More - Digital Signal Processing
-
Digital Signal Processing
New module under development for 2012/13. Information pertaining to this module will appear once approved.
Read More - Distributed Systems and Security
-
Distributed Systems and Security
In this course we shall cover the basic technical elements of distributed systems, with a focus on basic technologies for security in distributed computing because of their technical and social significance. Concretely we discuss fundamental characteristics of distributed systems, including: openness, geographic distribution, heterogeneity, communication delay and failure; key elements for networking and internetworking, including: layered protocols (centring on the TCP/IP protocol suit), addressing and routing, naming service; server-client models, remote procedure calls (RPC) and remote method invocation (RMI), taking Java and CORBA as examples; basic ideas of distributed file service, including basic architecture/mechanisms, name space management, cache management and concurrency control; and finally models and mechanisms of security, in particular fundamental ideas of security, symmetric and asymmetric cryptography, authentication mechanisms, basic cryptographic protocols and algorithms, protection domains, access control, firewall, and real-world examples of security including web commerce and Kerberos.
Read More - symmetric and asymmetric cryptography
- authentication
- basic cryptographic protocols and algorithms
- access control (e.g. ACL, protection domains)
- flow control (in particular firewall)
- other basic security measures, real-world examples from web commerce and Kerberos
- Distributed Systems and Security
-
Distributed Systems and Security
New module under development for 2012/13. Information pertaining to this module will appear once approved.
Read More - Enterprise Management
-
Enterprise Management
Introduction to business and management concepts and theories. Development of these concepts and theories in an engineering/technology context.
Read More - Algorithms and Data Structures in an OO Framework
-
Algorithms and Data Structures in an OO Framework
Algorithms are "ways of doing something", data structures are ways of combining collections of data to form a coherent whole. Many algorithms are about processing collections of data, an obvious example being to re-arrange a collection to put it in some sorted order. This module will introduce the basic concepts of algorithms and data structures expressed using the Java programming language.
Java is an object-oriented language, and the object-oriented style is recognised as a good way of both breaking down a program into coherent parts, and generalising these parts so they may be re-used in a variety of contexts. So this module introduces algorithms and data structures in an object-oriented framework. A key theme is the idea of "abstraction": being able to separate out the way a program component works in interaction with other components from what goes on underneath to make it work.
Modern programming is as much about using code already provided as APIs as it is about using the core constructs of programming languages. This module follows that by including material on using the algorithms and data structures provided as the "Java Collections Framework" as well as coding your own algorithms and data structures.
Effective use of an abstract code framework requires a good understanding of the complexities of inheritance and generic typing. These are covered in this module.
The module covers two tricky topics, mastery of which has long been acknowledged as the mark of a skilled programmer: recursion and linked structures. There is also some coverage of algorithm efficiency analysis.
The module is intended for those who have already covered the basics of programming, and wish to move on to use and develop their programming skills for designing and constructing components of programs of a larger scale.
Read More - Using and defining objects
- Recursion and iteration
- Data abstraction
- Constructive and destructive abstractions
- Sorting and searching
- Efficiency
- Linked structures
- Implementing collection types
- Inheritance and generic typing
- Generalised coding using interface types
- Java's Collection Framework
- Integrated Circuit Design
-
Integrated Circuit Design
The course introduces CAD, design methodology, architectures, circuit and fabrication techniques for integrated circuits. The main emphasis is on CMOS design.
Read More - Software Risk Assessment
-
Software Risk Assessment
The role of software is increasingly critical in our everyday lives and the accompanying risks of business or safety critical systems failure can be profound. This course will provide students with a framework for articulating and managing the risks inherent in the systems they will develop as practitioners. Likewise, students will learn how to build decision support tools for uncertain problems in a variety of contexts (legal, medical, safety), but with a special emphasis on software development. This course will make a distinctive offering that will enable our students to bring a principled approach to bear to analyse and solve uncertain and risky problems. Course contents: Quantification of risk and assessment: Bayesian Probability & Utility Theory, Bayes Theorem & Bayesian updating; Causal modelling using Bayesian networks with examples; Measurement for risk: Principles of measurement, Software metrics, Introduction to multi-criteria decision aids; Principles of risk management: The risk life-cycle, Fault trees, Hazard analysis; Building causal models in practice: Patterns, identification, model reuse and composition, Eliciting and building probability tables; Real world examples; Decision support environments.
Read More - Ability to quantify and reason about risk
- Ability to use in depth decision support tools
- Ability to analyse and design probabilistic risk models for a wide range of application areas
- Specific focus on software engineering risk
- Ability to reason about and control software engineering risk
- Quantify and reason about risk
- Ability to use in depth decision support tools
- Database Systems
-
Database Systems
Introduction to databases and their language systems in theory and practice.The main topics covered by the course are:
- The principles and components of database management systems.
- The main modelling techniques used in the construction of database systems.
- Implementation of databases using an object-relational database management system.
- SQL, the main relational database language.
- Object-Oriented database systems.
- Future trends, in particular information retrieval and data warehouses.
There are 2 timetabled lectures a week, and 1 hour tutorial per week (though not every week). There will be timetabled laboratory sessions (2 hours a week) for approximately 10 weeks.
Read More - The principles and components of database management systems.
- The main modelling techniques used in the construction of database systems.
- Implementation of databases using an object-relational database management system.
- SQL, the main relational database language.
- Object-Oriented database systems.
- Future trends, in particular information retrieval and data warehouses.
- To give an understanding of the purpose, features and facilities of database management systems.
- To give an understanding of the various database models, and their interrelationships.
- To give an understanding of, and practical experience of using, the relational database language SQL.
- Describe the facilities and features of database management systems.
- Construct database models from informal descriptions, and translate between such models.
- Implement, manipulate and query relational databases.
- Be aware of advanced database technologies.
- Describe relevant professional issues, including the role of the system administrator in DBMS use and management.
- Team working
- Written and oral communication
- Time management
- Problem solving
- Awareness of professional issues
- Team Project
-
Team Project
A group simulation project to be taken by all third year MEng students registered for an MEng programme of study in Electronic Engineering.
Read More
Microprocessor Systems Design
Summary:The course examines the structure, applications and programming of microcontroller and similar devices. There will be practical work on using the devices as part of the module.
Credits:
15.0
Pre-requisites:
ECS412U
Aims:
- To impart an understanding of the architectures of microcontrollers and microprocessors.
- To impart an understanding of the design issues in using microcontrollers and similar devices.
- To enable students to make an informed choice of microcontrollers or similar device for a particular application.
- To enable students to use microcontroller devices in electronic circuits.
Objectives:
- Understand the architecture of microcontroller and microprocessor devices.
- Understand the timing, memory and data transfer limitations of using these devices.
- Be able to choose the right device for a particular application.
- Understand of the development cycle for the devices.
- Understand interfacing issues for the devices.
- Be able to write C code and assembly code for the devices.
- Use a microcontroller in an electronic circuit.
Core Skills:
- Analyse information in the literature.
- Present a coherent report on a topic that is initially unfamiliar.
- Assess information and produce a summary.
Books:
The 8051 Microcontroller and Embedded Systems (2nd edition) by M A Mazidi and J Mazidi and R McKinlay; Prentice Hall 2006; ISBN 9780131194021
Digital Signal Processing
Summary:This is a level 3 course which builds upon the signal processing theory introduced in ELE374, Signals and Systems Theory. The main part of the course covers the theory of digital signal processing techniques and digital filter design. The course concludes with an examination of some applications of digital signal processing.
Credits:
15.0
Pre-requisites:
ELE374
Aims:
To introduce students to the advanced concepts of processing signals that are represented as finite-precision number sequences, and to examine the role of digital signal processing techniques in digital storage and transmission.
Objectives:
Explain the principles of analogue-to-digital and digital-to-analogue conversion of band-limited signals, and be aware of the limitations and imperfections of real systems. Describe the discrete-time representation of sampled signals. Explain the concepts of linearity, time-invariance, stability, causality, discrete-time convolution and linear-coefficient difference equations. Explain the principles, theory and properties of the DTFT, the DFT and the z-transform. Understand the principles of discrete time filters (FIR and IIR). Design simple FIR linear-phase filters using the window method or by frequency-sampling design. Design computational structures for the realization of DSP algorithms for filters.
Books:
Digital Signal Processing Concepts and Applications by B. Mulgrew, P Grant and J Thompson; MacMillan 2003; ISBN 0333963563
Extra Costs:
There are no additional costs to study this module, unless you exceed your print credit and choose to purchase additional print credit.
Digital Signal Processing
Summary:New module under development for 2012/13. Information pertaining to this module will appear once approved.
Credits:
15.0
Aims:
New module under development for 2012/13. Information pertaining to this module will appear once approved.
Objectives:
New module under development for 2012/13. Information pertaining to this module will appear once approved.
Core Skills:
New module under development for 2012/13. Information pertaining to this module will appear once approved.
Extra Costs:
New module under development for 2012/13. Information pertaining to this module will appear once approved.
Distributed Systems and Security
Summary:In this course we shall cover the basic technical elements of distributed systems, with a focus on basic technologies for security in distributed computing because of their technical and social significance. Concretely we discuss fundamental characteristics of distributed systems, including: openness, geographic distribution, heterogeneity, communication delay and failure; key elements for networking and internetworking, including: layered protocols (centring on the TCP/IP protocol suit), addressing and routing, naming service; server-client models, remote procedure calls (RPC) and remote method invocation (RMI), taking Java and CORBA as examples; basic ideas of distributed file service, including basic architecture/mechanisms, name space management, cache management and concurrency control; and finally models and mechanisms of security, in particular fundamental ideas of security, symmetric and asymmetric cryptography, authentication mechanisms, basic cryptographic protocols and algorithms, protection domains, access control, firewall, and real-world examples of security including web commerce and Kerberos.
Credits:
15.0
Pre-requisites:
DCS218 Operating Systems
Aims:
This course aims at offering students the basic knowledge and understanding of the fundamental ideas on distributed computing systems, a norm in today's computing environments. The course will emphasise elucidation of fundamental concepts and mechanisms underlying essential technical elements of distributed systems and their security: what problems they solve and how, as well as what their limitations would be.
Objectives:
-
An understanding of
Core Skills:
Coding & testing algorithms for distributed systems, Writing basic distributed Java programs, Using web while understanding the underlying mechanism.
Extra Costs:
There are no additional costs to study this module, unless you exceed your print credit and choose to purchase additional print credit.
Distributed Systems and Security
Summary:New module under development for 2012/13. Information pertaining to this module will appear once approved.
Credits:
15.0
Aims:
New module under development for 2012/13. Information pertaining to this module will appear once approved.
Objectives:
New module under development for 2012/13. Information pertaining to this module will appear once approved.
Core Skills:
New module under development for 2012/13. Information pertaining to this module will appear once approved.
Extra Costs:
New module under development for 2012/13. Information pertaining to this module will appear once approved.
Enterprise Management
Summary:Introduction to business and management concepts and theories. Development of these concepts and theories in an engineering/technology context.
Credits:
15.0
Aims:
This is a module aimed at giving students an initial understanding of key business concepts that will then be developed further both in this module and in subsequent modules taken on the above degrees. The QAA in its Engineering Benchmark statement and the industry recommend that Engineering students take at least one business module as part of their degree programme in order that they obtain key skills. This module has been specifically designed to fulfill the needs of Electronic Engineering students based in the UK. The case studies and examples used in the module will be representative of the International Business environment.
Objectives:
Demonstrate relevant knowledge and understanding of organisations, the external environment in which they operate and how they are managed. Demonstrate relevant knowledge and skills that can be applied in an organisation to respond to change in both the internal and external environment. Explain each of the areas of business covered in the module and how they interact. Apply knowledge to practical and 'real-life' management situations. Apply knowledge of management to business scenarios in the International market
Core Skills:
Research a topic; Work as part of a team in organising time and sharing tasks; Manage time effectively and produce written progress reports and a final report on time; Write an essay that communicates a reasoned argument in a structured, clear, concise and well-presented manner; Demonstrate skills of critical thinking, analysis and synthesis in class discussions and assessment.
Books:
A. Palmer and B. Hartley (2009), The Business Environment, 6th Edition, published by: McGraw-Hill; 007711972X
Extra Costs:
There are no additional costs to study this module, unless you exceed your print credit and choose to purchase additional print credit.
Algorithms and Data Structures in an OO Framework
Summary:Algorithms are "ways of doing something", data structures are ways of combining collections of data to form a coherent whole. Many algorithms are about processing collections of data, an obvious example being to re-arrange a collection to put it in some sorted order. This module will introduce the basic concepts of algorithms and data structures expressed using the Java programming language.
Java is an object-oriented language, and the object-oriented style is recognised as a good way of both breaking down a program into coherent parts, and generalising these parts so they may be re-used in a variety of contexts. So this module introduces algorithms and data structures in an object-oriented framework. A key theme is the idea of "abstraction": being able to separate out the way a program component works in interaction with other components from what goes on underneath to make it work.
Modern programming is as much about using code already provided as APIs as it is about using the core constructs of programming languages. This module follows that by including material on using the algorithms and data structures provided as the "Java Collections Framework" as well as coding your own algorithms and data structures.
Effective use of an abstract code framework requires a good understanding of the complexities of inheritance and generic typing. These are covered in this module.
The module covers two tricky topics, mastery of which has long been acknowledged as the mark of a skilled programmer: recursion and linked structures. There is also some coverage of algorithm efficiency analysis.
The module is intended for those who have already covered the basics of programming, and wish to move on to use and develop their programming skills for designing and constructing components of programs of a larger scale.
Credits:
15.0
Pre-requisites:
The module assumes students have taken at least an introductory module in programming using Java, such as DCS100 Procedural Programming. It is also recommended to have taken a second module in Java covering the basic object-oriented aspects of the language, such as DCS104 Object Oriented Programming.
Aims:
Although the module centres on programming in Java, it moves towards the appreciation of programming as more than knowing the constructs of a particular programming language. It develops familiarity with common patterns of storing and manipulating data to solve problems, and the ability to choose or design appropriate patterns when faced with a new programming task. Appropriate here will mean both efficient in computer time and memory usage, and well structured for efficient use of programmers' time in maintenance and development.
Objectives:
Topics covered will include:
Core Skills:
A key aspect of the module is being able to describe algorithms clearly in English, and to understand the precise language used to describe algorithms. It also introduces the specialist vocabulary used to describe algorithms and data structures. In this way, it develops communication skills.
Problem-solving skills are at the heart of the module. It covers rigorous techniques for analysing problems and developing well-structured computer programs for solving them. It will enable you to explain and justify the choice of techniques used when building a computer program.
The module requires and develops self-discipline to progress through the examples used, and to complete exercises in time and learn from them. It introduces the idea of researching and making use of the code libraries provided with Java.
The module will further the professional development of students. Those who enjoy it and do well on it will be particularly suited to careers in software development. It also provides useful background knowledge for those working in other areas which use software. Its use of precision and the concept of abstraction will help more generally in developing clear patterns of thought.
Books:
Recommended purchase:
Paul T. Tymann and G. Michael Schneider 'Modern Software Development using Java' (2nd edition) Thomson ISBN-13: 978-14239-0123-5Extra Costs:
There are no additional costs to study this module, unless you exceed your print credit and choose to purchase additional print credit.
Integrated Circuit Design
Summary:The course introduces CAD, design methodology, architectures, circuit and fabrication techniques for integrated circuits. The main emphasis is on CMOS design.
Credits:
15.0
Pre-requisites:
ELE335 or equivalent
Aims:
To give an understanding of the technology used to manufacture integrated circuits and of the different fabrication technologies currently used. To introduce the CAD tools used in designing integrated circuits and to introduce students to the use of these tools. To explain some of the algorithms and file formats used in the CAD tools. To explain techniques used in circuit design for integrated circuits. To give students an understanding of the state of the art in integrated circuit design. To give students an understanding of IC test techniques and the importance of considering testing from the beginning of the design process.
Objectives:
Recall factual knowledge and be able to apply it in familiar and unfamiliar situations. Employ scientific, mathematical and software 'tools' to a familiar or unfamiliar situation; Interpret information presented in the form of technical circuit-diagrams, flow-charts and high-level languages. Use laboratory test equipment. Critically appraise a particular topic. Express the financial background against which decisions are made in Industry.
Core Skills:
Use CAD software Write a report on an electronic design
Books:
CMOS VLSI Design: A Circuits and Systems Perspective by N.H.E. Weste and D. Harris; 3rd International Edition; Addison-Wesley 2005; ISBN 0321269772
Software Risk Assessment
Summary:The role of software is increasingly critical in our everyday lives and the accompanying risks of business or safety critical systems failure can be profound. This course will provide students with a framework for articulating and managing the risks inherent in the systems they will develop as practitioners. Likewise, students will learn how to build decision support tools for uncertain problems in a variety of contexts (legal, medical, safety), but with a special emphasis on software development. This course will make a distinctive offering that will enable our students to bring a principled approach to bear to analyse and solve uncertain and risky problems. Course contents: Quantification of risk and assessment: Bayesian Probability & Utility Theory, Bayes Theorem & Bayesian updating; Causal modelling using Bayesian networks with examples; Measurement for risk: Principles of measurement, Software metrics, Introduction to multi-criteria decision aids; Principles of risk management: The risk life-cycle, Fault trees, Hazard analysis; Building causal models in practice: Patterns, identification, model reuse and composition, Eliciting and building probability tables; Real world examples; Decision support environments.
Credits:
15.0
Pre-requisites:
Students need to have passed: DCS/235 Software Engineering, or equivalent, and some exposure to introductory statistics (E.g. A level)
Aims:
The role of software is increasingly critical in our everyday lives and the accompanying risks of business or safety critical systems failure can be profound. This course will provide students with a framework for articulating and managing the risks inherent in the systems they will develop as practitioners. Likewise, students will learn how to build decision support tools for uncertain problems in a variety of contexts (legal, medical, safety), but with a special emphasis on software development. This course will make a distinctive offering that will enable our students to bring a principled approach to bear to analyse and solve uncertain and risky problems.
Objectives:
Core Skills:
Extra Costs:
There are no additional costs to study this module, unless you exceed your print credit and choose to purchase additional print credit.
Database Systems
Summary:Introduction to databases and their language systems in theory and practice.The main topics covered by the course are:
There are 2 timetabled lectures a week, and 1 hour tutorial per week (though not every week). There will be timetabled laboratory sessions (2 hours a week) for approximately 10 weeks.
Credits:
15.0
Pre-requisites:
No formal prerequisites, but some experience of programming language(s), and an awareness of some aspects of operating systems and systems design.
Aims:
Objectives:
At the end of this course the student should be able to:
Core Skills:
Books:
Database systems, Elmasri and Navathe, 6th Edition,Addison-Wesley.
Database Systems, 5th or 4th ed, Thomas Connolly and Carolyn Begg, Addison Wesley.
On-line manuals for the relational database management system used for the practicals.
Extra Costs:
There are no additional costs to study this module, unless you exceed your print credit and choose to purchase additional print credit.
Team Project
Summary:A group simulation project to be taken by all third year MEng students registered for an MEng programme of study in Electronic Engineering.
Credits:
30.0
Aims:
To give students experience in: working as a team, problem solving skills, implementing a design or development project possibly using simulation tools.
Objectives:
Apply scientific and/or engineering principles to the solution of a practical problem.
Core Skills:
Work as part of a team in organising time and sharing tasks. Manage time effectively and produce written progress reports and a final report on time. Make effective presentations of their project work, and demonstrate the project. Write a project final report that is satisfactory in literary terms and completely describes the project work. Critically evaluate the work to current technical practice.
Extra Costs:
Particiapation of this module may require purchasing electronic components or other devices. A budget is provided, where this is necessary. The budget is sufficient to cover the cost of successfully completing the project. A student may choose to exceed the budget in which case the student would be liable to pay the difference between the budget limit and the cost of any components.
Year 4
- Network Planning, Finance and Management
-
Network Planning, Finance and Management
New module under development for 2012/13. Information pertaining to this module will appear once approved.
Read More - Network Modelling and Performance
-
Network Modelling and Performance
This course develops probabilistic solutions to the problems of information loss and delay in modern, broadband networks, with a particular emphasis on Internet-type cell/packet network performance and design. The course stresses the appreciation and use of queueing theory, but develops the subject in a simple and intuitive manner, avoiding transform techniques. Emphasis is also placed on traffic control mechanisms and traffic modelling.
Read More - Real-Time and Critical Systems
-
Real-Time and Critical Systems
Most computer systems do not sit on desks but are inside machine such as cars and medical devices. This module builds on undergraduate knowledge of operating systems and software engineering to introduce techniques for real-time system development in applications where the performance of the system is critical for safety.
Read More - Be familiar with examples of real-time systems (critical and non-critical) and aware of software related accidents.
- Be able to develop embedded systems on a microcomputer using a suitable tool chain through stages of the development lifecycle.
- Understand the problem of scheduling real-time systems and know about scheduling algorithms
- Understand the need for and function of a typical real-time operating systems
- Understand software reliability and the limits of testing
- Use techniques for system modelling and design suitable for real-time systems.
- Apply concepts of safety, risk and hazards to the analysis of systems, using suitable techniques for both systems and software.
- Be aware of regulation and standards for the use of critical systems
- Real-Time DSP
-
Real-Time DSP
Read More - Entrepreneurship in Information Technology
-
Entrepreneurship in Information Technology
The aim of this module is to increase your awareness of the commercial opportunities available to you in the area of Information Technology. We examine how to cultivate an entrepreneurial mind set and discuss the routes available for turning your ideas into business ventures. The course provides an introduction to a number of crucial business skills such as financial planning, business planning and how to sell yourself and your ideas.
Please note that numbers on this course are limited. Priority will be given to Computer Science students who have this course on their recommended programme.
Read More - Highlight the importance of commercialisation of technology-based ideas both in the University and the industrial environment.
- Creatively explore commercial opportunities within information technology.
- Introduce the different routes available to take an idea to market.
- Develop the skills required to start a business venture.
- Explain the key considerations involved in intellectual property and idea protection.
- Introduce the key aspects of financial management required in the development of a business venture.
- An understanding of entrepreneurship and the enterprise culture.
- Demonstrate knowledge of the elements required to generate opportunities and to commercialise technology-based ideas.
- An understanding of the process involved in protecting and validating ideas.
- Demonstrate knowledge of the importance of business and financial planning and how to develop a business plan.
- Identify the sources available to fund ideas.
- Work through problems as an effective team member.
- Evaluate and present outcomes through oral presentation.
- Independently manage learning and the use of a wide range of resources with minimal guidance.
- Critically appraise progress of independent work.
- Make informed decisions about career choice and applications for jobs or further study.
- Business Technology Strategy
-
Business Technology Strategy
The Business Technology Strategy module is focused on strategic management of research and development and how technology strategy drives the commercial strategy of innovative technology-based organisations. This module complements the technical areas of the degrees by focusing on the telecommunications sector. The increased exposure to and understanding of the benefits of strategic knowledge and thinking will give the graduates a better preparation for management roles within this sector.
Read More - Project
-
Project
Read More - Functional Programming
-
Functional Programming
Recent approaches to systems programming frequently involve functional programming either overtly in the sense that they use modern functional programming languages for rapid prototyping, or more covertly in that they use techniques developed in the functional setting as a way of lending greater structure and clarity to code. This module gives a structured introduction to programming in modern industrial functional languages such as Haskell and F# and to techniques such as map-reduce and monadic programming.
Read More - To give a structured introduction to the languages Haskell and F#.
- To familiarise the student with the underlying type structures and the basic programming methodology.
- To exhibit more advanced type structures (such as functors) and programming techniques such as map-reduce and monadic programming, and to illustrate how these are used to give flexible extendible and parallelisable solutions to programming problems.
- able to program fluently in Haskell and F#
- familiar with the higher-order aspects of the type systems of these languages, and able to use them to structure code
- able to analyse programming problems, to recognise where they can be effectively addressed using components of the following basket of functional programming techniques, and to produce working code using those techniques:
- map-reduce
- monadic programming
- Computational thinking, through the understanding and use of a new computational paradigm
- Presentation of technical material, through provision and presentation of the deliverables for the coursework
- Self-organisation, through the delivery of a final project to time constraints
- Structured Documents and XML
-
Structured Documents and XML
XML has very rapidly become an extremely popular (and much-hyped)language. We will examine
- The role of XML in computer science
- XML and the semantic web
- XSLT as a programming language
- The role of XML in computer science
- XML and the semantic web
- XSLT as a programming language
- Knowledge of XML syntax and the various specificationlanguages (DTD, schema) used to constrain the syntax
- Knowledge of the type system underlying XML Schema
- Knowledge of the XSLT transformation language and thevarious programming techniques (structural recursion, pattern matching) needed to use it.
- Knowledge of the design issues involved in XML applications
- 21st Century Networks
-
21st Century Networks
This is a broad course designed to introduce students to all the modern infrastructure and to enable them to evaluate alternative infrastructures.
Read More - Mobile and WLAN Technologies
Network Planning, Finance and Management
Summary:New module under development for 2012/13. Information pertaining to this module will appear once approved.
Credits:
15.0
Aims:
New module under development for 2012/13. Information pertaining to this module will appear once approved.
Objectives:
New module under development for 2012/13. Information pertaining to this module will appear once approved.
Core Skills:
New module under development for 2012/13. Information pertaining to this module will appear once approved.
Extra Costs:
New module under development for 2012/13. Information pertaining to this module will appear once approved.
Network Modelling and Performance
Summary:This course develops probabilistic solutions to the problems of information loss and delay in modern, broadband networks, with a particular emphasis on Internet-type cell/packet network performance and design. The course stresses the appreciation and use of queueing theory, but develops the subject in a simple and intuitive manner, avoiding transform techniques. Emphasis is also placed on traffic control mechanisms and traffic modelling.
Credits:
15.0
Aims:
This course aims to provide students with knowledge of basic probabilistic and queueing theoretic techniques, plus the fundamentals and limitations of simulation modelling and how such knowledge can be exploited and applied in the design and configuration of traffic control mechanisms.
Objectives:
Explain fundamental probabilistic concepts, e.g. average values, probability, mass functions, probability distributions. Apply these probabilistic ideas (average values, probability mass functions, probability distributions) to the modelling of network scenarios. Develop queueing theoretic solutions for certain simple network problems. Solve cell/packet-scale and burst-scale buffering problems using queueing theory. Compare and contrast the use of simulation and analysis in network and performance modelling. Explain the need for, and use of, ATM and IP traffic control systems. Solve simple networking problems. Understand the basic ideas of network simulation.
Books:
Introduction to IP and ATM Design and Performance by J.M. Pitts and J.A. Schormans; 2nd Edition; Wiley 2000; ISBN 047149187X
Extra Costs:
There are no additional costs to study this module, unless you exceed your print credit and choose to purchase additional print credit.
Real-Time and Critical Systems
Summary:Most computer systems do not sit on desks but are inside machine such as cars and medical devices. This module builds on undergraduate knowledge of operating systems and software engineering to introduce techniques for real-time system development in applications where the performance of the system is critical for safety.
Credits:
15.0
Pre-requisites:
Software engineering (DCS325 or equivalent); Operating systems (DCS200 or equivalent); Basic knowledge of Computer Architecture is also assumed. Students will be expected to write short programs in C but the modules should be accessible able to program is another language.
Aims:
The aim of this module is to introduce students to the techniques most commonly use in industrial practice for the analysis and development of real-time and critical systems and the theory behind them. It encompasses both aspects of real-time system development and of critical system analysis. Though these topics are not necessarily linked (not all real-time systems are critical), some understanding of real-time / embedded systems provides context for the study techniques used for critical systems.
Core Skills:
Students completing this module successfully will:
Books:
Safeware: System Safety and Computers, by Nancy G. Leveson, Addison Wesley, 1995) ISBN-10: 0201119722
Real-Time Systems Development, Rob Williams, Butterworth-Heinemann, 2005, ISBN-10: 0750664711
Embedded Systems: Real-Time Operating Systems for the Arm® Cortex(TM)-M3, Jonathan Valvano, 2012, ISBN-10: 1466468866
Real-Time DSP
Credits:15.0
Pre-requisites:
Digital signal processing, signals and systems
Aims:
1. To introduce students to DSP chips and common accompanying hardware components by familiarizing them with the Texas Instruments C6711 evaluation module. 2. To allow students to work with the software environment provided by DSP chip manufacturers and to explore the additional software constructs and mechanisms provided to allow the development of real-time applications. 3. For students to develop an understanding of whether an application must be executable in real-time and, if so, what constraints this imposes on the design of the software and the use of the hardware. 4. To encourage students to fully use and help them to interpret the large body of documentation, sample code and user manuals that exists for the topics this course will encompass. 5. To introduce students, by demonstration, platform specific and DSP chip specific debugging techniques and to appreciate the problems encountered when debugging real-time applications. 6. To positively encourage independent learning and synthesis of ideas through project work.
Objectives:
1. To introduce students to DSP chips and common accompanying hardware components by familiarizing them with the Texas Instruments C6711 evaluation module. o Students should become very familiar with the technology, its properties, strengths and weaknesses. o Students should be aware of the choices available when choosing a processor, and when to select a DSP over an ASIC or a general purpose processor. 2. To allow students to work with the software environment provided by DSP chip manufacturers and to explore the additional software constructs and mechanisms provided to allow the development of real-time applications. o Students must be able to demonstrate a working knowledge of the Texas Instruments ‘Code Composer Studio’ software package. o Students must be able to utilize the real-time specific functionality of the software environment. 3. For students to develop an understanding of whether an application must be executable in real-time and, if so, what constraints this imposes on the design of the software and the use of the hardware. o Students must be able to differentiate between real-time and non-real-time applications. o Students must appreciate how the real-time requirement has shaped the development of DSP chips and will shape their applications. 4. To encourage students to fully use and help them to interpret the large body of documentation, sample code and user manuals that exists for the topics this course will encompass. o Students are expected to use the user manuals supplied with the evaluation module to complete assignments. o Students are expected to identify when to write original applications and when to draw from existing material. 5. To introduce students, by demonstration, to platform specific and DSP chip specific debugging techniques and to appreciate the problems encountered when debugging real-time applications. o Students must successfully solve problems in a laboratory environment. 6. To positively encourage independent learning and synthesis of ideas through project work. o Students will complete a project of their own specification that is expected to demonstrate an understanding of most (if not all) of the aims and learning outcomes of this course. o Students must demonstrate the ability to critically appraise their own work. o Students are expected to present results in an unambiguous fashion and to appreciate why this is particularly difficult in the fields of both real-time applications and of audio or video applications.
Extra Costs:
There are no additional costs to study this module, unless you exceed your print credit and choose to purchase additional print credit.
Entrepreneurship in Information Technology
Summary:The aim of this module is to increase your awareness of the commercial opportunities available to you in the area of Information Technology. We examine how to cultivate an entrepreneurial mind set and discuss the routes available for turning your ideas into business ventures. The course provides an introduction to a number of crucial business skills such as financial planning, business planning and how to sell yourself and your ideas.
Please note that numbers on this course are limited. Priority will be given to Computer Science students who have this course on their recommended programme.
Credits:
15.0
Pre-requisites:
None
Aims:
Objectives:
Core Skills:
Concise and effective presentation: presentation and written reports. Teamwork.
Business Technology Strategy
Summary:The Business Technology Strategy module is focused on strategic management of research and development and how technology strategy drives the commercial strategy of innovative technology-based organisations. This module complements the technical areas of the degrees by focusing on the telecommunications sector. The increased exposure to and understanding of the benefits of strategic knowledge and thinking will give the graduates a better preparation for management roles within this sector.
Credits:
15.0
Pre-requisites:
MTRM019 or ELE402 or ELB3402
Aims:
Understand the importance of technology strategy to businesses and how this is linked to commercial strategy Understand the theoretical knowledge and how to apply it to real-world examples. Students will have exposure to theory and practical case studies to build up their strategic skills. Case studies will be in the International business environment, with specific interest in the UK and Asia.
Objectives:
Acquire project management and strategic management skills. Assess possible solutions to a given problem. Research a topic. Work as part of a team in organising time and sharing tasks.
Core Skills:
Manage time effectively and produce written progress reports and a final report on time. Write a report that communicates a reasoned argument in a structured, clear, concise and well-presented manner. Display effective presentation skills.
Project
Credits:30.0
Extra Costs:
Particiapation of this module may require purchasing electronic components or other devices. A budget is provided, where this is necessary. The budget is sufficient to cover the cost of successfully completing the project. A student may choose to exceed the budget in which case the student would be liable to pay the difference between the budget limit and the cost of any components.
Functional Programming
Summary:Recent approaches to systems programming frequently involve functional programming either overtly in the sense that they use modern functional programming languages for rapid prototyping, or more covertly in that they use techniques developed in the functional setting as a way of lending greater structure and clarity to code. This module gives a structured introduction to programming in modern industrial functional languages such as Haskell and F# and to techniques such as map-reduce and monadic programming.
Credits:
15.0
Pre-requisites:
DCS/100 Procedural Programming, DCS/104 Object Oriented Programming, or close equivalents to these.
Aims:
Objectives:
By the end of the course the student should be:
Core Skills:
Books:
Book 1
Title: Learn You a Haskell for Great Good
Author: Miran Lipovaca
Note: Available for free online at http://learnyouahaskell.com/chapters
Book 2
Title: Programming in Haskell
Author: Graham Hutton
Book 3
Title: Real World Functional Programming
Authors: Tomas Petricek and Jon Skeet
Note: Articles available for free online at http://msdn.microsoft.com/en-us/library/hh314518.aspx
Structured Documents and XML
Summary:XML has very rapidly become an extremely popular (and much-hyped)language. We will examine
Pre-requisites:
Some knowledge of programming (preferably in Java or C++)
Aims:
This course will provide the students with an understanding of, and practical experience of, the roles of structured and semi-structured information in computer science
Objectives:
Understand and use the following;
Core Skills:
Analyse the conceptual structure of real-world information and to translate it into a formal specification
21st Century Networks
Summary:This is a broad course designed to introduce students to all the modern infrastructure and to enable them to evaluate alternative infrastructures.
Credits:
15.0
Aims:
This course aims to: Equip participants with a basic understanding of the infrastructure of the Internet. Show how communications networks are evolving. Provide experience in searching for information, filtering that information and presenting a summary.
Objectives:
Describe the principles of operation and architectures of Internet-type networks. Describe basic Internet protocols. Assess evolving changes in telecoms networks and how they affect Internet-type services.
Core Skills:
Analyse information in the literature. Assess competing viewpoints. Present a coherent report on a topic that is initially unfamiliar. Assess information and produce a summary.
Entry Requirements
Specific Condition(s): A-level or equivalent Mathematics.
Student Projects
Seesawing robots
In this project two robots were built from Lego Mindstorm kits and software
Read moreSeesawing robots
Key Contacts
Undergraduate Admissions Administrator
Student Voices

Nzube Ufodike
MSci Computer Science"I work in investment banking (asset management). [My career plan is to be] self-employed in an all-singing all-dancing tech start-up."
Read moreNzube Ufodike
MSci Computer Science graduate
(graduated 2006)
Currently? "I work full-time in investment banking (asset management)"
Why did you choose Queen Mary?
"Honestly, I was not too sure when I applied, but I wanted a ‘red-brick’ institution and QM turned out to be quite good actually. Campus life is a major selling point. Another nice thing is meeting people who also work in the City and finding out that they also studied at QM."
Salary Bracket: £35-45,000
What did you gain from your time at Queen Mary?
"The careers service is amazingly useful! My advice to every student is to make sure that they pop into their office at least once a month, even if just to pester them. They helped me tailor my CV, arrange mock interviews, psychometric tests, and had loads of careers advice and information regarding opportunities for summer internships and full time vacancies. Some of their services are not free but I think it is money well invested. There are so many options available on graduation and they are simply good at helping your decision-making seem less daunting. Attending lectures and socialising at Uni are great but it's always good to keep an eye on the ball i.e. a career that you really want on graduation. It really does pay to start planning this early. I also made some really good friends who are quite cool and who I know I'll be in touch with for life. I also miss the fun times in the halls of residence. "
Career plans?
"I plan to take a few professional exams (CFA, IMC, and maybe the CAIA or an MBA) and to remain in this industry for at least five years. Being self-employed in an all-singing all-dancing tech start-up is another dream I still nurture."

