Current semester Fall 2017, and future semesters are now available to view.
(17297) Working with Data**** Deena Engel T 6:20-9:00PM 60 Fifth Ave C10
Students study the principles of relational database design and learn to build, populate, manipulate and query databases using SQL on datasets relevant to their interests. Students will also explore data presentation through data visualization. Not open to Graduate Computer Science, Information Systems, Mathematics or Scientific Computing students. For registration, please contact firstname.lastname@example.org.
(1127) PAC I* Evan Korth
Office Hours T 6:30-9:00PM CIWW 201
An accelerated introduction to the fundamental concepts of computer science for students who lack a formal background in the field. Topics include algorithm design and program development; data types; control structures; subprograms and parameter passing; recursion; data structures; searching and sorting; dynamic storage allocation and pointers; abstract data types, such as stacks, queues, lists, and tree structures; generic packages; and an introduction to the principles of object-oriented programming. The primary programming language used in the course will be Java. Students should expect an average of 12-16 hours of programming and related course work per week.
(1128) Fundamental Algorithms Alan Siegel
Office Hours T 5:10-7:00PM CIWW 109
Reviews a number of important algorithms, with emphasis on correctness and efficiency. The topics covered include solution of recurrence equations, sorting algorithms, selection, binary search trees and balanced-tree strategies, tree traversal, partitioning, graphs, spanning trees, shortest paths, connectivity, depth-first and breadth-first search, dynamic programming, and divide-and-conquer techniques.
Prerequisites: At least one year of experience with a high-level language such as Pascal, C, C++, or Java; and familiarity with recursive programming methods and with data structures (arrays, pointers, stacks, queues, linked lists, binary trees).
(2098) Advanced Computer Graphics Kenneth Perlin T 7:10-9:00PM 60 Fifth Ave 261
This is a capstone course based on computer graphics tools. The course covers a selection of topics that may include computer animation, gaming, geometric modeling, motion capture, computational photography, physically based simulation, scientific visualization, and user interfaces. Not all areas are available every semester; the choice of areas is determined by the instructor. The capstone project involves some or all of the following elements: formation of a small team, project proposal, literature review, interim report, project presentation, and final report.
Prerequisites: CSCI-GA 1170, CSCI-GA 2110, CSCI-GA 2250 and CSCI-GA 2270
(1136) Advanced Database Systems Dennis Shasha
Office Hours T 5:10-7:00PM 60 Fifth Ave 150
This is a capstone course emphasizing large-scale database systems. This course studies the internals of database systems as an introduction to research and as a basis for rational performance tuning. Topics include concurrency control, fault tolerance, operating system interactions, query processing, and principles of tuning. Database capstone projects involve topics such as design, concurrency control, interactions, and tuning. These projects include some or all of the following elements: formation of a small team, project proposal, literature review, interim report, project presentation, and final report.
Prerequisites: CSCI-GA 1170, CSCI-GA 2110, and CSCI-GA 2250.
(1799) Foundations Of Machine Learning Mehryar Mohri
Office Hours T 5:10-7:00PM CIWW 102
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; and reinforcement learning, Markov decision processes (MDPs).
Prerequisites: CSCI-GA 1180.
(1137) Adv Topics Num. Analysis: Gaussian elimination, Random functions and random differential equations, Chebyshev series, Rational functions, Quadrature, and ODEs Lloyd N. Trefethen
Office Hours T 1:25-3:15PM CIWW 512
Gaussian elimination, Random functions and random differential equations, Chebyshev series, Rational functions, Quadrature, and ODEs
This six-week course will be structured in an unusual way. Each of our six meetings will be independent. At each meeting, the first hour will be a lecture aimed at anyone interested in numerical analysis at a high level, organized around a well-known topic and mixing historical perspectives, recent developments, and always some new mathematics. The second hour will be for enrolled students only, a hands-on work session making use of Chebfun.
- Lecture 1. Gaussian elimination
- Lecture 2. Random functions and random differential equations
- Lecture 3. Chebyshev series
- Lecture 4. Rational functions
- Lecture 5. Quadrature
- Lecture 6. ODEs
(1138) Heuristic Problem Solving Dennis Shasha
Office Hours T 7:10-9:00PM 60 Fifth Ave C14
This course revolves around several problems new to computer science (derived from games or puzzles in columns for Dr. Dobb’s Journal, Scientific American, and elsewhere). The idea is to train students to face a new problem, read relevant literature, and come up with a solution. The solution entails winning a contest against other solutions. The winner receives candy. The best solutions become part of an evolving “Omniheurist” Web site that is expected to get many visitors over the years. The course is for highly motivated, mathematically adept students. It is open to supported Ph.D. students and well-qualified master’s students. Class size has been around 10 in the past, and instructor and students have all gotten to know one another very well. Algorithmic and programming knowledge is the main prerequisite. It also helps to be familiar with a rapid prototyping language such as Matlab, Mathematica, K, or Python, or to be completely fluent in some other language.
Prerequisites: CSCI-GA 1170 and an ability to prototype algorithms rapidly.
(1142) Special Topics: Graphics Processing Units (GPUs): Architecture & Programming Mohamed Zahran
Office Hours T 5:10-7:00PM CIWW 317
In this course, we will cover architectural aspects and capabilities of modern GPUs (graphics processing unit) and will learn the architecture and the programming of GPUs to solve different type of problems. Many computations can be performed much faster on the GPU than on a traditional processor. 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 no longer restricted to graphics applications but are now used for a diverse set of applications and domains. This introduces the concept of general-purpose GPUs or GPGPUs, which is the main subject of this course. This course serves as a capstone for the MSCS program.
(1889) Special Topics: Statistical Natural Language Processing Ankur Parikh
Office Hours T 5:10-7:00PM CIWW 512
In this course 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. There will be a focus on corpus-driven methods that make use of supervised and unsupervised machine learning methods and algorithms. We will explore statistical approaches based on graphical models and neural networks. In the course assignments, which will be updated this year to include more neural network modeling, 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 in building real systems.
(2305) Special Topics: Big Data and ML Systems Lakshminarayanan Subramanian
Office Hours T 7:10-9:00PM CIWW 101
This class aims to cover introductory and recent concepts in big data and machine learning systems. The class will focus on a broad spectrum of big data computational problems, algorithms and platforms. The class will be centered around several big data case studies in commercial use to understand big data and machine learning tasks across different domains and provide an in-depth understanding of the problems and algorithms used in each domain. From the computational platform perspective, this class covers popular and widely used commercial platforms including Hadoop and Mapreduce variants, Spark, streaming platforms, Tensorflow, ML platforms (MLBase, MxNet) and GPU platforms. The goal of this class is to educate students about the algorithms and systems techniques used to build scalable big data and ML platforms and how these platforms are used in the real world.
This class covers the following broad topics:
a. Cloud Infrastructure Blocks: AWS, Mapreduce, Hadoop, Yarn
b. Big Data Algorithms: searching and indexing large data sets, implementing standard statistical algorithms, similar items, nearest neighbors, graph mining, network analytics, dimensionality reduction
c. Big Data Computation Platforms: Spark, TensorFlow, MLBase, MLib, MxNet, GPU computing
d. Scalable ML Algorithms: Implementing deep learning algorithms, graph and network analytics, scalable vision algorithms, scalable NLP algorithms
e. Domain Specific Applications and Case Studies: vision analytics engines, NLP analytics engines, search and graph analytics
(17299) Special Topics: Cryptocurrencies and Decentralized Ledgers Joseph Bonneau
Office Hours T 7:10-9:00PM 60 Fifth Ave 150
Bitcoin, Ethereum, and other systems using decentralized ledgers (blockchains) have quickly grown to valuations of tens of billions of dollars. Their future potential has captured the imagination of researchers working on applications as diverse as banking and finance, voting, law, corporate governance, gambling and online gaming. This course will cover the technical concepts underlying these systems: append-only ledgers, decentralized consensus, smart contracts and zero-knowledge proof systems. Students will gain working knowledge of both Bitcoin and Ethereum through practical assignments. The course will also survey the wide variety of potential future applications.
Prerequisites: At least one year of experience with a high-level language such as Pascal, C, C++, or Java. An undergraduate course in cryptography or successful completion of CSCI-GA.3205 or CSCI-GA.3210 strongly recommended.
(18812) Honors Programming Languages Patrick Cousot
Office Hours TR 3:30-4:45PM 60 Fifth Ave C15
The course will introduce a panorama of programming languages concepts underlying the main programming language paradigms (such as imperative, functional, object-oriented, logic, concurrent, and scripting languages) and present in detail the formal methods (code semantics, specification, and verification) used in modern high quality assurance tools for software safety and security. A programming project (design and implementation of an interpreter/compiler for an dynamic object-oriented mini-language) will be programmed in OCaml, a multiparadigm language introduced at the beginning of the course.
Prerequisites: Permission of the instructor for master’s students
(1146) Honors Analysis of Algorithms Subhash Khot
Office Hours TR 9:30-10:45AM CIWW 317
Design of algorithms and data structures. Review of searching, sorting, and fundamental graph algorithms. In-depth analysis of algorithmic complexity, including advanced topics on recurrence equations and NP-complete problems. Advanced topics on lower bounds, randomized algorithms, amortized algorithms, and data structure design as applied to union-find, pattern matching, polynomial arithmetic, network flow, and matching.
Prerequisites: Permission of the instructor for master’s students.
(1801) PhD Seminar: Machine Learning** Mehryar Mohri
Office Hours T 3:45-5:00PM CIWW 1302
Graduate seminars serve as loosely structured forums for exploring research topics from broad areas of computer science. They are designed to foster dialogue by bringing together faculty and students from a given area and to encourage the exchange of ideas. As such, they bridge the gap between more structured course offerings and informal research meetings. Subject matter varies by section.
Prerequisites: Permission of the instructor.
*Indicates controlled enrollment (permission number required for registration). Contact your program advisor.
**Indicates controlled enrollment (permission number required for registration). Contact Santiago Pizzini (email@example.com).
***Indicates controlled enrollment (permission number required for registration). Contact the instructor.