Graduate Special Topics in Computer Science


SCI-GA.3033-001 Financial Computing

This course introduces students to the basic concepts of computational finance and explores 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. The course will cover various issues such as high-frequency market simulators and frameworks for performing statistical simulations. Various financial instruments will also be discussed and modeled. Emphasis will be put on efficiency and proper design. 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.

CSCI-GA.3033-002 Robotics

Robotics has been expanding at a very fast pace in recent years. Several companies now sell mobile robots to consumers for entertainment, surveillance, maintenance, and other applications. Concurrently, robotic-like capabilities are being integrated into traditional products such as cars, vacuum cleaners, lawnmowers, etc. Over the next decades, intelligent domestic, industrial, and military robots will become ubiquitous.

The course will consist mostly of hands-on sessions in which students will write perception, reasoning, and control software for a variety of robot platforms including wheeled autonomous mobile robots,  robot manipulators, and flying robots (helicopters). all with a variety of sensors such as cameras, depth image sensors (e.g. Microsoft Kinect), and range finders. Some robots will have on-board computers, while others will be controlled by a remote computer. Student in small groups will implement high-level sensor processing, learning, planning, and control software for various tasks, such as obstacle avoidance, mapping, rescue operations, grasping, etc.Basic techniques reviewed in the class will include sensor processing, vision, object detection, recognition and tracking, motion estimation, obstacle detection, simultaneous localization and mapping (SLAM), planning, and low-level control.

Students are expected to bring a laptop computer with Ubuntu Linux to class. The course is open to graduate students in CS, Math, and Neursocience, and to a small number of advanced undergraduates with the relevant background.

Prerequisite: either computer vision, machine learning, or AI, and a good math background:  at least calculus 3, plus linear algebra or scientific computing.

CSCI-GA.3033-003 Algorithmic & Economic Aspects of the Internet


Prerequisites: Fundamental algorithms or permission of the instructor. Also, some knowledge of basic linear algebra and probability will be assumed.

CSCI-GA.3033-004 Bioinformatics CANCELLED

This course introduces students to bioinformatics, which uses information technology to store, annotate, retrieve and analyze biological information. Genome‐scale sequencing projects have led to an explosion of genetic sequences available for automated analysis. These gene sequences are the codes that direct the production of proteins that in turn regulate all life processes. Students will be shown how these sequences can lead to a much fuller understanding of many biological processes important to pharmaceutical and biotechnology industries: e.g., to determine new drug targets or to predict if particular drugs are applicable to all patients. Basic concepts behind bioinformatics and computational biology tools, algorithms and data structures will be discussed. Hands‐on sessions will familiarize students with the details and use of the most commonly used online tools and resources.

CSCI-GA.3033-005 Production Quality Software


CSCI-GA.3033-006 Special Topics in Machine Learning: Probabilistic Graphical Models


Prerequisites: This is a graduate-level course. Students should previously have taken one of the following classes:

  • Statistical Natural Language Processing (CSCI-GA 3033)
  • Introduction to Machine Learning (CSCI-UA 0480)
  • Machine Learning (CSCI-GA 2565)
  • Foundations of Machine Learning (CSCI-GA 2566)

CSCI-GA.3033-007 MATH-GA 2932-002 Random Graphs

This course covers numerous topics related to random graphs, including generalized randomized structures, random processes, probabilistic methods and Erdös Magic. Also covered are branching processes, phase transitions for large random evolutions, derandomization via conditional expectations and semidefinite programming derandomization techniques. Algorithms, probability and discrete mathematics all appear, but concepts will be defined from scratch. Emphasis will be on methods of asymptotic calculation.

CSCI-GA.3033-008 Social Multiplayer Games

The course will teach how to develop online casual multiplayer games using technologies such as DHTML, JSON, AJAX, long-polling, HTML5, GWT, AppEngine, etc. The students will collaboratively build a social and mobile applications serving these games. The games will be social, viral and integrate with facebook/google+/mobile feeds, notifications, invites, credits, user info, etc. The course will also teach about ranking systems, leaderboards, tournaments, building artificial-intelligence for games, realtime and turn-based games, location awareness, and advanced user-interface such as touch screen. (The course will not concern with 3D graphics, animations, or sounds.)

Pre-requisite: Java (knowing Internet or databases is an advantage, but not required)

CSCI-GA.3033-009 Special Topics in Computer Animation

Overview of computer animation techniques. Topics: traditional principles of animation, physical simulation, procedural methods, and motion capture based animation. Focus is on computer science aspects of animation. The basics including kinematic and dynamic modeling techniques; exploration of current research topics such as motion re-targeting, learning movements and behaviors, and video based modeling and animation). Hands-on animation experience through class projects.

CSCI-GA.3033-010 Computer Games

The study of computer games offers a unique opportunity to bring together many complementary computer science sub-fields and techniques and to observe how these work together. This course will cover computer science topics involved in the creation of computer games, including accelerated graphical rendering of simulated natural phenomena, concurrent programming, digital audio synthesis, forward and inverse dynamics, multi-level object representations, real time animation and modeling, scientific visualization and scripting interfaces. Students will also be exposed to elements essential to the experience of designing and implementing games, such as the visual, storytelling, and sound design elements of games.

CSCI-GA.3033-011 Rigorous Software Development


CSCI-GA.3033-012 Graphics Processing Units (GPUs): Architecture and Programming

This course will examine the architecture and capabilities of modern GPUs (graphics processing unit). Many computations can be performed faster on the GPU than on a traditional CPU. This is why GPUs are present now in almost all computers; and the majority of Top 500 supercomputers in the world are built around GPUs. GPUs are now used for a diverse set of applications not only traditional graphics applications; which introduces the concept of general-purpose GPUs or GPGPUs. In this course, we will cover architectural aspects of modern GPUs. We will also learn how to program GPUs to solve different type of problems.

Prerequisites: CSCI-GA 1170 Fundamental Algorithms, CSCI-GA 2110 Programming Languages

CSCI-GA.3033-013 Social Networks


CSCI-GA.3033-014 Object Oriented Programming

This course takes an in-depth look into the the design, implementation, theory, and use of object oriented programming languages. Possible topics include: inheritance, polymorphism, generics, and modules; implementation techniques for object oriented languages in unmanaged and managed code platforms (e.g. C++ and Java, respectively); object oriented functional languages (e.g. Ocaml and Scala) and their use in industry; object oriented design and modeling; concurrent object oriented languages; and formal type systems for object oriented languages. Substantial programming projects in a number of different languages, as well as occasional homework, will be assigned.

Prerequisite: Programming Languages (CSCI-GA.2110)

top | contact