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 knowledge.

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 arithmetic).

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 for information.

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 the instructor.

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 non-robustness issues, algebraic zero bounds, interaction between algebraic and numerical computations, etc. 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 mining.

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

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 - concept sketches, 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 of algorithms.

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
  • VC-dimension
  • Perceptron, Winnow,
  • Support vector machines (SVMs)
  • Kernel methods
  • Decision trees
  • Boosting
  • 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.

top | contact