Department of Computer Science


Courses

Computer Systems

Computer Systems Design G22.2233 Prerequisite or corequisite: G22.1170. 3 points.

Intended to give students whose main interest is in software an introduction to hardware and the logical design of digital computers. Topics include design of basic logic modules and arithmetic units; fixed and microprogrammable control structures; computer architecture; memory organization and input-output organization.

VLSI Design G22.2235 Prerequisite: G22.2233. 3 points.

A detailed study of selected topics in the design of very large scale integrated (VLSI) circuits. Topics include basic logic design and circuit concepts for CMOS; clocking strategies and high performance design; arithmetic unit, memory and processor design using VLSI; logic design automation systems and algorithms. A large project (possibly including multistudent teams) is required.

High Performance Computer Architecture G22.2243 Prerequisite: G22.2233. 3 points.

Measures of architecture quality. Memory system techniques: cache-memory design techniques, models of program behavior, cache and virtual memory structures. Pipeline computers, vector processors, and array processors. Multiprocessors, synchronization, cache coherence. Parallelization techniques, efficient parallel software.

Unix Tools G22.2245 3 points.

A brief history of the Unix operating system: basic utilities (mail, editors); shells; windowing systems; shell programming using Unix tools (awk, set, grep, tar); networking tools; news readers; etiquette and Internet databases and facilities; C programming tools; Unix-based systems programming; desktop publishing tools; visualization systems; symbolic algebra tools; and system administration.

Design of Operating Systems G22.2250 Prerequisite: G22.1170. 3 points.

O.S. facilities (linkers and loaders) interfacing asynchronous processes: I/O; buffering, interrupts; general parallel processes using fork and join; critical selections, P and V for mutual exclusion; implementation of P and V in software and with hardware assist. Other coordination primitives. Segmentation and paging; virtual memory; storage allocation and sharing. Requires several modest size programming exercises.

Advanced Operating Systems G22.2251 Prerequisite: G22.2250. 3 points.

The process model; defining and using resources; scheduling; capabilities; deadlock detection, recovery, and avoidance; file systems; examples of operating systems (Unix et al.); monitors and managers. A large programming project (possibly using student teams) may be required.

Data Communications and Networks G22.2262 Prerequisite: G22.2250. 3 points.

Study of the software tools used by computers to converse with each other and with the real world. Communications systems and media (including people), bandwidth limitations, channel sharing and grouping, data formatting, error detection and correction, protocols, networks, I/O driver design, operating system interfaces, and human interfaces.

Advanced Data Communications and Networks G22.2263 Prerequisite: G22.2262. 3 points.

The tools and techniques for computer to computer networking. Topics: network topology, traffic management, local networks, typical network designs (e.g., CCITT, x.25, ARPANET, DECNET, SNA, ETHERNET), satellite systems datagrams and virtual circuits, database and file transfer subsystems, security, hardware and software constraints.

Computer Graphics G22.2270 Prerequisite: G22.1170. 3 points.

Problems and objectives of computer graphics. Vector, curve, and character generation. Interactive display devices. Construction of hierarchical image list. Graphic data structures and graphics languages. Hidden-line problems; windowing, shading, and perspective projection. Curved surface generation display.

Advanced Computer Graphics G22.2274 Prerequisites: G22.2270 or equivalent, and knowledge of C. 3 points.

Topics of current research interest, including (but not limited to) new approaches to display interfaces, animation techniques, procedural textures, and the use of wavelets in image synthesis. Each student is responsible for one large individual project that is presented to the class near the end of the term. There is opportunity to collaborate with students and faculty from the Tisch School of the Arts.

User Interfaces G22.2280 Prerequisite: proficiency in C programming. 3 points.

Review of some of the basic principles and history of user interfaces. Building an interactive window system from the ground up, starting with a generic portable graphics base. Examination of future and emerging (nontraditional) user interfaces, including virtual reality and immersive environments.

Database Systems G22.2433 Prerequisite: G22.1170. 3 points.

Database system architecture. Data models. Logical database design and introduction to dependency theory. The relational, network, and hierarchical approaches to data management. Issues of security, reliability, and contention in database systems. Introduction to dependency theory. Engineering aspects of database systems.

Advanced Database Systems G22.2434 Prerequisite: G22.2433. 3 points.

The study of the internals of database systems as an introduction to research and as a basis for rational performance tuning. Topics: concurrency control, fault tolerance, operating system interactions, query processing, and principles of tuning.

Software Engineering G22.2440 Prerequisites: G22.2110, G22.2130, and G22.2250.

Presents modern software engineering techniques. Examines the software life cycle, including software specification, design, implementation, testing, and maintenance. Involves student team projects and presentations.


gsas.webmaster@nyu.edu / Courses / Computer Science / GSAS / NYU -- last modified 24 September 1996