Courses taught by ACIS Faculty

Dr. José A. B. Fortes

  • EEL 6871 (formerly EEL6935) Software Defined Systems

    Large scale computer and software systems are increasingly complex, diverse and outsourced to computational clouds and other large infrastructures. The cooperative management of these systems by either their owners or their providers can only be done effectively and efficiently if programmatic interfaces are exposed for that purpose. This requires computer systems designers to understand a variety of fundamental modeling concepts and management techniques spanning multiple system layers, for both the systems to be designed and the components and services used to build these systems. This course introduces these models and techniques to students, by way of illustrative cases of software-defined systems deployed in industry and academia for a variety of computer, storage and networking applications. Recent syllabus

  • EEL 6935 Distributed Computing

    This course introduces beginning graduate students and undergraduate senior students to key concepts and techniques underlying the design and engineering of distributed computing systems. Technical topics covered in this course include interprocess communication, remote invocation, distributed naming, distributed file systems, security, distributed clocks, process coordination, concurrency control, replication and fault-tolerance. Types of systems discussed in this course include computational clouds, grid computing, storage systems, peer-to-peer networks and Web services. Recent syllabus

Dr. Renato J Figueiredo

  • EEL 6892 Virtual Computers

    Techniques for virtualization of networked computer systems. Virtual machines (classic VMs, application binary interface VMs, para-virtualization), virtual distributed file systems (file system proxies, call-forwarding), and virtual networks (tunneling, virtual private networks). Recent syllabus

  • EEL4636/5737 (formerly EEL-4930/EEL-5934) Principles of Computer System Design

    Computer systems are at the core of the information technology pervasive in our society. The design of hardware and software in computer systems ranging from personal devices to large-scale distributed, networked computers is an increasingly complex undertaking and requires understanding not only of individual sub-systems, such as the micro-processor, but also the interactions among sub-systems. This class provides a broad introduction to the main principles and abstractions for engineering hardware and software systems, and in-depth studies of their use on computer systems across a variety of designs, be it an operating system, a client/server application, a database server, or a fault-tolerant disk cluster. Recent syllabus