Research Publications Courses Software Schedule
Resources All Students Should Visit
Margo's 101 Pet Peeves on Writing
Margo's Tips on Writing a Thesis
Engineering Maxims

Current Courses
FALL 2013: CS261 -- Graduate Operating Systems This course offers a quantitative approach to operating system design and evaluation. We discuss historic and current research including extensible operating system architectures, distributed systems, and performance analysis. The goal of the course is to provide students both a firm background in operating systems research as well as an introduction ot the techniques and methodology required to conduct systems' research.
SPRING 2014: CS161 -- Operating Systems This course covers the fundamental concepts of operating system design and implementation. Lectures present the central ideas and concepts and explain how they are manifested in real operating systems. The programming assignments provide an opportunity for students to gain experience designing and implementing parts of an actual operating system, called OS/161. This year we will assume that students have already taken CS61. This means that the workload should be somewhat lighter and more focused on core operating systems issues, because we believe students understand aspects of concurrency, synchronization, and systems programming. That said, operating systems are complex, asynchronous systems and, as such, introduce a class of bugs that most students will never have encountered before. Implementing an operating system is challenging and time-consuming, but it is also immensely rewarding, fun, and useful. If you have not taken CS61 but are interested in CS161, please come see me!

Other Courses I Sometimes Teach
FALL 2014: CS265 -- Database Systems A research-oriented introduction to database management systems. This course serves the dual purpose of introducing students to the past and present practice of database research and teaching students how to conduct reseach in a systems area. The course has a heavy reading load; pratically all class periods are devoted to a discussion of the paper, focusing both on content and research methodology. Students complete a final research product, many of which ultimately become publications.
SPRING 2014: CS165 -- Introduction to Information Management This course covers the fundamental concepts of database and information management. We will cover data models: relational, object-oriented, and other; implementation techniques of database management systems, such as indexing structures, concurrency control, recovery, and query processing; management of unstructured data; terabyte-scale databases.
CS50 Introduction to Computer Science I Introduction to the intellectual enterprises of computer science. Algorithms: their design, specification, and analysis. Software development: problem decomposition, abstraction, data structures, implementation, debugging, testing. Architecture of computers: low-level data representation and instruction processing. Computer systems: programming languages, compilers, operating systems. Computers in the real world: networks, security and cryptography, artifical intelligence, social issues. Laboratory exercises include extensive programming in the C language.
CS51 Introduction to Computer Science II This course introduces students to functional and object-oriented programming. We present abstract models for computational processes and their concrete realizations. The courses uses the Scheme and C++ languages.

Copyright © 2009 Margo I. Seltzer All rights reserved.