MIME-Version: 1.0 Server: CERN/3.0 Date: Wednesday, 20-Nov-96 20:11:07 GMT Content-Type: text/html Content-Length: 10731 Last-Modified: Tuesday, 04-Jun-96 20:17:25 GMT Cornell CS Course Home Pages Spring 1996

Course Home Pages


These are links to the home pages for a number of CS courses. In many cases there are class notes, problem sets, and other course information available, although they may only be available to registered members of the course.

CS100 Introduction to Computer Programming

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.

CS211 Computers and Programming

Intermediate programming in a high-level language and introduction to computer science. Topics include program development, proofs of program correctness, program structure, recursion, abstract data types, object- oriented programming, data structures, and analysis of algorithms. C++ is the principal programming language.

CS212 Structure and Interpretation of Computer Programs

A challenging introduction to programming languages and computer science. Topics include recursive and higher-order procedures, performance analysis of algorithms, proofs of program correctness, probabilistic algorithms, symbolic hierarchical data, abstract data types, polymorphic functions, object-oriented programming, infinite data types, simulation, and the interpretation and compilation of programs.

CS222 Introduction to Scientific Computation

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. Special lectures on parallel computation and high-performance Fortran.

CS314 Introduction to Digital Systems and Computer Organization

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.

CS410 Data Structures

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.

CS417 Computer Graphics and Visualization

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.

CS418 Practicum in Computer Graphics

Programming assignments dealing with interactive computer graphics and visualization of scientific data.

CS432 Introduction to Database Systems

This three credit course covers the fundamentals of database systems and information retrieval. The database part of the course deals with traditional structured data. The relational model is the main model used in this part. The information retrieval part of this course concentrates on how to manipulate textual information which is largely unstructured.

CS482 Introduction to Analysis of Algorithms

Techniques used in the creation and analysis of algorithms. Combinatorial algorithms, computational complexity, NP-completeness, and intractable problems.

CS512 Advanced Language Implementation

This class will survey modern techniques for efficient implementation of advanced programming languages, such as SML, Java, Haskell, Scheme, and Modula-3.

CS514 Practical in Distributed Systems

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.

CS515 Practicum in Distributed Systems


If you were using a Java enabled browser, you would have seen some animated text scrolling by here.

The practical aspects of distributed systems are studied through the design and implementation of a significant system.

Projects are available in the area of distributed agents, network and resource management, fundamental network protocol research, hot new network protocols, real-time communication, distributed virtual reality, Java & distribution, Java applications, CSCW, distributed simulations, distributed data management and distributed multiplayer games.

CS516 High-Performance Computer Systems


If you were using a Java enabled browser, you would have seen some more animated text scrolling by here.

This course discusses the design of high-performance processors, including techniques such as superscalar, superpipeled, RISC processors, 64-bit instruction set extensions, cache coherency, co-processors, and more... The CS516 Web page contains all lecture notes, problems sets, and readings available electronically. As the term progresses, all course projects will be described there too.

CS612 Software Design for High-Performance Architectures

Sophisticated software technology is required to exploit the enormous computing power of modern high performance architectures like pipelined, VLIW, superscalar and parallel architectures. The objective of this course is to study these architectures, and master the compiler and runtime systems technology required to deliver high performance to the applications programmer. We emphasize technology relevant to computational science applications, such as dense and sparse matrix techniques, and iterative and direct solvers, using these as examples throughout the course.

CS664 Machine Vision

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.

CS674 Natural Language Understanding

This course is an introduction to natural language understanding, a subfield of artificial intelligence whose primary concern is the computational study of language use. The course covers all aspects of natural language processing including: semantic interpretation, syntactic analysis, discourse processing, text summarization, natural language generation, language acquisition, knowledge acquisition, memory models, and statistical methods of ambiguity resolution.

CS775 Seminar in Natural Language Understanding

Covers current topics in natural language understanding, computational linguistics, and relevant areas of machine learning. Meets once a week for 1-2 hours to present and discuss recent papers in the field as well as ongoing natural language understanding research in the department.

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.
Fall 1994
Spring 1995
Summer 1995
Fall 1995