Graduate Special Topics in Computer Science

NOTE: for descriptions of standard graduate computer science courses, see Graduate Course Descriptions.

G22.3033-001 Computational Geometry

G22.3033-002 Complexity Theory of Computation

G22.3033-003 Computational Photography

Computational Photography is an exciting new area at the intersection of Computer Graphics and Computer Vision. Through the use of computation, its goal is to move beyond the limitations of conventional photography to produce enhanced and novel imagery of the world around us. The main focus of the course will be on software-based methods for producing visually compelling pictures. However, it will also cover novel camera designs, for which computation is integral to their operation. The course will explain the principles behind many of the advanced tools that can be found in Adobe Photoshop, although the use of this package itself is outside the scope of the course. The course will be suitable for advanced undergraduates, masters and PhD students. A reasonable knowledge of linear algebra is required and familiarity with Matlab is desirable. Assessment will be through coursework and a course project.

See the course homepage for more information.

G22.3033-004 Interactive Shape Modeling

Digital 3D content creation is in high demand in the film and gaming industry, product design and manufacturing, architecture, surgical simulation and planning, medical prosthesis design and more, and it is backed up by affordable 3D acquisition technologies. Yet, shape modeling tasks, such as creation, editing, deformation and animation, remain extremely laborious, requiring artistic skills and high technical expertise. This course will survey state-of-the-art shape modeling research that aims at broadening our knowledge and understanding of shapes to create better digital modeling tools, and explores ways to communicate the human intentions of shape manipulation to the computer in a natural and effective manner.

The course will begin by covering some introductory topics in geometric modeling, with an emphasis on discrete geometry processing: digital shape representations and related data structures, shape acquisition and reconstruction, smoothing and denoising, parameterization, remeshing. The course will then concentrate on recent shape creation and manipulation research, touching on variational modeling techniques, space deformations, sketch-based modeling interfaces, shape interpolation and skeleton-skin animation of articulated bodies. The necessary mathematical tools will be presented along the way (these include topics in linear algebra, differential geometry, optimization).

The course is suitable for PhD students (advanced MS students are also welcome). Programming knowledge is required (preferably C++) and familiarity with basic computer graphics and GUI programming (or motivation to learn those fast) is desirable. Assessment will be based on two small-scale homework assignments and a course project.

See the course homepage for more information.

G22.3033-005 Computational Systems Biology

We will focus on the following four questions:
(1) Who are we (humans)?
(2) Where did we come from? Why do we differ?
(3) Why do we suffer?
(4) Why do we die?

Lecture 1: Reading Human Genomes Haplotypically: New generation sequencing technologies. The challenges. Resequencing algorithms. Sequence assembly algorithms

Lecture 2: Genome Evolution: (Point Mutations; Rearrangements; Evolution by Duplication)

Lecture 3 & 4: Genome Structure: (Retro-Elements and their distributions; Physical Properties of a genome; Large Segmental Duplications; Models of Segmental Duplications); Polymorphisms: (SNPS & CNPS; Haplotyping and Haplotype phasing);

Lecture 5 & Genetics: (Linkage Analysis; Association Studies)6:

Lecture 7, 8 & 9: Reconstructibility in Biology; Biological Networks: Protein-DNA and Protein-Protein Interactions: (Two hybrid experiments; Motifs and Scale-Free Networks; Origin of structures); Network Reconstruction: (From Microarray Data; Techniques based on Linear and non-linear regression; The issue of sparsity); Theory of Information Bottleneck: (Clustering using IB, side-information and ontology; Analysis of Time-Course Data; GOALIE)

Lecture 10, 11 & 12: Biology of Cancer; Cancer Data Analysis: (Genomic Data; Transcriptomic Data; Proteomic Data); Cancer Gene Discovery: (Tumor Suppressor Genes and Oncogenes); Somatic Evolution in Cancer; Stem Cells; Longevity and Immortality.

See the course homepage for more information.

G22.3033-006 XML for Java Developers

