Graduate Special Topics in Computer Science
NOTE: for descriptions
of standard graduate computer science courses, see Graduate Course Descriptions.
G22.3033-001 Experiments in Motion Capture
Prerequisites: CS Students should be able to code in Matlab, C++, or another computer
language, and should have basic knowledge in Linear Algebra, Statistics, Graphics,
and Computer Vision. Non-CS students should demonstrate strong
background in a related field (animation, dance, medicine,
biomechanics etc), and be able to use the relevant computer software for
their class project. Contact the instructors if you have questions
about the required background.
Motion Capture is the process of recording human movement (or other movement) in
physical space, and transforming that information in a computer-usable form.
Examples are measurements of full body motions, facial expressions, or animal
motions. Example applications include bio-medical analysis, computer animation,
or visual input for new Human-Computer-Interfaces. Motion Capture has a long
tradition in the sciences and art. Early recordings go back to Muybridge in
the late 19th century, and early applications of rotoscoping date back to
Animated Features like Disney's Snow White. The use of Motion Capture has
been become of increased popularity, due to recent technological advances,
and due to increased demand in entertainment and scientific applications.
This course will survey the history of motion capture, the technical
foundations and state-of-the-art of maker-based and vision based motion
capture systems, how it is used in the sciences and arts, and its current
limitations and new challenges. We will put a special emphasis on the use
of motion capture for computer animation, and all the excitement and
controversies that it currently sparks by the community.
We welcome students/auditors from non-computer-science disciplines
(in the arts and other sciences) although this class is listed
as an advanced graduate level CS course. Despite lectures by the
instructors, the class is heavily based on project teamwork and
other student participation. We will make a
special effort to accommodate interdisciplinary teams.
See the spring 2004 course homepage
for more information.
G22.3033-002 Applied Cryptography & Security
The course targets MS students and interested undergraduate students.
Given: Many security and privacy protocols rely on cryptographic
techniques, which in turn rely on mathematics, drawn mainly from number
theory, abstract algebra, and probability.
The main goals of the course will be
1. To teach the mathematics underlying the cryptographic protocols and
algorithms that form the basis of some of the current security and
privacy mechanisms (such as public key cryptography, digital signatures,
etc.) I will use "security" to mean both security and privacy
2. Such protocols and algorithms
3. Relevant security mechanisms
The course will not address security issues that are not related to
cryptography, for instance, I will not discuss malformed email messages,
buffer overflows, bugs in operating systems, computer viruses,
blackmailing employees, etc.
With respect to (1) above, I will make no assumption on mathematical
knowledge beyond high school algebra and possibly elementary calculus.
So for instance, I will teach and prove the relevant parts of number
theory as applied to cryptography, to the extent feasible--some of it
would take too much time to cover, so I will just state them. I expect
the students to understand the mathematical derivations. If you have
difficulty following formal mathematical reasoning (both concepts and
proofs), you may find the course frustrating.
I expect to provide (likely mostly hand-written) handouts covering
practically all of the material, though I may require a textbook too and
assign reading of simpler material from there.
If there are going to be programming projects, they will be quite
minimal. There will be homeworks to "exercise" the theoretical
So in some way the bottom line is that if you are interested in really
understanding the theoretical principles of selected current
privacy/security cryptography-based mechanisms, and are willing to put
the time to learn it, this course may be of interest to you. If you are
interested in mathematical cryptography per se (more theoretical), or
privacy/security mechanisms taking the algorithms as given (more
practical), this will not be of interest to you.
There are no real prerequisite beyond understanding what a formal
mathematical proof is and an undergraduate algorithms course.
The material covered is likely to include the following:
Math/Theory (this is not most of the course, but I wanted to give a more
detailed information about it):
Basic complexity-related concepts (such as one way functions,
pseudorandom functions). Basic concepts of probability and information
theory (including conditional probability and entropy). Relevant parts
of number theory (such as computing the greatest common divisor, Chinese
remainder theorem, primality testing, Fermat's little theorem). Relevant
parts of abstract algebra (such as groups, finite fields, modular
Cryptographic tools (most of the course, relying on the preceding):
Public/private encryption (RSA and Diffie/Hellman). Symmetric encryption
(DES). Digital signatures. Authentication. Zero-knowledge proofs. Secret
sharing. Digital cash.
Some applications, such as PGP and SSL.
G22.3033-003 Computer Systems Security
This class will survey several aspects of computer system security.
Topics: authentication protocols, key management, electronic privacy,
automated program checking, mandatory access control systems.
See the course homepage
from spring 2002 for more information.
G22.3033-004 Advanced Topics in Multimedia
See the most recent course homepage
G22.3033-005 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
time-out management and high-performance 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.3033-006 Artificial Life for Computer Graphics
Prerequisites: G22.2270 (Computer Graphics) and some basic familiarity
with physics, biology, and artificial intelligence, or permission of
This course will investigate the important role that concepts from
Artificial Life, an emerging discipline that combines the
computational and biological sciences, can play in the construction of
advanced computer graphics models for virtual reality, animation, and
interactive games. The focus will be on comprehensive models that can
realistically emulate a variety of living things - plants and animals
- from lower animals to humans. Typically situated in virtual worlds
governed by physical laws, such models will often make use of
physics-based simulation techniques. More significantly, however, they
must also simulate natural processes that uniquely characterize living
systems - such as birth and death, growth, natural selection,
evolution, perception, locomotion, manipulation, adaptive behavior,
learning, and other aspects of intelligence. Students will be exposed
to the effective computational modeling of these natural phenomena of
life and their incorporation into sophisticated, self-animating
computer graphics models. Specific topics will include modeling plants
using L-systems, biomechanical simulation and control, behavioral
animation, reinforcement and neural-network learning of locomotion,
cognitive modeling, artificial animals and humans, human facial
animation, artificial evolution, etc.
G22.3033-007 Computational Geometry & Modeling
Pre-requisites: G22.1170 (Fundamental Algorithms) or equivalent, or permission of the
instructor. No previous background in computational geometry
or algebraic computation is assumed.
Computational Geometry has traditionally
emphasized combinatorial analysis and efficient
algorithmic techniques to solve a variety of
geometric problems. Most of these problems
are linear problems, involving points and piecewise
linear objects (e.g., polytopes).
In recent years, the push to extend such techniques
to nonlinear geometric problems such as curves and
surfaces have exposed new algorithmic issues such as
algebraic zero bounds,
interaction between algebraic and numerical computations,
This course will address several of these issues, including
an introduction to algebraic curves and surfaces.
G22.3033-008 Advanced Rendering
To be announced.
G22.3033-010 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 mid-range 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
Data warehousing and OLAP technology for data mining
Descriptive data mining: characterization and comparison
Classification and prediction
Mining complex types of data
Applications and trends in data mining
G22.3033-011 Rapid Visualization
Prerequisite: WWW Programming or equivalent Java experience.
The principal challenge facing technology companies today is to offer new,
relevant products that keep up with the explosive growth in bandwidth and
storage on networks and computers. To remain competitive in a do-or-die
climate, innovative product houses - from IDEO to Cooper Interactive to Frog
to HP - have embraced new, cost effective rapid prototyping methods. To get
the best results from costly development cycles, these companies develop
rich scenarios around the end-user, and use creative methods early in the
process to envision and iterate a range of product outcomes. Rapid
Visualization, with tools drawn from various creative disciplines,
dramatically increases the volume and quality of ideas that enter the new
product pipeline, and accelerates their time to market.
This course introduces these methods with case studies pulled from, among
other sources, the instructor's hands-on experience directing a rapid
visualization team at AT&T Labs-Research. Armed with a new set
of techniques -
storyboards, service and use-case scenarios,
and even faux ads - students will gain a practical understanding of the
value of rapid visualization to new product development. Students will apply
these methods to the development of a novel software tool.
Is a picture worth a
thousand lines of code?
G22.3033-012 Foundations of Machine Language
Prerequisites: Familiarity with basics in linear algebra, probability, and analysis
This course introduces the fundamental concepts and methods of machine
learning, including the description and analysis of several modern
algorithms, their theoretical basis, and the illustration of their
applications. Many of the algorithms described have been successfully
used in text and speech processing, bioinformatics, and other areas in
real-world products and services. The main topics covered are:
- Probability and general bounds
- PAC model
- Perceptron, Winnow,
- Support vector machines (SVMs)
- Kernel methods
- Decision trees
- Regression problems and algorithms
- Ranking problems and algorithms
- Halving algorithm, weighted majority algorithm, mistake bounds
- Learning automata, Angluin-type algorithms
- Reinforcement learning, Markov decision processes (MDPs)
Note: except for a few common topics briefly addressed in the
fall 2004 Machine Learning course, there is no overlap in
the material of the two courses. Students may get credit for both.
| contact firstname.lastname@example.org