MIME-Version: 1.0
Server: CERN/3.0
Date: Sunday, 24-Nov-96 22:37:02 GMT
Content-Type: text/html
Content-Length: 9968
Last-Modified: Friday, 13-Sep-96 15:48:57 GMT
Cornell CS Course Home Pages Fall 1996
Course Home Pages - Fall 1996
These are links to the home pages for a number of CS courses for Fall 1996.
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.
-
-
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.
Alternative version of COM S 100, emphasizing examples and
applications involving continuous mathematics, including trigonometry
and calculus.
-
-
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. Java and Gofer are the principal programming languages.
-
-
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.
-
-
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.
-
-
An introduction to the programming languages, tools, and methods used
in modern software development. Programming methodologies: modularity,
data abstraction, object-oriented programming. Programming tools,
software libraries, and interface definition languages. General
techniques will be complemented with programming experience.
-
-
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.
-
-
An introduction to the logical design of systems programs, with
emphasis on multiprogrammed operating systems. Topics include
process synchronization, deadlock, memory management, input-output
methods, information sharing, protection and security, and file
systems. The impact of network and distributed computing
environments on operating systems is also discussed. This is a
fast-paced subject requiring constant attention.
-
-
A challenging introduction to the major subareas and current research
directions in artificial intelligence. Topics
include knowledge representation, search, problem solving,
natural-language processing, vision, robotics, logic and
deduction, planning, and machine learning.
-
-
An introduction to the modern theory of computing: automata theory,
formal languages, and effective computability. A faster-moving
and deeper version of CS381. Credit will not be given for both.
Corrective transfers between CS381 and CS481 are encouraged during
the first few weeks of instruction.
-
-
CS 537 (Advanced Database Systems) is intended to give students a solid
background in the design and development of database management systems
(DBMS's). While a DBMS is in one sense a giant application program, there
are surprisingly many principles behind its development and use. The
database research community is also active, and there are always new
problems to be addressed because of the explosive amounts of data that
people wish to access. This course forms essential background for anyone
who wants to (a) become a systems engineer at a database development company,
or (b) become an informed user of database systems, or (c) become a database
systems researcher, or (d) develop systems in any domain that manipulate
large amounts of data, or (e) find out how a teller machine really works!
A number of "advanced fundamental" DBMS concepts will be covered.
Although this is not intended to be an introductory course, the discussion
of various topics will begin with a quick review of basic material.
In terms of workload, the course involves two exams, a small survey
paper, and a C++ programming project.
See http://www.cs.cornell.edu/Info/People/praveen for more details.
-
-
A study of programming paradigms: functional, imperative, concurrent
and logic programming. Models of programming languages, including the
lambda calculus. Type systems, polymorphism, modules, and other
object-oriented constructs. Program transformations, programming
logic, and applications to programming methodology.
-
-
Hardware and software issues involved in computer manipulation of
audio, video, and images. Topics include media capture,
representation, compression, editing, processing, storage, and
transportation. Special emphasis on the processing of digital video,
including algorithms for special effects and automatic extraction of
content, and applications of parallel architectures to video
processing.
-
-
Methodology for developing efficient algorithms, primarily for graph
theoretic problems. Understanding of the inherent complexity of natural
problems via polynomial-time algorithms, randomized algorithms,
NP-completeness, randomized reducibilities. Additional topics such as
parallel algorithms and efficient data structures.
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
- Spring 1996
- Summer 1996