Jonathan Appavoo Past Teaching
Home

CAS CS 210: Computer Systems
CAS CS 451/651:Distributed Systems


CAS CS 591 : Special Topics : Cloud Computing Seminar Fall 2009

This is an interactive seminar course exploring Cloud Computing, including its definition, history, and realization from a computer science perspective. We will focus on systems related topics, including production and transmission of computational capacity, physical and virtual consolidation, centralized and distributed ownership, costs, metering, usage models, impact on software development, and efficiency. We will also touch upon the technical aspects of the attendant socioeconomic issues, raised by Cloud Computing, that were identified by the early computer scientists who pioneered these ideas. The course will require the reading, review and critique of literature from various sources, predominately drawn from systems related research literature. Projects and Presentations will give students the opportunity to explore one or more of the topics discussed in class in a hands-on fashion.
Prerequisites: The course is open to advanced undergraduates and graduate students who are comfortable reading academic literature. Students should have taken 350, 330 (or equivalents) and be comfortable with operating system and networking topics. Exceptions will be made at the discretion of the instructor.
WARNING: Implementation based projects may require considerable “on the job training” and affinity for hacking.
Time : Fridays 10:00am -1:00pm Location : MCS 137

CAS CS 553 : Advanced Operating Systems Spring 2010
During this hands-on course small teams of 2-3 students will design and build their own little multi-server operating systems on top of the L4Ka::Pistachio microkernel. The goal is to gain practical experience in applying the theory of operating systems to the design and implementation of a consistent and functioning set of operating system services that manage and abstract the hardware resources and provide a base system on which a robust user environment can be developed. The lectures focus on different "building blocks" of operating systems such as: communication, multi-tasking/-processing, virtual memory management, and file services. Examples and case-studies found in contemporary operating systems are included. A major component of the course is the class project. The project gives the students the opportunity to design (and later implement in teams), their own little multi-sever operating system on top of the L4Ka::Pistachio microkernel. After the build environment, tools, and example code is presented, we focus on incorporating the building blocks from the lectures into our to-be-designed OS. Each student (or team, depending on enrollment) will present their own design ideas for one particular aspect. Expect several hours of work per week in order to produce a functioning implementation of the OS by the end of the course. There is no required text for the course.
Prerequisites: A good understanding of OS concepts from CS 552 Operating Systems or equivalent. During the course you will be required to read and write C or C++ code. Basic programming skills in C will do; C++ is fine, however, the programming and debugging load will be high.
Time : Tuesdays and Thursdays 3:30-5:00 Loc: GCB 208

CAS CS 451/651 : Distributed Systems Spring 2012
Distributed Systems is a fast-paced, broad and practical introduction to the fundamentals of distributed systems. The course first examines foudational topics such as: System Models, Networking, Interprocess Communications, Remote Invocation, Indirect Communications, and Operating Systems Support. After covering the foundations a selection of topics will be covered from: Distributed algorithms, Shared data,Middleware, System services. A major goal of the course is to provide practical exposure to distributed systems through a term long programming project in which small groups of students construct a distributed game using 'C'. The project requires significant programming effort.
Prerequisites: CS112 and CS210
WARNING: Programming assignments and projects may require considerable "on the job training" and affinity for hacking.
Time : Tue,Thu 2:00-3:30 Location : MCS B33