Courses
Start building your summer today by selecting from hundreds of Columbia courses from various topics of interest. Courses for Summer 2026 are now available, with new offerings being added throughout the winter into early spring.
Please note: listing your desired courses in your visiting application does not automatically register you for those courses, nor does it guarantee seat availability.
Key to Course Listings | Course Requirements
Course Options
Pushing back against this trope of homelessness, this course illuminates the robust, vibrant, and multifacetted
qualities of a home in the Diaspora, lasting for over a millennium, that both Ashkenazi and Sephardi
Jews managed to create for themselves in lands, predominantly populated by Slavs. They did so despite the
many constraints of legal and religious discrimination, threats of physical violence, displacement, and countless
forms of exclusion from dominant society. Moving across centuries, countries, and languages, we will revisit the
contributions of the Jews to their so called “host cultures” by way of diverse media—literary and non-fictional
works, memoirs, artistic works, songs, feature and documentary films, journalistic pieces, and more. By the end
of this journey, we will have gained a deeper understanding of the ways in which the Jews and Slavs have been
intimately imbricated and intertwined since times immemorial.
All course materials are available in English. No reading knowledge of Russian or other Slavic languages
is required. Course participants with the reading knowledge of any region-specific language are encouraged to
consult the respective originals, provided by the instructor upon request. This course will be of interest to those
majoring in Slavic and/or Jewish Studies, as well as anyone interested in Comparative Literature, History, Art
History, and Film and Visual Studies.
Note:
Partially fulfilling the Global Core requirement
Instructor
Modality
In-Person
Day/Time
Mo 17:30-20:40
We 17:30-20:40
Enrollment
13 of 30
A general introduction to computer science for science and engineering students interested in majoring in computer science or engineering. Covers fundamental concepts of computer science, algorithmic problem-solving capabilities, and introductory Java programming skills. Assumes no prior programming background. Columbia University students may receive credit for only one of the following two courses: 1004 or 1005.
Instructor
Paul Blaer
Modality
In-Person
Day/Time
Mo 17:30-20:40
We 17:30-20:40
Enrollment
11 of 120
A course in designing, documenting, coding, and testing robust computer software, according to object-oriented design patterns and clean coding practices. Taught in Java.Object-oriented design principles include: use cases; CRC; UML; javadoc; patterns (adapter, builder, command, composite, decorator, facade, factory, iterator, lazy evaluation, observer, singleton, strategy, template, visitor); design by contract; loop invariants; interfaces and inheritance hierarchies; anonymous classes and null objects; graphical widgets; events and listeners; Java's Object class; generic types; reflection; timers, threads, and locks.
Instructor
Chris Murphy
Modality
In-Person
Day/Time
Tu 13:00-16:10
Th 13:00-16:10
Enrollment
11 of 120
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
17 of 120
C programming language and Unix systems programming. Also covers Git, Make, TCP/IP networking basics, C++ fundamentals.
Instructor
Brian Borowski
Modality
In-Person
Day/Time
Tu 17:30-20:40
Th 17:30-20:40
Enrollment
15 of 100
Logic and formal proofs, sequences and summation, mathematical induction, binomial coefficients, elements of finite probability, recurrence relations, equivalence relations and partial orderings, and topics in graph theory (including isomorphism, traversability, planarity, and colorings).
Instructor
Ansaf Salleb-Aouissi
Modality
In-Person
Day/Time
Tu 10:10-13:20
Th 10:10-13:20
Enrollment
17 of 120
Regular languages: deterministic and non-deterministic finite automata, regular expressions. Context-free languages: context-free grammars, push-down automata. Turing machines, the Chomsky hierarchy, and the Church-Turing thesis. Introduction to Complexity Theory and NP-Completeness.
Instructor
Xi Chen
Modality
In-Person
Day/Time
Mo 10:10-13:20
We 10:10-13:20
Enrollment
21 of 120
Mathematical foundations of machine learning: Linear algebra, multivariable calculus, and probability and statistics. Comprehensive review and additional treatment of
relevant topics used in the analysis and design of machine learning models. Preliminary exposure to core algorithms such as linear regression, gradient descent, principal
component analysis, low-rank approximations, and kernel methods.
Instructor
Nakul Verma
Modality
In-Person
Day/Time
Mo 13:00-16:10
We 13:00-16:10
Enrollment
5 of 120
Algorithmic problem-solving and coding skills needed to devise solutions to interview questions for software engineering positions. Solutions are implemented in Python, Java, C, and C++. Approaches include brute-force, hashing, sorting, transform-and-conquer, greedy, and dynamic programming. Focus on experimentation and team work.
Instructor
Brian Borowski
Modality
In-Person
Day/Time
Tu 17:30-20:40
Th 17:30-20:40
Enrollment
10 of 100
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
Tony Dear
Modality
In-Person
Day/Time
Mo 16:20-19:30
We 16:20-19:30
Enrollment
18 of 120
Computational approaches to the analysis, understanding, and generation of natural language text at scale. Emphasis on machine learning techniques for NLP, including deep learning and large language models. Applications may include information extraction, sentiment analysis, question answering, summarization, machine translation, and conversational AI. Discussion of datasets, benchmarking and evaluation, interpretability, and ethical considerations.
Due to significant overlap in content, only one of COMS 4705 or Barnard COMS 3705BC may be taken for credit.
Instructor
Daniel Bauer
Modality
In-Person
Day/Time
Mo 16:10-19:20
We 16:10-19:20
Enrollment
24 of 120
Principles of Ethical Artificial Intelligence across technical and societal dimensions. Combines technical AI and machine learning implementations and ethical analysis. Students will learn to build, audit, and mitigate ethical risks in AI systems using tools like fairness libraries, explainability frameworks, and privacy-preserving techniques. Emphasizes coding, algorithmic critique, and real-world cases.
Topics include: foundations of AI ethics, fairness, interpretability, explainability, accountability, privacy, robustness, alignment, safety, and societal benefit.
Assessments include coding projects, bias auditing assignments, and ethical analysis papers.
Instructor
Ansaf Salleb-Aouissi
Modality
In-Person
Day/Time
Mo 10:10-13:20
We 10:10-13:20
Enrollment
20 of 120