Graduate Special Topics in Computer Science
NOTE: for descriptions
of standard graduate computer science courses, see Graduate Course Descriptions.
G22.2945001 Selected Topics in Numerical Analysis:
Computational Physics, ManyBody Problems
Prerequisites: G22.2112 or G22.2420; undergraduate physics
including quantum mechanics.
This course will cover computational methods for manybody problems in physics and
chemistry. The focus will be on mathematical problem
formulations as well as on numerical issues. Topics will include:
(1) Statistical physics. Monte Carlo approach for finding the lowest
energy state and for evaluating thermodynamic properties of liquids and
solids. Metropolis algorithm. Importance Sampling. Critical slowing
down and methods to overcome it.
(2) Electronic Structure. BornOppenheimer approximation. HartreeFock
method, configuration interaction, density functional approach,
density matrices, variational methods. (3) Particle simulation and molecular
dynamics. Fast Poisson methods. Methods for multiple timescales,
especially CarParrinello.
Recommended texts: Monte Carlo Simulation in Statistical Physics, K. Binder
and D. W. Heermann 3rd ed., Springer Verlag,1997; Modern
Quantum Chemistry, Attila Szabo and Neil S. Ostlund, revised ed.,
Dover, 1996; Understanding Molecular Simulation, Daan Frenkel and Berend
Smit, 2nd Ed., Academic Press, 2001; Computational Physics,
J. M. Thijssen, Cambridge University Press, 1999
G22.3033001 Topics in Combinatorics: The Art of Counting
Sums, recurrences,
number theory, binomial coefficients, generating functions and
the like with particular emphasis on asymptotics such as factorial
and Fibonacci and CS applications such as analysis of quicksort
Required Text: Concrete Mathematics by Graham, Knuth and Patashnik
G22.3033002 Internet & Intranet Protocols & Applications
Prerequisites: Knowledge of networking principles, ability to program in
Java, ability to write large (10s of pages) programs
Internet and Intranet Protocols and Applications studies the world's
most widely used application level network protocols and software systems.
We study protocols, such as HTTP for the Web, and SMTP, POP3, and IMAP
for email. We consider protocol design issues, especially as they
influence functionality, reliability and performance. We carefully read
protocol specifications, such as the HTTP specification, RFC 2616.
We study the systems which use these protocols, clients and servers. We
also study intermediate systems which enhance performance, such as
caching proxies and content delivery services.
We will examine complex functionality and performance issues, such as
timeout management and highperformance concurrent servers.
Programming assignments ask students to write clients and servers to the
sockets interface. Students write several small programming assignments
and one large project. Guest lecturers may present current research and
practice on a subset of the following issues: reliable internet
multicast, the design and implementation of the Apache Web server,
performance issues in WWW servers, and Internet security.
The last quarter of the course may examine research that enhances
internet and Web performance.
G22.3033003 Applied Cryptography and Computer Security
See the detailed description on the
course homepage
G22.3033004 Advanced Topics in Multimedia
See the detailed description on the
course homepage
G22.3033005 Visual Modeling
Prerequisites: G22.2270 and G22.2271 or permission of the instructor.
This course takes a unified approach to computer graphics and computer
vision. Vision (image analysis) and graphics (image synthesis) are
studied formally as mutually converse problems. The course explores
physicsbased models and associated computational methods for tackling
these problems. The emphasis will be on modeling and estimating the
shapes and motions of rigid and deformable objects using mathematical
physics, variational methods, and numerical simulation with
finitedifference, finiteelement, and multiresolution algorithms.
Graphics topics will include the modeling and animation of flexible
objects in simulated physical worlds, force driven interaction, and
constraint satisfaction methods. Vision topics will include
regularization theory, visiblesurface representations, active models,
and multisensory fusion. Finally, the course will investigate advanced
applications of graphics and vision in artificial life, including the
biomimetic modeling of humans and other animals in realistic virtual
worlds.
G22.3033006 Extreme Java
Prerequisites: G22.2110, and G22.2250
This course is designed for programmers already familiar with the Java language and class libraries.
Topics include a broad and in depth coverage of Java platforms, tools (e.g., Java Hotspot,
JPDA, Javadoc, Java Help) and software engineering techniques (e.g., Project Lifecycle,
Environment, Resources, Packaging), Java core technologies and extensions (e.g., JFC, Collections Framework,
Drag and Drop, Swing, JavaBeans, JAF, threads, JNI, JMF), and the application of Java in distributed
enterprise communications (e.g., Java IDL, CORBA, RMI/IIOP, JNDI, Jini, JMS, JTS), enterprise web
and application enabling (e.g., Java Web Start, aglets, connected devices, Web servers, security
via JAAS/JCE/JSSE, XML support, servlets, JSPs, EJBs, EAI/B2Bi), database technologies (e.g., JDBC,
Java Data Objects), and operating systems (e.g., JavaOS, Sun ONE/Web Services,
JXTA). Students will experiment with various Javaenabled toolkits to create Java programs
using Java's core libraries, and more advanced packages. All instruction and development
will be based on the J2SE 1.4.1, J2EE 1.4, and J2ME CLDC/CDC 1.0. Through a set of assignments
and projects, students will implement the various components of a sample webenabled
and Javabased enterprise application.
G22.3033007 Advanced ObjectOriented Techniques
Prerequisites: G22.2110 and
basic familiarity with Java (or another objectoriented language).
The goal of this course is to
familiarize students with several advanced objectoriented techniques that
are currently widely used in industry. After a brief review of objectoriented
terminology (subtyping, dynamic dispatch, inheritance, delegation, etc.),
the following topics will be presented in detail:
 UML diagrams, and how to
