Priya Narasimhan

Priya Narasimhan
Associate Professor


   Home/Contact
   Brief Biography
   Research
   Teaching
   Publications
   Professional Service
   Honors/Awards
   Tech Writing




Teaching




COURSES

  • 18-349: Embedded Real-Time Systems -- please look at this link for an FAQ that answers questions about the topics covered in 18-348, 18-349 and 18-549
    (previously taught by me in Fall 2005, Fall 2003, Fall 2002)
    I will NOT be offering this course in Fall 2006, but will return to offering it from Fall 2007 onwards.

    • 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.
      Prerequisites: 18-240, 15-213

  • 18-549: Design of Embedded Systems
    This will be a revised version of the 18-549 course that I will be offering, starting 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.
      Prerequisites: 18-348 OR 18-349

  • 18-749: Fault-Tolerant Distributed Systems -- Spring 2006
    (previously taught by me in Spring 2005, Spring 2004, Spring 2003, Spring 2002)
    This course will not be offered after Spring 2006.

    • 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.


TUTORIALS



Send your comments and questions to Priya Narasimhan