As the computational environment in the "real world" becomes increasingly distributed with the advent of the National Information Infrastructure, this area has to become a part of the undergraduate computer science curriculum. There is a need to have laboratory facilities to support teaching in this area. This project will establish a dedicated laboratory for distributed computing instruction, consisting of one server and twelve workstations connected via a high-speed ATM switch. The proposed system mimics the environment that the students are likely to encounter in their workplaces in a few years. In addition to the existing three undergraduate courses in this area (Networking I, Operating Systems I, and Science and Engineering of the Web), a new course (Introduction to Distributed Systems) will be introduced in the regular curriculum. The courses in this area cover most aspects of distributed systems, from low-level network protocol and programming (often at the packet level) to system programming at the operating system level to the application level for web-based distributed computing. The facility will enable a laboratory-oriented approach to teaching the theory and practice of distributed computing and algorithm development. Unlike the existing general-use computing facilities provided by Campus Computing and Engineering Computing Network, our proposed facility will provide students system-level access to the equipment. This will enable them to do experiments that are not possible with general-purpose computing facilities, and allow instructors to create model syllabi that will be made available to other institutions.