Graduate Special Topics in Computer Science

NOTE: for descriptions of standard graduate computer science courses, see Graduate Course Descriptions.

G22.2945.01 Topics in Numerical Analysis: Finite Elements Method

This course is offered by the Mathematics Department and cross-listed in the Computer Science Department. Please register for it under its CS course number (G22.2945.01) if you are a CS student. For a description, see the Mathematics Department course descriptions homepage, where this course is listed as G63.2011.01

G22.2945.02 Topics in Numerical Analysis: Advanced Scientific Computing

This course is offered by the Mathematics Department and cross-listed in the Computer Science Department. Please register for it under its CS course number (G22.2945.02) if you are a CS student. For a description, see the Mathematics Department course descriptions homepage, where this course is listed as G63.2011.02

G22.3033.01 Introduction to Multimedia

Prerequisites: G22.2110 (Programming Languages)

This course surveys the new technology of multimedia computing.

Topics to be covered include authoring and automation systems, graphics facilities, use of video and audio, hypertext systems, techniques for automatic processing of text, issues in system design.

G22.3033.02 Programming for the WWW

Prerequisite: good programming skills, especially in C or C++.

A comprehensive introduction to the Java programming language. In addition to the language itself, topics include: introduction to object-oriented concepts, networking, concurrent programming with threads.

G22.3033.03 Adaptive Computer Systems

Prerequisites: Courses in OS, compilers, architecture (preferably at the graduate level).

The increasing diversity of computing and networking environments ranging from powerful desktop processors connected with gigabit ethernet to relatively weak PDAs connected with ad hoc wireless networks combined with the desire to run similar applications on all of these platforms motivates a change in the structure of different layers--hardware, operating systems, and applications. The different system layers must "adapt" to the run-time environment, altering their functionality to improve overall performance.

The focus of the course will be on both hardware and software approaches for adaptation (such as reconfigurability, extensible operating systems, etc.), as well as techniques for exploiting application information to facilitate such adaptation. More emphasis will be given to software, user-level adaptation techniques.

The course will be taught from a collection of research papers and is targeted mainly towards PhD students with research interests in computer architecture, compilers, operating systems, and programming languages. There will not be any exams in the class, but students will be expected to present papers and do an extensive project (in groups).

G22.3033.05 Advanced Multimedia

Prerequisites: Real facility with C or C++ or Java

The course will involve joint projects on topics relted to advanced multimedia, graphics and computer/human interfaces. For more detailed information, see Ken Perlin's homepage

G22.3033.06 Architectures of Instruction Level Parallel Processors

The ever-increasing performance of computer systems today comes from innovation in the areas of VLSI technology, advances in computer architecture as well as in optimizing compiler technology. Moreover, the continuing growth in performance over the next decade is projected to be increasingly dependent on the latter two technologies---architectures and their optimizing compilers---and their interaction. Thus, to keep pace with Moore's law, hardware architectures and optimizing compilers are being designed much more synergestically than ever before. A credible example of this synergy is evident in the Explicitly Parallel Instruction Computing (EPIC) paradigm, with the first products embodying EPIC due out in the year 2000. This course is focussed on elucidating these innovations in computer architecture centered around EPIC, with conventional RISC style architectural concerns serving as a backdrop. The course is self-contained, and compiler optimization preliminaries will be taught as needed. The course also consists of a significant laboratory component based on the Trimaran system (www.trimaran.org). Some coverage of emerging or future architectures targeted at specific domains such as signal-processing, embedded systems, 3-D graphics and others is anticipated. There will be case studies of commerical processors to illustrate the principles discussed.

G22.3033.07 Digital Documents

Course requirements:Three programming projects.

Course topics: document retrieval and indexing (text), information retrieval, multimedia retrieval web search engines, evaluating retrieval engines, markup languages and annotated documents, natural language processing, knowledge representation and knowledge bases.

G22.3033.08 Algorithms in Real Algebraic Geometry

This course is offered by the Mathematics Department and cross-listed in the Computer Science Department. Please register for it under its CS course number (G22.3033.08) if you are a CS student. For a description, see the Mathematics Department course descriptions homepage, where this course is listed as G63.2163.

note: this course is cross-listed in the Computer Science Department. Please register for it under the number G22.3033.08 if you are a CS student.

G22.3033.09 Verification of Reactive Systems

Prerequisites: G22.2340 Elements of Discrete Mathematics, G22.2110 Programming Languages, G22.2350 Theory of Computation

Reactive systems are systems (and programs) whose role is to maintain an ongoing interaction with their environment, rather than compute a final result upon termination. Examples of such systems are programs controlling physical plants such as a nuclear reactor, or flying unstable aircraft, as well as network routers and real-time schedulers.

In the course we will present methods for verifying with mathematical certainty that reactive systems comply with their behavior specification as described by the specification language of temporal

Formal verification is gradually occupying its rightful place in industry as an approach successfully competing and complementary to simulation and testing. This course will describe the achievement of the discipline as well as outline the major open problems in the area.

The methods to be presented, will include enumerative methods which systematically explore all possible trajectories in the behavior of systems (technically referred to as "model checkers").

An alternative approach is that of deductive verification, in which the correctness of a system is proven as a mathematical theorem.

Both approaches will be illustrated by examples taken from hardware and software design whose verification will be carried out on state-of-the-art support tools, such as the SMV symbolic model checker and the Step temporal prover developed in Stanford.


top | contact webmaster@cs.nyu.edu