| Resources All Students Should Visit |
|
Margo's 101 Pet Peeves on Writing
|
|
| Current Courses |
|
CS265 Database Systems
A research-oriented introduction to database management systems.
The first third covers database design, implementation, and use.
Topics include: network, relational, and object-oriented database
models, system architectures, transaction processing, system
implementation, and SQL. The remaining two-thirds address research
literature surrounding database systems, including an historical
perspective, the emergence of relational and object-oriented systems,
concurrency control, and distributed systems. Students are required
to undertake a final project.
CODASYL paper (for Thursday)
Relational Paper (for Thursday)
|
|
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 2007: 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 2008: 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.
|