Course Home Pages - Spring 1997
These are links to the home pages for a number of CS courses for
Spring 1997.
In many cases there are class notes, problem sets, and other course
information available, although they may be available only to registered
members of the course.
Course Home Pages for some courses taught during previous semesters
can be found using the links at the bottom of this page.
-
-
An introduction to elementary computer programming concepts. Emphasis
is on techniques of problem analysis and the development of algorithms
and programs. The subject of the course is programming, not a
particular programming language. The principal programming language is
C. The course does not presume previous programming experience.
Programming assignments are tested and run on interactive, stand-alone
microcomputers.
Standard version of COM S 100. No college-level mathematics is assumed.
-
-
Interactive on-line media such as the World Wide Web are revolutionizing the way we communicate. This course introduces students with
little or no computer background to tools and techniques for creating interactive documents. Topics covered will include HTML authoring,
scripting languages, interaction techniques, data mining, and incorporating sound, video, and images in documents.
-
-
Intermediate programming in a high-level language and introduction to
computer science. Topics include program structure and organization,
modules (classes), program development, proofs of program correctness,
recursion, data structures and types (lists, stacks, queues, trees),
object-oriented and functional programming, and analysis of
algorithms. C++ is the principal programming language.
-
-
An introduction to programming languages and computer science. Topics covered
include functional programming (including recursive and higher-order
functions), object-oriented programming, analysis and understanding of
algorithms, and correctness of programs. Several substantial sized
programming projects are done using Dylan, a dynamic object-oriented
programming language. The aim of the course is to expose students to a wide
range of interesting and challenging concepts in computing, using programming
as a tool.
-
-
An introduction to elementary numerical analysis and scientific
computation. Topics include interpolation, quadrature, linear and nonlinear
equation solving, least-squares fitting, and ordinary differential
equations. The Matlab computing environment is used. Vectorization,
efficiency, reliability, and stability are stressed.
-
-
Covers mathematical aspects of programming and computing. Topics
will be chosen from the following: mathematical induction; logical
proof; propositional and predicate calculus; combinatorics and
discrete mathematics covering manipulation of sums, recurrence
relations, and generating-function techniques; basic number theory;
sets, functions, and relations; partially ordered sets; graphs.
-
-
Web course material includes course info, lecture notes, homeworks,
project info, and hopefully even lecture videos.
Topics covered in the course include: representation of
information; machine/assembly languages, in particular PowerPC;
processor organization; interrupts and I/O; memory hierarchies;
combinatorial and sequential circuits; data path and control
unit design; RTL; and microprogramming.
-
-
Lists, trees, graphs, arrays, and other forms of data structure and
their implementation. Relationship between language and data
structure, emphasizing abstract data types. Dynamic storage allocation
and memory management. Detailed study of searching and sorting
methods. Analysis to determine the more efficient algorithm in a given
situation.
-
-
Overview of the internal structure of modern compilers, with emphasis
on implementation techniques. Topics covered include lexical
scanning, simple parsing techniques, symbol-table manipulation,
type-checking routines, code generation, and simple optimizations.
The course entails a compiler implementation project.
-
-
An introduction to the principles of interactive computer graphics
and scientific visualization. Topics include surface modeling, animation,
perspective transformations, hidden-line and hidden-surface
algorithms, lighting models, image synthesis, and application to scientific
data analysis.
-
-
Programming assignments dealing with interactive computer graphics and
visualization of scientific data.
-
-
The objective is to expose students to
some of the exciting and important software tools of computational science
today with plenty of historical and scientific context. Problem-solving
environments, symbolic computing, scientific software libraries, scientific
visualization, parallel computing, program transformations, web-based
computing are discussed along with appropriate scientific and mathematical
examples.
-
-
Introduction to modern database management systems. Concepts in
data modeling and query processing. Storage structures and
access methods. Design and analysis of relational
databases. Concurrency control. Object-oriented databases.
-
-
Techniques used in the creation and analysis of algorithms. Combinatorial
algorithms, computational complexity, NP-completeness, and intractable
problems.
-
-
Propositional and predicate logic, compactness and completeness by
tableaux, natural deduction, and resolution. Equational logic.
Herbrand Universes and unification. Rewrite rules and equational
logic, Knuth-Bendix method and the congruence-closure algorithm and
l-calculus reduction strategies. Topics in Prolog, LISP, ML, or
Nuprl. Applications to expert systems and program verification.
-
-
Practical issues in designing and implementing distributed software.
Topics include local and wide-area network protocols, replicated data,
dynamic reconfiguration, monitoring for and reacting to failures or
recoveries, distributed computation, synchronization, and techniques
for expressing coarse-grained parallelism at the application level.
-
-
An advanced course in systems, emphasizing contemporary research in
distributed systems. Topics may include communication
mechanisms, consistency in distributed systems, fault-tolerance,
knowledge and knowledge-based protocols, performance, scheduling,
concurrency control, and authentication and security issues.
-
-
The study of modern practical algorithms for the solution of
continuous optimization problems, with emphasis on large-scale
problems.
-
-
An introduction to computer vision. Topics include: edge detection,
stereopsis, motion and optical flow, and extracting shape from images.
Students will implement several of the algorithms covered in the course, in
addition to a research project.
-
-
Advanced treatment of theory of computation,
computational-complexity theory, and other topics in computing theory.
-
-
Our goal in the seminar is to discuss the
pragmatics of life after you receive a Ph.D. -- both in industrial
research and academia. Faculty and research staff have been
encouraged to attend, so a broad set of perspectives should be
represented.
-
-
Sophisticated program transformations are required to get programs to
run well on modern machines because of the large semantic gap between
high-level languages and machine architectures. The objective of this
course is to study and implement some of these technologies. Our
examples will come from a variety of disciplines including
computational science, functional programming, and program synthesis
from high-level specifications.
-
-
CS717 and CS719 have been merged due to the large overlap between the
topics. See the web page for details.
CS717 started as a seminar for the discussion of advanced papers on
implementing protection domains and security features in general
using the language system (compiler/run-time) instead of the more traditional
hardware facilities used in current operating systems.
CS719 proposes to survey current research in advanced language
implementation including, but not limited to: garbage collection,
type-based compilation, secure binaries, partial evaluation, run-time
code generation, and functional representations for imperative
features (e.g., state, I/O, and concurrency.)
-
-
Covers advanced topics in database systems. A special area
of focus is chosen every semester. The course involves
reading and presenting research papers, and developing a
research project.
Information from previous semesters
Information from previous semesters may be retained for a while,
but don't be surprised if certain links don't work. Course work from
Fall 1994, Spring 1995, Summer 1995, and Fall 1995 have been archived
inside the firewall to clear off space for current Web items.
- Spring 1996
- Summer 1996
- Fall 1996