Degree of MSc (Embedded Systems)
Description
The aim of the MSc in Embedded Systems is to develop a highly skilled pool of graduates for the fast evolving embedded systems industry. The core courses focus on essential skills for embedded systems design while the elective courses delve into advanced topics. Exposure to state of the art technology is given through seminars by experts from the industry. The programme combines relevant theory, state-of-the-art tools and methodologies used in industry and academia. The comprehensive project component provides adequate practical experience towards developing a market viable product.ADMISSION REQUIREMENTS
Candidates should possess a good Bachelor's degree in Electrical/Electronics or Computer Engineering. Preference will be given to those possessing an Honours degree. Experience in Embedded Systems related projects would be an added advantage. TOEFL is required for graduates from universities with a non-English medium of instruction.ACADEMIC YEAR
Semester dates for the academic year 2012/2013 can be found at here. CURRICULUM STRUCTURE
Full-time Option:
The full-time MSc programme has a normal duration of one year. During this time, students must complete 30 academic units (AUs) to graduate. Lectures are normally conducted in the evenings. Laboratory or workshop sessions may also be conducted during the weekdays, in the weekday evenings, or on Saturdays during the day. The project will be undertaken during normal working hours throughout the week
- The full-time programme has only the single study option available:
Coursework & Dissertation: Students are required to take eight (8) courses (24 AUs) consisting of five (5) core courses, three (3) elective courses and a substantial project (6 AUs).
Each course is 3 AUs and has 39 contact hours consisting of lectures, tutorials, laboratory and/or workshop sessions.
The project is an individual research or development project in the area of embedded systems. The project, which carries a weight of two normal courses, will be selected in the first 4 weeks of the programme and undertaken full-time for the remainder of the programme. The dissertation for the project must be submitted within 2 years from the commencement of the candidature.
Part-time Option:
The part-time MSc programme is primarily designed for practising professionals. The part-time programme has a normal duration of two years. During this time, students must complete 30 academic units (AUs) to graduate from the programme. Lectures are normally conducted in the evening. Laboratory or workshop sessions and projects may also be conducted in the weekday evenings or on Saturdays during the day.
In order to provide more flexibility to candidates, particularly as the majority are working full time, the part-time programme has the following study options available:
- Coursework & Dissertation: Students are required to take eight (8) courses (24 AUs) consisting of five (5) core courses, three (3) elective courses and a substantial project (6 AUs).
- Coursework only: Students are required to take a total of ten (10) courses (30 AUs) consisting of five (5) core courses and five (5) elective courses, one of which must be ES6129: Directed Reading.
Each course is 3 AUs and has 39 contact hours consisting of lectures, tutorials, laboratory and/or workshop sessions. Students will select the option most appropriate to their needs towards the end of their first year.
If the student selects the project option, an individual research or development project in the area of embedded systems is undertaken as part of their second year of study. The project, which carries a weight of two normal courses, must start before the end of the first academic year and usually end in the second semester of the second academic year. Project selections must be made before the students go for their Semester II examinations so as to allow one full year to complete the work. The dissertation for the project must be submitted within 4 years from the commencement of the candidature.
Core Courses
There are five (5) core courses.
Project
Elective Courses
Note:
* indicates a semester 1 course,
** indicates a semester 2 course,
# indicates that the course can be taken in either semester,
% indicates a full year course, and
Detailed Descriptions
Core Courses
ES6101 Principles of Embedded Computing Systems
AUs: 3
Prerequisites: NIL
Semester 1
This course will introduce students to embedded systems by providing a detailed overview of the important topics in the field. It will introduce typical examples of embedded systems; real time and safety critical issues; constraint-driven design; systems integration; hardware-software partitioning and time-to-market considerations.
The course will examine programmable devices, microcontrollers, application specific standard processors; importance of interrupts; reconfigurable logic; system-on-a-chip; finite state machines; dataflow architectures; and distributed embedded systems. Software for embedded systems, including: programming languages and software architectures; interrupt servicing; multi-tasking; task communications and scheduling; verification; hardware-software co-simulation; and real-time operating systems will be introduced.
The course will also review design methodologies, including: techniques for specification; formal models and specification languages for capturing system behaviour; unified modelling frameworks; design analysis; optimisation and implementation; system verification; rapid prototyping; IP-based designs; hardware-software co-design; and quality & performance metrics.
ES6102 Advanced Digital Systems Design
AUs: 3
Prerequisites: NIL
Semester 2
This course will develop the digital hardware design skills necessary for practitioners in the embedded systems field. It will provide a brief overview of logic design concepts before examining, in detail, the design methodologies for complex digital systems, including the use of high-level design languages for rapid development; hardware description languages and tools; FPGA based designs; computer arithmetic in digital systems; energy efficient architectures; signal integrity and clock event horizons. Design for production test strategies will also be examined, including: test structures; automated testing techniques; test coverage and economics of testing; enhancing testability, structured design techniques, scan based design and built in self test.
The course will include a substantial design exercise covering a typical FPGA design flow, including design entry using high level hardware description languages, functional simulation and verification, synthesis, structural simulation and verification, place and route, and target mapping, using the latest commercial FPGA design tools.
ES6103 Embedded Systems Programming
AUs: 3
Prerequisites: Knowledge of C programming
Semester 2
This course will equip students with the software development skills necessary for practitioners in the embedded systems field. The course will bring the participants through the entire software development lifecycle and examine the various issues involved in developing software for embedded systems, including: designing for modularity, flexibility, scalability, robustness, fault tolerance, safety criticality, high availability and long term software operation, which are characteristic of embedded systems. Embedded systems software development also requires working knowledge in real time operations, multi-tasking, programming languages, real time systems design and applications.
The course will also introduce techniques for soliciting and analyzing software requirements, as well as designing and implementing real time embedded systems, including: operating systems, timeliness and latency, schedulability analysis, modeling techniques, software architectural design, software safety analysis, verification and testing, defensive design, software development tools and environment, optimization issues, maintenance techniques.
Students gain a practical understanding of the concepts involved through examining industry standards for reliable programming and also by completing a project.
ES6104 Embedded Processors & Peripherals
AUs: 3
Prerequisites: NIL
Semester 2
This course will introduce issues relating to embedded processors. This will start with a review of microprocessors, including: processor architectures; programming model; instruction sets; and exception support.
Memory and peripherals for embedded devices will be examined, including: memory and I/O interfacing; parallel I/O; USART, SSC, field buses; timers, watchdog, high-speed I/O modules; display controllers; DMAs; MMUs, peripheral control processor; memory systems and types; interfacing techniques; performance issues; and power considerations.
The course will also examine aspects of integrated microprocessors, including: selection criteria; on-chip resources; power management; development support; application specific standard processors; and multi-core vs. unified core devices. A case study of a popular RISC such as the ARM processor and emerging technologies will be examined.
ES6105 Digital Signal Processing Systems
AUs: 3
Prerequisites: Knowledge in Digital Electronics and Computer Architecture
Semester 2
This course will introduce students to digital signal processing algorithms and to hardware related implementation issues. It provides an introduction to signals and systems, including: sampling techniques, aliasing, line spectra, symmetry, anti-alias filters; discrete time systems; FIR and IIR filters; windowing techniques, frequency transformations, auto- and cross-correlation; Fast Fourier Transform (FFT), decimation, twiddle functions and butterflies (DIF & DIT) and an introduction to stochastic signal processing techniques.
The course will then examine implementation issues, including: hardware and software structures for FFT implementation and FFT processing rates. It will also examine hardware issues, including: DSP processors; organisation, programming model, and on-chip concurrency; MAC units; pipelining; addressing modes; application specific features such as short/long interrupts, hardware do loops, etc.; dedicated architectures vs. programmable DSPs; multi-DSP implementations; and development tools. Case studies of a number of signal processing implementations will be examined.
Project
AUs: 6
Prerequisites: NIL
Semester 1 and 2
Each student is to carry out an individual research or development project in the area of embedded systems. The project, which carries a weight equal to two normal subjects, must start before the end of the first academic year and end in the second semester of the second academic year. Selection must be done before the students go for their Semester II examinations. This will give the students at least one full year to complete the work.
Elective Courses
ES6125 Wireless Communications
AUs: 3
Prerequisites: Knowledge in Digital Communications and Computer Networks
Semester 1
This course will examine non-wired communications methods for embedded systems. Topics covered will include: a review of wireless communications; TDMA, FDMA and CDMA, GSM and CDMA systems; wireless networks and Bluetooth; wireless subsystem design and implementation. Wireless mobile channels: design of linear and non-linear equalizers, adaptive equalization, structures for equalizers; implementation of channel coders, block, Golay, Reed Solomon, and convolutional coders. DSP processors for filter implementation; digital modulation and demodulation; Costas loop for carrier phase and frequency synthesis. Design of CDMA systems: PN generators; Walsh, Hadamard codes; correlators; data encryption. Bluetooth protocol implementation.
ES6126 Algorithms to Architectures
AUs: 3
Prerequisites: A first degree in an electronics or computer-related course; Some knowledge of programming in C
Semester 2
This course will introduce students to the design techniques, methodologies and tools for efficient partitioning and mapping of algorithms onto parallel architectures and onto dedicated hardware. Topics covered will include: PRAM model, MPI, CUDA, hardware/software partitioning, concurrency issues, system-level behavior, global time vs. self-timing, shared state (memory) vs. point-to-point communications, finite vs. unbounded state, and function vs. architecture. System constraints including processing time, size, and cost and space-time tradeoffs in hardware and software will be discussed as well fundamental modeling considerations.
ES6129 Directed Reading
AUs: 3
Prerequisites: NIL
Semester 1 and 2
The course aims to impart detailed knowledge of a highly specialised topic within the field of embedded systems. The directed reading and independent research will involve an in-depth study of an advanced embedded technology and its application to embedded systems under the guidance of a faculty member. The directed reading course will be chosen in consultation with a supervisor. Admission into the course requires agreement by a proposed supervisor and submission of a proposal to the School (via the programme director) during the first two weeks of the semester in which the course will be taken.
ES6190 Special Topics - Secure Embedded Systems
AUs: 3
Prerequisites: A first degree in an electronics or computer-related course, and some experience of system design
Semester 2
The course introduces students to techniques for security and cryptography in embedded systems. In particular, topics related to the implementation of embedded systems stringent security are assessed at both the theoretical level, and practical level (typical attack scenarios are examined). Building on the theoretical foundation, techniques and control mechanisms for engineering high assurance embedded systems are examined. For embedded systems developers, an extended assessment of reverse engineering and system security issues are covered. This includes methods of performing reverse engineering of embedded systems and methods of mitigating against these attacks.
ES6191 Special Topics - Advanced Computer Architecture
AUs: 3
Prerequisites: Some exposure to basic undergraduate computer architecture, organisation or design
Semester 1
This subject addresses advanced issues in the design and evaluation of computer architectures for embedded systems, with a particular emphasis on architectures for exploiting instruction level parallelism (ILP) to achieve greater performance. Topics include, instruction scheduling, pipelining, superscalar, the issues of branching and performance enhancement, VLIW and EPIC architectures, basic optimizing compilers, compiler optimizations for ILP enhancement, high-performance cache and memory systems. A hands-on laboratory programme involves the design, testing and modification of a simple stack-based soft core processor for FPGA.
ES6192 Special Topics - Embedded Operating Systems
AUs: 3
Prerequisites: Appreciation for C coding
Semester 2
This course examines fundamental methodologies in designing, coding, testing and evaluating embedded operating systems, in particular the current most popular operating system: embedded Linux. Students will learn concepts in developing embedded systems applications, and extend this with the design and implementation of Linux device drivers. Other relevant customizations of the Linux operating-system software will be taught, alongside relevant topics in driver development. The course will involve hands-on programming and modification of an embedded device running Linux. Overall, students will learn the fundamentals of this poplar embedded OS, and be able to get up-and-running quickly in developing embedded Linux projects.
ES6194 Computer-Aided VLSI System Design
AUs: 3
Prerequisites: Familiarity with combinational and sequential logic, state machines, C/C++ programming. Some knowledge of VHDL/Verilog is desirable, though not mandatory (a brief tutorial on VHDL will be provided).
Semester 2
This course aims to provide a solid understanding of the design process for VLSI / embedded systems hardware. Hardware modeling at different levels of abstraction – architectural level down to physical level are introduced. Various steps involved are covered in detail, as well as the use of graph theory and optimization algorithms in design automation. The course also introduces hardware-software co-design, and modern trends in electronic design automation (EDA).Lecture topics include hardware modeling (hardware description languages, abstract models), high-level synthesis (scheduling, binding, data-path and control unit synthesis), logic synthesis (two-level and multi-level combinational logic optimization, sequential logic optimization), physical synthesis (partitioning, floor planning, placement, routing), hardware/software co-design, and modern trends in computer aided digital systems design.
M6401 Product Design & Development
AUs: 3
Prerequisites: NIL
Semester 1
A multi-disciplinary approach to product design and development. Product development process and strategies. Need identification and product specifications. Generation and evaluation of ideas and concepts. Product architecture. Product aesthetics and form creation. Product semantics and identity.
General Elective Course
Students may take a single general engineering elective course from within the College of Engineering at NTU. It is the students responsibility to ensure that any prerequisites are met and that timetabling issues are resolved. Approval must be obtained from the programme director for these general elective courses.
Recommended Time-Table (Full-Time)
Note: For a full-time candidate, it is possible to register for a maximum of 5 courses in any semester.
| Semester 1 Complete the courses: ES6101 Principles of Embedded Computing Systems, ES6104 Embedded Processors & Peripherals. ES6105 Digital Signal Processing Systems, and One elective Semester 2 Complete the courses: ES6102 Advanced Digital Systems Design, ES6103 Embedded Systems Programming, and Two electives. Full Year Undertake the project and complete the project dissertation. |
Recommended Time-Table (Part-Time)
Note: For a part-time candidate, it is possible to register for a maximum of 3 courses in any semester.
| Year 1 Semester 1 To complete the courses ES6101 Principles of Embedded Computing Systems, and ES6104 Embedded Processors & Peripherals. Semester 2 To complete the courses ES6102 Advanced Digital Systems Design, ES6103 Embedded Systems Programming, and One elective course. | Year 2 Semester 1 To complete the courses ES6105 Digital Signal Processing Systems, and the elective subject ES6129 Directed Reading Full Year Select from the following options (a) To undertake the project and the project dissertation, and to complete the remaining elective or (b) To complete the remaining three electives |
Timetable
Timetable (Academic Year 2012/2013 Semester 2, January to May 2013)
| Course | Day | Time | Venue | Staff |
| ES6102 – Advanced Digital Systems Design | Thursday | 6.30pm – 9.30pm | LT 8 | Douglas Maskell+ / Suhaib Fahmy |
| ES6103 – Embedded Systems Programming | Monday | 6.30pm – 9.30pm | LT 8 | Ramakrishna Kakarala+ / Philip Teng (P/T) |
| ES6126 – Algorithms to Architectures | Wednesday | 6.30pm – 9.30pm | LT 19 | Kyle Rupnow+ / Pramod Kumar Meher (ADJ) |
| ES6192 – Special Topic - Embedded Operating Systems | Tuesday | 6.30pm – 9.30pm | TCT-LT | Nicholas Vun+ / Anton Aendenroomer (P/T) |
| ES6194 – Computer Aided VLSI System Design | Wednesday | 6.30pm – 9.30pm | LT 10 | Rajesh Panicker |
+ Course Co-ordinator
CONTACT INFORMATION
- For further information on admission requirements, class timetable and programme curriculum, please contact the Programme's Office at :
Programme Director M.Sc. (Embedded Systems)
School of Computer Engineering, NTU
E-mail: pd-msc-es{at}ntu.edu.sg
Tel: 6790 6259
- For enquiries pertaining to application procedures, leave of absence, candidature extension, withdrawal, examination etc., please refer to the Frequently Asked Questions at
http://www.faq-centre.com/home/ntu_gso/ or e-mail to: gradstudies{at}ntu.edu.sg
- SCE Graduate Office
Blk N4, #02C-120
Nanyang Avenue
Singapore 639798