Fall 2003

CIS 621 Real-Time Programming Fundamentals
Relationship between C/C++ constructs and corresponding assembly code generated by compilers. Introduction to special techniques used to implement microcontrollers, such as initialization of programmable CPU modules/peripheral devices, techniques to link assembly and C/C++ codes, producing ROM-able code, and EPROM burning/Flash programming.

CIS 622 Real-Time Operating Systems
Basic real-time operating systems concepts and services; interrupt processing; process and thread models; real-time software architectures and development environments. Detailed study of design and implementation of real-time applications using real-time operating systems

EECE 633 Real-Time Embedded Systems

CIS 720 Advanced Operating Systems
Process synchronization and communication, distributed programming primitives, transactions and concurrency control, distributed scheduling, distributed storage, deadlock, security.
Basic concepts of concurrent and distributed programming; parallel computing architectures; real-time programming; parallel simulation; fault-tolerant programming; partitioning, mapping, and granularity of parallel programming such as communication systems; grid, N-body simulation, and matrix problems; and embedded systems control.

CIS 775 Analysis of Algorithms
Study and application of techniques and procedures used in the analysis of algorithms including the worst and average cases of both time and space. Study of the P and NP classes.

Spring 2004

CIS 721 Real-Time Systems
The design of hard real-time embedded systems, including language and operating system support, scheduling, schedulability analysis, fault tolerance, and design tools.

CIS 722 Operating System Practices
Structure and functions of modern operating systems. Emphasis on reading and modifying the source code of a working operating system. This includes memory management, input/output, process management, file systems, and network interconnection software construction.

CIS 726 Advanced Www Technology
An advanced course on the technologies that make up the World Wide Web. WWW site designs and analysis, WWW software architecture, server-side technologies, dynamic executable scheduling, digital libraries, WWW security.

Fall 2004

CIS 825 Distributed Systems
Models of distributed computation, events and global states, failure semantics, communication abstractions, synchronization in distributed programs; distributed algorithms: election, termination and deadlock detection, broadcast programming and algorithms.

CIS 740 Advanced Software Engineering
Software life cycle, equirements, specifications, design, validation, measures, and maintenance.

CIS 690 Implementation Project

Spring 2005

CIS 771 Software Specification
Formal logic or specification of software components; algebraic vs. model-based specifications; common abstract types; verification of properties of specifications; introduction to specification of concurrent systems.