TEACHING
FAQ on Embedded Systems Curriculum at CMU
Find answers to commonly asked
questions about 18-348, 18-349 and 18-549.
Please email me if your question is not listed here, and
should be.
18-848d: Sports
Technology (senior- and graduate-level)
Offered: Fall 2009.
This special topics course
comprises a semester-long project experience geared towards the
development of skills to design realistic and practical
embedded/mobile systems and applications that enhance various aspects
of the training, coaching, playing and scouting of different sports,
including football, hockey, baseball, soccer, etc. The lecture
content will cover background material intended to complement the
project work, and will also leverage lessons learned from other sports
technology, the physics of sports and real-world lessons and guest
lectures from experts in the field.
18-349: Embedded Real-Time Systems (junior-level)
Offered: Fall 2008, Fall 2007, Fall 2005, Fall 2003, Fall 2002
Not offered: Fall 2009.
This practical, hands-on course introduces the various building blocks and underlying scientific
and engineering principles behind embedded real-time systems. The course covers the integrated
hardware and software aspects of embedded processor architectures, along with advanced topics
such as real-time, resource/device and memory management. Students can expect to learn
how to program with the embedded architecture that is ubiquitous in cell-phones, portable gaming
devices, robots, PDAs, etc. Students will then go on to learn and apply real-time principles that are
used to drive critical embedded systems like automobiles, avionics, medical equipment, the Mars rover, etc.
Topics covered include embedded architectures (building up to modern 16/32/64-bit embedded
processors); interaction with devices (buses, memory architectures, memory management, device drivers);
concurrency (software and hardware interrupts, timers); real-time principles (multi-tasking, scheduling,
synchronization); implementation trade-offs, profiling and code optimization (for performance and
memory); embedded software (exception handling, loading, mode-switching, programming embedded
systems). Through a series of laboratory exercises with state-of-the-art embedded processors and
industry-strength development tools, students will acquire skills in the design/implementation/debugging
of core embedded real-time functionality.
18-549: Design of Embedded Systems
(senior-level capstone)
Offered: Spring 2009, Spring 2008, Spring 2007
This capstone course comprises a semester-long project experience
geared towards the development of skills to design realistic and
practical embedded systems and applications. Students will work in
teams on an innovative project that will involve the hands-on design,
configuration, engineering, implementation and testing of a prototype
of an embedded system of their choice. Students will be expected to
leverage proficiency and background gained from other courses,
particularly with regard to embedded real-time principles and embedded
programming. The project will utilize a synergistic mixture of skills
in system architecture, modular system design, software engineering,
subsystem integration, debugging and testing. From inception to
demonstration of the prototype, the course will follow industrial
project practices, such as version control, design requirements,
design reviews and quality assurance plans. The initial lecture
content will cover background material intended to complement the
project work. The remainder of the course will consist of regular team
presentations of key project milestones, current project status, a
final project presentation and functional demonstrations of various
subsystems, even as the entire prototype is being developed.
18-749: Fault-Tolerant Distributed
Systems (graduate-level)
Offered: Spring 2006, Spring 2005, Spring 2004, Spring 2003, Spring 2002
Not offered any more.
The course provides an in-depth and hands-on overview of designing and
developing fault-tolerant distributed systems. The course covers both
the fundamental and advanced concepts of dependability, including
replication, atomic multicast, group communication, consistency,
checkpointing, transaction processing and fault injection, along with
industrial standards and real-world practices for achieving high
availability and fault-tolerance. Additional topics include the
practical trade-offs and inter-relationships between fault-tolerance
and other properties, such as real-time and performance. The lecture
concepts are complemented through a semester-long hands-on project
that involves the design, implementation and empirical evaluation of a
distributed fault-tolerant, high-performance distributed system. To
introduce students to the state-of-the-art technologies, the project
emphasizes the use of object-oriented middleware, such as CORBA and
EJB.
|