Teaching

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                                               Course Web PageCloud_Computing_Seminar_Fall_2009.htmlshapeimage_2_link_0
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                                            Course Web Pagehttp://l4ka.org/projects/pistachio/Advanced_OS.htmlshapeimage_3_link_0shapeimage_3_link_1

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

Course Web Page

CAS CS 210 : Computer Systems Fall 2011
Fundamental concepts of computer systems and systems programming. Hardware fundamentals including digital logic, memory systems, processor design, buses, I/O subsystems, data representations, computer arithmetic, and instruction-set architecture. Software concepts including assembly language programming, operating systems, assemblers, linkers, and systems programming in C. Prerequisite: CAS CS 111
Counts as a CS Background Course for the concentration. 4 cr. 
Time : Tuesdays and Thursdays 2:00-3:30 Loc: GCB 207                                             Course Web Pagehttp://www.cs.bu.edu/~jappavoo/webpages/cs210.htmlshapeimage_5_link_0