Environ/Natural Res Econ

Students in this course will explore society’s use of the natural environment as a component of production and consumption. The allocation of exhaustible and renewable resources and the protection of environmental quality from an economic standpoint will be examined. Public policy avenues for controlling natural resource management and the environment will also be explored. Case studies include air pollution and acid rain, depletion of the ozone layer and the greenhouse effect, the solid waste crisis, and deforestation, among others.

Computer Systems II

This course will examine the principles and design choices involved in creating the software and hardware systems on which ordinary computer programs rely. It will develop advanced topics in computer processor architecture, cover the design of operating systems and runtime systems, and provide an introduction to programming language compilers. Architectural topics will include pipelines, out-of-order execution, symmetric multithreading, and multi-core cache management.

Databases

Databases underlie many of the applications with which we interact on a daily basis. They form the foundation behind many websites, telecommunications systems, banking systems, and any applications that need to maintain persistent data. This course will explore the design of modern databases for storing structured data. We will discuss the relational data model and relational algebra.

Program Lang Paradigms

The main purpose of a programming language is to provide a natural way to express algorithms and computational structures. The meaning of “natural” here is controversial and has produced several distinct language paradigms; furthermore the languages themselves have shaped our understanding of the nature of computation and of human thought processes. We will explore some of these paradigms and discuss the major ideas underlying language design. Several languages will be introduced to illustrate ideas developed in the course.

Data Struct & Algorithms I

This course is the first part of a two-semester sequence examining data structures (ways of organizing data so that it can be used effectively) and algorithms (the methods that can be used to manipulate data). The use of appropriate data structures and algorithms can often dramatically reduce the computational work needed to solve a problem. Topics examined in this course will include proof techniques, run-time analysis, heaps, hash tables, sorting, searching, and divide-and-conquer algorithms.

Subscribe to