Fall 2011 Graduate Special Topics in
NOTE: for descriptions of standard graduate computer science
courses, see Graduate Course
CSCI-GA 3033-001 Statistical Natural Language Processing
In this course we will explore statistical, model based
approaches to natural language processing. There will be a focus on
corpus-driven methods that make use of supervised and unsupervised
machine learning methods and algorithms. We will examine some of
the core tasks in natural language processing, starting with simple
word-based models for text classification and building up to rich,
structured models for syntactic parsing and machine translation. In
each case we will discuss recent research progress in the area and
how to design efficient systems for practical user applications. In
the course assignments you will construct basic systems and then
improve them through a cycle of error analysis and model redesign.
This course assumes a good background in basic probability and a
strong ability and interest to program in Java. The class is open
to graduate as well as undergraduate students.
CSCI-GA 3033-002 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
CSCI-GA 3033-003 Financial Software Projects
The theme of this course is an "applied case study" and focuses on
fixed income markets. Topics covered include an overview of the
markets, the inner workings of an investment bank, the market
players, and where software engineers fit in. Students will be
grouped into small teams to build a financial application using
practical software engineering principles. Each team will build a
risk management framework, starting with basic components.
Prerequisites: It is assumed that the students can code in C++. No
prior experience in the financial sector domain is required.
CSCI-GA 3033-004 Production Quality Software
In this course, students learn to develop production quality
software. Lectures present real-world development practices that
maximize software correctness and minimize development time. A
special emphasis is placed on increasing proficiency in a
particular programming language by doing weekly development
projects and participating in code reviews. Assignments become more
sophisticated as the semester progresses, eventually incorporating
unit tests, build scripts, design patterns, and other techniques.
The course culminates with an assignment that requires students to
contribute to an open-source project of their choice.
CSCI-GA 3033-005 Open Source Tools
This course covers a brief history and philosophy of open source software, followed by an
in-depth look at open course tools intended for developers. In particular, we will present
an overview of the Linux operating system, command line tools (find, grep, sed),
programming tools (GIT, trace), web and database tools (Apache, MySQL, App Engine), and
system administration tools. We will also cover scripting languages such as shell and
Python, and use them to write web applications.
CSCI-GA 3033-006 Application Servers
This course concentrates on designing and developing persistent
software applications using application server technology. Students
will learn how to configure and operate application servers in
production environments, taking advantage of features available in
mainstream commercial frameworks such as scalability, concurrency,
security and fault tolerance. Commercial and open source
application server technologies (e.g., Spring Framework, IBM WAS,
Oracle WebLogic Suite, .Net, OpenCCM) will be covered as well as
related standards governing application server-driven frameworks
(e.g., OMG's OMA/CORBA, JEE, .Net, WS-I).
CSCI-GA 3033-007 Distributed Systems
Distributed systems help programmers aggregate the resource of
many networked computers to construct highly available and scalable
services. This class teaches the abstraction, design and
implementation techniques that allow one to build fast, scalable,
fault-tolerant distributed systems. Topics include multithreading,
network programming, consistency, naming, fault tolerance, security
and several case studies of distributed systems.
CSCI-GA 3033-008 Social Multiplayer Games *CANCELLED*
CSCI-GA 3033-009 Motion Capture for Gaming & Urban Sensing
This class is a research oriented project & seminar class.
We cover new motion capture and vision techniques and new
applications to gaming and urban sensing domains. We have a newly
installed state-of-the-art motion capture system that the class can
use, as well as several research prototypes that use Kinect,
web-cam, iPhone, web-based, and other alternative vision and motion
capture based sensing, analysis, and visualization techniques.
Please check http://movement.nyu.edu/mocap11f for the latest agenda
for this class.
CSCI-GA 3033-011 Computing Systems Projects
This is a graduate level course where students will be working on
challenging systems projects throughout the semester. In this class, the students will be exposed early to a set of challenging project ideas and
students have to pick an idea and push it towards completion. Students
will learn the design and implementation techniques essential for
engineering both robust networks and large-scale systems.
One specific theme for this semester will be projects with a focus on
computing for development (not all projects may exactly fit this mould,
but this will be one important focus area). Over the past several decades,
computer science research and development has largely centered around
issues in the developed world while very little focus has been given to
problems in the developing world. A majority of people in the developing
parts of the world do not have access to basic communications without
which the "digital divide" in the world is bound to significantly grow
over the years. We will be providing several interesting project ideas
within this space which relate to real-world societal problems.
Students have to pick a project idea in the first 2 weeks and are expected
to present a fully functional system by the end of the semester. This will
be a programming intensive course with no exams. There will also be weekly
discussions where students will be presenting their project ideas to other
students and we may read some relevant papers for each project area. This
class aims to promote a culture where students are willing to take up
challenging real-world problems and propose cool ideas to solve them.
| contact firstname.lastname@example.org