Graduate Special Topic in Computer Science
NOTE: for descriptions
of standard graduate computer science courses, see Graduate Course Descriptions.
G22.2945 Topics in Numerical
Analysis: Parallel Computing (G63.2012 in Mathematics)
This course is offered by the Mathematics
Department and cross-listed in the Computer Science Department. Please
register for it under its CS course number (G22.2945.01) if you are a
CS student. For a description, see the Mathematics
Department course descriptions homepage, where this course is listed
G22.3033.01 Introduction to Multimedia
Prerequisites: G22.2110 (Programming
This course surveys the new technology
of multimedia computing.
Topics to be covered include authoring
and automation systems, graphics facilities, use of video and audio,
hypertext systems, techniques for automatic processing of text,
issues in system design.
G22.3033.02 Geometric Modelling
see the course homepage
G22.3033.03 Internet &
Intranet Protocols & Applications
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, SMTP and POP3 for email, FTP for file transfer, and SSL
for security. We consider protocol design issues, especially as they influence
functionality, reliability and performance. We carefully read protocol specifications,
such as the HTTP specification, RFC 2068. 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
are expected to have taken Data Communications and Networks or equivalent.
Students will write several small programming assignments and one large
project. The large programming project will ask students to design and implement
a load balancing manager as used by content serving companies such as Akamai
Guest lecturers will present
current research and practice on some of the following issues: the design
and operation of an Internet EDI Service, the design and operation of a
high volume Web-based branding system, performance issues in WWW servers,
and Internet security.
The last quarter of the course
examines research that enhances internet and Web performance.
G22.3033.05 (Special Topics
in Programming Languages) Compilation for Advanced Computer Architectures
G22.2110, G22.2130 (or their honors equivalents)
This course covers compiler
optimization techniques for advanced computer architectures, including EPIC/VLIW,
Vector, Superscalar, and SMP machines. In addition to introducing students
to these architectures, the topics to be covered include parallelization
and vectorization, optimizations for improved cache performance, instruction
scheduling, and register allocation. Programming methodologies for exploiting
the features of these architectures will also be discussed.
G22.3033.06 Sp Tps in Info
G22.3033.07 Extreme Java
Prerequisites: G22.2110, and
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 tools and software engineering
techniques (e.g., Project Lifecycle, Environment, Resources, Packaging),
Java core technologies (e.g., Collections Framework, Drag and Drop, Swing,
JavaBeans, threads, JNI), 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., applets, aglets, connected devices, Web
servers, security, XML, servlets, JSPs, EJBs, EAI), database technologies
(e.g., JDBC), and operating systems (e.g., JavaOS). Students will experiment
with various Java-enabled 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.3, J2EE 1.2.1, and J2ME CLDC 1.0. Through a set of
assignments and projects, students will implement the various components
of a sample web-enabled and Java-based enterprise application.
G22.3033.08 Computer Security
Algorithms (preferably with an A- or better), Distributed Computing coursework
or practical experience.
The class will be run as a
combination of lectures and research seminar. It will focus on two areas:
of various security protocols. This will include explaining the mathematical
results that are used, with proofs kept to the barest minimum. The cryptographic
algorithms and protocols covered will mostly be selected from the list: key
exchange, authentication, secret sharing, digital signatures, timestamping
services, subliminal channels, undeniable signatures, bit commitment, coin
flipping on the telephone, all or nothing disclosure of secrets, zero knowledge
proofs, digital certified mail, elections, digital cash, DES, RSA, key management,
compromised key handling
directions of current interest, some covered by outside security experts
As there will be no textbook,
students really should plan to attend every class.
Course work will entail reading
papers. There will be exams and/or reports on the papers you read.
There will be no programming projects.
G22.3033.10 Advanced Topics
in Operating Systems
Prerequisites: G22.2250, Strong
C/C++ background, and permission of the instructor. Controlled enrolment
(send email to email@example.com).
This class presents abstractions
and implementation techniques for distributed systems supporting real-world
workloads. Lectures will focus on recent research in the areas of operating
systems and distributed computing. Assignments will involve building practical
network applications, including a caching web proxy. In a final project,
students will build a real, functioning Unix file system. Topics: kernel
design, storage systems, networking protocols, client/server architectures,
and scalability in distributed systems. Students will have access to dedicated
equipment for the assignments and project.
G22.3033.11 Topics in Computational
Biology: Comparative and Functional Genomics
The genes of all cells are
composed of DNA. Proteins serve as structural components as well as enzymes
within cells but the genes contain the blueprints for each protein and the
program for controlling the production of proteins. Genes are transcribed
to produce complementary molecules of mRNA (messenger RNA) and the mRNA is
translated to proteins. There is a one to one correspondence (almost) between
genes and proteins. Proteins perform the work of cells such as energy production,
reaction catalysis, inter-cellular signaling, transcription and translation,
cell reproduction, etc. All cells of an organism contain the same DNA. The
level of production of the each of the types of proteins specifies the state
of a cell. This state is determined by spatial and temporal variables such
as tissue location and extra-cellular stimuli. Level of production of a protein
is determined primarily by level of transcription of the corresponding gene
into mRNA. This picture seems to be at the core of a universal story of life!
With the recent availability
of DNA sequence data, proteomics data and development of tools for whole-genome
assays (e.g., gene expression arrays), it has become possible to understand
the basic biology of the cells, identification and function of the genes
and how a common/universal theme varies over all life.
The greatest hurdles to the
effective development and use of new tools for the "post-genomic informatics"
are problems of mathematics and statistics. There are difficult problems
of combinatorial mathematics, statistics, modeling and algorithm design.
There are challenging problems
of how to elucidate genetic networks based on time-sequenced gene expression
data. There are important problems of how to classify cells based on expression
pattern and how to develop diagnostic disease classifications systems. Because
of the high dimensionality of the data, there are many challenging problems
of multiplicity and multivariate analysis that must be addressed.
G22.3033.12 Systems Related
Algorithms and their mathematical foundations
Modern algorithmic developments
and a variety of mathematical tools have a wide range of applications in
new and emerging systems. In this seminar, we will study algorithmic methods
and analyses for a variety of applications. In particular, we will include
an introduction to: probability estimates; stochastic modeling for
performance estimation; on-line algorithms; routing problems
and congestion in networks; coding theory and its applications for
high performance; data compression.
We will also include some
material on simulation and probabilistic sampling methods.
While the course is intended
to provide the background that is necessary for research in these areas,
a few research problems will also be explored. Students will be invited--but
not required--to work on a variety of open questions over the course of the
| contact firstname.lastname@example.org