use for designing objectoriented programs;
 design patterns: an overview
of design idioms are useful for creating flexible and extensible designs;
 techniques for testing of objectoriented programs;
 performance analysis of objectoriented programs;
 refactoring: techniques for restructuring programs in order to accommodate changed requirements;
Course overview
The objective of the course
is to make students sufficiently proficient with the use of these techniques
so that they can apply them in practice. To achieve this goal, the course
has a substantial practical component, in the form of a series of programming
assignments that are performed in groups.
The following is a very preliminary
outline of the course. Please be aware that the following may be subject
to change.
Overview of course and project.
Review of objectoriented
terminology, concepts, and of objectoriented language constructs in
Java.
Introduction to UML. Overview of the 9
types of diagrams. Use cases, use case diagrams classes, attributes,
operations class diagrams relationships: associations, generalization,
aggregation, and composition.
Relationships (in detail), association,
generalization, multiplicities, navigability, notes, stereotypes, constraints,
interfaces, realization, roles, package diagrams, and object diagrams.
Interaction diagrams, sequence diagrams,
collaboration diagrams, modeling events, signals, and exceptions, activity
diagrams, statechart diagrams, component diagrams, and deployment
diagrams.
Introduction to design patterns. Creational
patterns.
Design patterns continued: Structural
patterns.
Design patterns continued: Behavioral
patterns.
Designing with patterns (guest lecture
by John Vlissides).
Midterm (may be split up into 2 separate
1hour tests).
Testing of objectoriented applications.
Advanced topics: multiple inheritance,
mixins, reflection.
Advanced topics, to be determined.
Performance analysis of objectoriented
applications (guest lecture by Gary Sevitsky).
Analysis of objectoriented programs.
Application extraction techniques.
Required texts
The Unified Modeling Language User Guide
by Grady Booch, James Rumbaugh, Ivar Jacobson. Hardcover  482 pages
(October 30, 1998). AddisonWesley Pub Co; ISBN: 0201571684
Design Patterns by Erich Gamma, Richard
Helm, Ralph Johnson, John Vlissides. Hardcover  395 pages 1st edition
(January 15, 1995). AddisonWesley Pub Co; ISBN: 0201633612
Refactoring : Improving the Design of
Existing Code by Martin Fowler et al. Hardcover  431 pages 1st edition
(August 1999) AddisonWesley Pub Co; ISBN: 0201485672
Recommended texts
A good textbook on Java is recommended. Two
examples of good textbooks are given below:
Java in a Nutshell : A Desktop Quick Reference
(3rd Edition) by David Flanagan. Paperback  648 pages 3rd edition
(November 1999). O'Reilly Associates; ISBN: 1565924878
The Java Programming Language by Ken
Arnold, James Gosling, David Holmes. Paperback  704 pages 3rd edition
(June 15, 2000) AddisonWesley Pub Co; ISBN: 0201704331
Project
The course will have a large practical component,
in the form of a project in which a simulation of a webbased bookselling
system (or something similar) is built. The project consists of several steps:
Creation of an initial design using UML.
This initial design will require the use of several design patterns.
Implementation of the design in Java, and
testing it (possibly using an automated testing framework such as
jUnit).
Refactoring of the system after the requirements
have changed (e.g., addition/deletion of features, and requirements
make the design more flexible in several respects).
Students will work on projects in groups of
2 or 3 people.
G22.3033008 Web Services & Applications
See the detailed description on the
course homepage
G22.3033009 Special Topics in Mathematical Physics:
Quantum Computation
This course provides an introduction to quantum computation and some aspects of
quantum information theory. Topics may include quantum
algorithms (Shor's algorithm, Grover/s algorithm), quantum complexity theory, protocols of
quantum cryptography, quantum error correcting and fault tolerant computation, quantum
data compression, classical and quantum capacity of quantum channels.
Text: Quantum Computation and Quantum Information Theory, Nielsen & Chuang,
Cambridge Univ. Press; Lecture notes
G22.3033011 Logic and Verification
See the detailed description on the
course homepage
Prerequisites: Ability to understand abstract mathematical concepts and proofs,
ability to write reasonably sophisticated programs.
In this class, we look at a particularly intriguing example of how theory and
practice can interact to create new knowledge and solve realworld problems.
The course begins with Boolean logic and functions. Boolean representations
can be used to model a wide variety of interesting problems. We discuss
methods such as binary decision diagrams (BDDs) and highspeed Boolean
satisfiability (SAT) algorithms, and we will explore how these are used in
practice.
We then move on to firstorder logic. We discuss syntax and semantics of
firstorder logic and explore complexity and completeness results. We will
then look at ways to use firstorder logic in practical verification efforts
and show how these techniques can be applied to hardware and software systems.
G22.3033012 Experiments in Motion Capture
See the detailed description on the
course homepage
G22.3033013 Formal Analysis of Security Protocols
See the detailed description on the
course homepage
G22.3033014 Sequential Programs Verification & Analysis
See the detailed description on the
course homepage
G22.3033015 Data Warehousing & Mining
We live in the Age of Information. The importance of collecting data that reflects a business or scientific
activity to achieve competitive advantage is widely recognized now. Advanced systems for collecting
data and managing it in large databases are in place in most large and midrange companies. However,
the bottleneck of turning this data into your success is the difficulty of extracting knowledge about the
system from the collected data.
What goods should be promoted to this customer?
What is the probability that a certain customer will respond to a planned promotion?
Can one predict the most profitable securities to buy/sell during the next trading session?
Will this customer default on a loan or pay back on schedule?
What medical diagnosis should be assigned to this patient?
How large are the peak loads of a telephone or energy network going to be?
Why does the manufacturing facility suddenly start to produce defective goods?
These are all the questions that can be answered if information hidden in a database can be found
explicitly and utilized. Modeling the investigated system and discovering relations that connect variables
are the subject of data mining.
The course will introduce concepts and techniques of data mining and data warehousing, including
concept, principle, architecture, design, implementation, application of data warehousing and data
mining.
TOPICS:
Data warehousing and OLAP technology for data mining
Data preprocessing
Descriptive data mining: characterization and comparison
Association analysis
Classification and prediction
Cluster analysis
Mining complex types of data
Applications and trends in data mining
top  contact webmaster@cs.nyu.edu