The eXtensible Markup Language (XML) is a platform-independent data representation, which may be viewed as a simplified version of SGML designed for the Web. Java Technology and XML are complementary: XML provides a family of technologies that enable portable data, and Java technology enables portable, maintainable code. Together, XML and Java technologies provide comprehensive support for data representation and exchange, and promote a new generation of Presentation Oriented Publishing (POP), Message Oriented Middleware (MOM), and Application Configuration services for the enterprise. While XML-based POP services are being layered on top of JEE.s Client Container, Java Server Faces (JSF), and JSP/Servlet component models, XML-based MOM services provide uniform access to application server and Enterprise Extension and Integration technologies including Business Process Management (BPM), Business to Business Integration (B2Bi), Enterprise Application Integration (EAI), Legacy Extension (LE), and Enterprise Information Integration (EII). As they become core components of Enterprise Service Buses that support SOA implementation (i.e., Progress Sonic Software SOA Suite, Oracle BEA AquaLogic Service Bus, Oracle SOA Suite, IBM Websphere ESB, Software AG Enterprise Service Integrator, Tibco Businessworks, Cape Clear Software ESB and Microsoft .NET), XML-based services provide a foundation for modern service-based, component-based and device-independent eBusiness and service oriented business via wire/exchange standardized protocols (e.g., SOAP, ebXML, BizTalk services, WS-Security), description protocols (e.g., XML Schemas, WSDL, Process Flow Orchestration, BPEL4WS), discovery protocols (e.g., WS-Inspection, UDDI), and presentation/integration facilities.

This course is designed for programmers already familiar with the Java language and class libraries. All instruction and development will be based on the Java SE 6, and the latest practical W3C, and WS-I standards. Rather than solely focusing the presentation on the various XML features and technologies, the course illustrates how the use of such XML technologies and applications meshes with the modern approach at building XML-based comprehensive business applications. The course provides an in-depth coverage of XML-based Java-enabled functionality. Students will learn how to specify, and manipulate XML data from Java programs using existing implementations of the current W3C specifications for the Domain Object Model (DOM) and Simple API for XML SAX). Through a set of assignments/projects, students will implement the various components of a sample XML web-enabled and Java-based enterprise application. Students will gain practical exposure to the various XML commercial toolsets being developed by various third-party vendors including IBM, Microsoft, Oracle, Software AG, and Sun Microsystems.


The objectives of the course are as follows:
1. Expose the students to the XML family of technologies, and the latest W3C XML and WS-I XML standards.
2. Expand the student.s understanding of the various applications of XML in the areas of information representation, Presentation Oriented Publishing, Message Oriented Computing, Application Configuration, and Web Services Protocols.
3. Expose the students to the combined use of XML and Java technologies to support the development of modern applications targeted to the evolving spectrum of distributed and decentralized enterprise platforms.
4. Expose the students to the advanced XML-enabled capabilities of the Java SE development environment for Enterprise Applications.
5. Demonstrate the use of XML to support the modern approach at building comprehensive business applications using XML Markup Language technologies, XML information modeling, XML information processing, XML information rendering, XML information retrieval, XML-Based frameworks, and XML application implementation and testing methodologies and tools.
6. Demonstrate the application of XML in distributed communications enabling, enterprise systems assurance, web enabling, application enabling, and enterprise data enabling.
7. Expand student.s understanding of the current industry support for XML technologies including the standard domain- and industry-specific applications of XML published on the W3C or OASIS Web sites, core XML technologies used to support enterprise frameworks (e.g., JEE, .Net, and CORBA 3), and XML technologies used to support specific architectural patterns such as Service Oriented Architectures (e.g., Web Services and ESB platforms), P2P platforms, Grid Computing platforms, Brick by Brick computing, etc.
8. Sharpen the student.s practical development skills via focused assignments and projects.




Students enrolling in this class are expected to have taken G22.1170 (Fundamental algorithms) and its prerequisites or to have equivalent knowledge. Students are also expected to have taken a Java intermediate course, and to have basic knowledge of the Core JFC classes, and the ability to program in Java.


Download Java SE SDK and other Sun XML technologies from Related XML standard specifications can be found at, and Other sources include the Apache XML Project at, IBM Alphaworks at, Microsoft.s XML home at, and information/resources provided at,, , and Additional sources will be provided as applicable during the course sessions.

See the course homepage for more information.

G22.3033-007 Web Development with Ruby on Rails

This course begins with an in-depth examination of the Ruby language and moves on to web development within the Ruby on Rails framework. An emphasis is placed on understanding the particular features of the Ruby language, how the language compares to others like Java and Python, and how it facilitates the creation of frameworks such as Ruby on Rails. This course is recommended for students with a strong interest in programming languages, web development frameworks, and software engineering. No experience with Ruby or Ruby on Rails is assumed.

See the course homepage for more information.

