Courses
Start building your summer today by selecting from hundreds of Columbia courses from various topics of interest. Courses for Summer 2024 are now available, with new offerings being added throughout the winter into early spring. Key to Course Listings | Course Requirements
Course Options
Instructor
Jan Janak
Modality
In-Person
Day/Time
Mo 17:30-20:40
We 17:30-20:40
Enrollment
24 of 60
Data types and structures: arrays, stacks, singly and doubly linked lists, queues, trees, sets, and graphs. Programming techniques for processing such structures: sorting and searching, hashing, garbage collection. Storage management. Rudiments of the analysis of algorithms. Taught in Java. Note: Due to significant overlap, students may receive credit for only one of the following three courses: COMS W3134, COMS W3136, COMS W3137.
Instructor
Paul Blaer
Modality
In-Person
Day/Time
Mo 17:30-20:40
We 17:30-20:40
Enrollment
42 of 99
Instructor
Brian Borowski
Modality
In-Person
Day/Time
Tu 17:30-20:40
Th 17:30-20:40
Enrollment
39 of 99
Instructor
Ansaf Salleb-Aouissi
Modality
In-Person
Day/Time
Tu 10:10-13:20
Th 10:10-13:20
Enrollment
38 of 99
Instructor
Xi Chen
Modality
In-Person
Day/Time
Mo 13:00-16:10
We 13:00-16:10
Enrollment
48 of 99
An introduction to modern cryptography, focusing on the complexity-theoretic foundations of secure computation and communication in adversarial environments; a rigorous approach, based on precise definitions and provably secure protocols. Topics include private and public key encryption schemes, digital signatures, authentication, pseudorandom generators and functions, one-way functions, trapdoor functions, number theory and computational hardness, identification and zero knowledge protocols.
Instructor
Periklis Papakonstantinou
Modality
In-Person
Day/Time
Mo 10:10-13:20
We 10:10-13:20
Enrollment
17 of 50
Instructor
Tony Dear
Modality
In-Person
Day/Time
Tu 16:10-19:20
Th 16:10-19:20
Enrollment
56 of 99
Prior knowledge of Python is recommended. Provides a broad understanding of the basic techniques for building intelligent computer systems. Topics include state-space problem representations, problem reduction and and-or graphs, game playing and heuristic search, predicate calculus, and resolution theorem proving, AI systems and languages for knowledge representation, machine learning and concept formation and other topics such as natural language processing may be included as time permits.
Instructor
Daniel Bauer
Modality
In-Person
Day/Time
Mo 16:10-19:20
We 16:10-19:20
Enrollment
41 of 99
Computational approaches to natural language generation and understanding. Recommended preparation: some previous or concurrent exposure to AI or Machine Learning. Topics include information extraction, summarization, machine translation, dialogue systems, and emotional speech. Particular attention is given to robust techniques that can handle understanding and generation for the large amounts of text on the Web or in other large corpora. Programming exercises in several of these areas.
Instructor
Daniel Bauer
Modality
On-Line Only
Enrollment
29 of 99
Instructor
Nakul Verma
Modality
In-Person
Day/Time
Tu 13:00-16:10
Th 13:00-16:10
Enrollment
44 of 99
Topics from generative and discriminative machine learning including least squares methods, support vector machines, kernel methods, neural networks, Gaussian distributions, linear classification, linear regression, maximum likelihood, exponential family distributions, Bayesian networks, Bayesian inference, mixture models, the EM algorithm, graphical models and hidden Markov models. Algorithms implemented in MATLAB.