G22.3033-008 Financial Computing I

This course is intended to introduce the students to the basic concepts of Computational Finance and explore various relations between Computer Science and Finance. In particular, the course will introduce both theoretical and practical aspects of finance with an emphasis on the relation between real-life applications and these concepts. We will cover various issues like high-frequency market simulators, framework for performing statistical simulations, we will discuss and model various financial instruments. Strong emphasis will be put on efficiency and proper design. As such, Object Oriented concepts will be discussed and put to use in real life applications.

Prerequisites: Fundamental Algorithms, Programming Languages, background in calculus and linear algebra.

See the course homepage for more information.

G22.3033-009 Finance Projects *CANCELLED*

G22.3033-010 Topics in Automated Deduction

From very early on, philosophers have dreamed of machines that can reason. Leibniz first proposed the ambitious goal of mechanizing the process of human reasoning, saying, "Once this is done, then when a controversy arises, disputation will no more be needed between two philosophers than between two computers. It will suffice that, pen in hand, they sit down to their abacus and (calling in a friend if they so wish) say to each other: let us calculate." In this course we look at automated deduction within the context of first-order logic. We cover automated theorem proving techniques like resolution and rewriting. We also look at first-order theories for which the decision problem is decidable. We will cover a variety of problem domains and techniques and will also look at some applications.

See the course homepage for more information.

G22.3033-011 Program Semantics, Analysis, and Verification by Abstract Interpretation

The fast-growing volume and complexity of software embedded in safety, mission, and business-critical systems is driven by demands for increased functionality while being asked to function at unprecedented levels of reliability, safety, security, and scalability. In this context, automatic software analysis and formal verification to prove the absence of errors becomes a cost-effective complement to empirical validation and testing methods to detect the presence of bugs and flaws in computer systems.

Abstract Interpretation is a theory of approximation of mathematical structures, in particular those involved in the semantic models of computer systems. Abstract interpretation can be applied to the systematic construction of methods and effective algorithms to approximate undecidable or very complex problems in computer science such that the semantics, the proof, the static analysis, the verification, the safety and the security of software or hardware computer systems. In particular, abstract interpretation-based static analysis, which automatically infers dynamic properties of computer systems, has proven to be effective, precise, and scalable, and has been very successful these last years to automatically verify complex properties of real-time, safety critical, embedded systems.

The course is an introduction to abstract interpretation with applications to static analysis (the automatic, compile-time determination of run-time properties of programs) and software verification (conformance to a specification).

See the course homepage for more information.

G22.3033-012 Information Science of Marketing

The Tao of Marketing. Origins of marketing. Why is it necessary to model advertising? Impact of technological changes on how people relate to media, choose, and consume products. Brand and branding concepts: Why is it important to enhance the brand? Market Evolution: Major recent market changes such as Internet/digital world (from channel-centric to consumer-centric; Targeting model, Bowling Model and Pinball model). Formats and vehicles for advertising in non-traditional media (web and mobile). Societies without borders: Social Networks, Collaborative Content, Virtual Worlds and Graphical Interfaces. Inside the insights of the State Diagram: state description of how people react/behave in the presence of advertising. Throughout the course, we will focus on the modeling process, the development of Information Theory, physical-based models, statistical theory, and learning methods to model human behavior regarding advertising. We will conclude with a case study: "Facebook: a new face in mass media."

See the course homepage for more information.

G22.3033-013 Values Embodied in Information and Communication Technologies

Computing and information technologies mediate much private and public communication, interaction, and transaction, forming the infrastructure for critical social and institutional functions such as commerce, banking and finance, utilities, national defense, education, and entertainment. The course steps back and considers social, political, and ethical implications of these systems, evaluating how they promote or impede the values, such as freedom, privacy, justice and autonomy, to which we, individually and as societies are committed. Through a body of social commentary and key scholarly works in the philosophy and social study of technology, students will explore the rich and sometimes troubling relationship between technology, on the one hand, and social and political life, on the other, with special attention to ICT and new media.

This is a project-centered course in which students will collaborate in small groups, applying philosophical and social theories of technology to analyze and, possibly, design computer and information systems. >From the start, students will be guided in the selection and development of project ideas and will be matched with one or two other students, based on mutual interests and complementary skills. The ideal class will include students with a variety of disciplinary backgrounds (humanities, social science, management, computer science), whose project goals will be adapted accordingly.

See the course homepage for more information.

top | contact