Computer Science
The Computer Science Department advances the role of computing in our lives through research and prepares the next generation of computer scientists with its academic programs.
For questions about specific courses, contact the department.
Courses
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.
Course Number
COMS1004W001Format
In-PersonSession
Session APoints
3 ptsSummer 2025
Times/Location
Mo 17:30-20:40We 17:30-20:40Section/Call Number
001/10748Enrollment
35 of 120Instructor
Paul BlaerData 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.
Course Number
COMS3134W001Format
In-PersonSession
Session BPoints
3 ptsSummer 2025
Times/Location
Mo 17:30-20:40We 17:30-20:40Section/Call Number
001/10747Enrollment
40 of 120Instructor
Paul BlaerC programming language and Unix systems programming. Also covers Git, Make, TCP/IP networking basics, C++ fundamentals.
Course Number
COMS3157W001Format
In-PersonSession
Session APoints
4 ptsSummer 2025
Times/Location
Tu 17:30-20:40Th 17:30-20:40Section/Call Number
001/10749Enrollment
38 of 120Instructor
Brian BorowskiLogic 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).
Course Number
COMS3203W001Format
In-PersonSession
Session APoints
4 ptsSummer 2025
Times/Location
Tu 10:10-13:20Th 10:10-13:20Section/Call Number
001/10750Enrollment
50 of 120Instructor
Ansaf Salleb-AouissiRegular 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.
Course Number
COMS3261W001Format
In-PersonSession
Session APoints
3 ptsSummer 2025
Times/Location
Mo 10:10-13:20We 10:10-13:20Section/Call Number
001/10751Enrollment
22 of 120Instructor
Xi ChenMathematical 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.
Course Number
COMS3770W001Format
In-PersonSession
Session APoints
3 ptsSummer 2025
Times/Location
Tu 17:30-20:40Th 17:30-20:40Section/Call Number
001/10757Enrollment
11 of 120Instructor
Tony DearSamuel DengCourse Number
COMS3995W001Format
In-PersonSession
Session BPoints
3 ptsSummer 2025
Times/Location
Mo 17:30-20:40We 17:30-20:40Section/Call Number
001/11079Enrollment
9 of 120Instructor
Brian BorowskiPrior 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.
Course Number
COMS4701W001Format
In-PersonSession
Session APoints
3 ptsSummer 2025
Times/Location
Mo 16:10-19:20We 16:10-19:20Section/Call Number
001/10752Enrollment
42 of 120Instructor
Tony DearPrior 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.
Course Number
COMS4701WV01Format
On-Line OnlySession
Session APoints
3 ptsSummer 2025
Section/Call Number
V01/11527Enrollment
5 of 99Instructor
Tony DearComputational 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.
Course Number
COMS4705W001Format
In-PersonSession
Session BPoints
3 ptsSummer 2025
Times/Location
Tu 16:10-19:20Th 16:10-19:20Section/Call Number
001/10754Enrollment
62 of 120Instructor
Daniel BauerComputational 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.
Course Number
COMS4705WV01Format
On-Line OnlySession
Session BPoints
3 ptsSummer 2025
Section/Call Number
V01/11557Enrollment
10 of 99Instructor
Daniel BauerTopics 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.
Course Number
COMS4771W001Format
In-PersonSession
Session BPoints
3 ptsSummer 2025
Times/Location
Tu 13:00-16:10Th 13:00-16:10Section/Call Number
001/10755Enrollment
36 of 120Instructor
Nakul VermaTopics 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.
Course Number
COMS4771WV01Format
On-Line OnlySession
Session BPoints
3 ptsSummer 2025
Section/Call Number
V01/11528Enrollment
3 of 99Instructor
Nakul VermaSelected topics in computer science. Content and prerequisites vary between sections and semesters. May be repeated for credit. Check “topics course” webpage on the department website for more information on each section.
Course Number
COMS4995W002Format
In-PersonSession
Session APoints
3 ptsSummer 2025
Times/Location
Tu 17:30-20:40Th 17:30-20:40Section/Call Number
002/10804Enrollment
15 of 120Instructor
Daniel BauerZiwei GongSelected topics in computer science. Content and prerequisites vary between sections and semesters. May be repeated for credit. Check “topics course” webpage on the department website for more information on each section.
Course Number
COMS4995W003Format
In-PersonSession
Session APoints
3 ptsSummer 2025
Times/Location
Mo 10:10-13:20We 10:10-13:20Section/Call Number
003/11078Enrollment
16 of 120Instructor
Ansaf Salleb-AouissiSelected topics in computer science. Content and prerequisites vary between sections and semesters. May be repeated for credit. Check “topics course” webpage on the department website for more information on each section.
Course Number
COMS4995WV03Format
On-Line OnlySession
Session APoints
3 ptsSummer 2025
Section/Call Number
V03/11529Enrollment
16 of 99Instructor
Ansaf Salleb-AouissiPrerequisites: (COMS W3134 or COMS W3136COMS W3137) and (COMS W3203) Introduction to the design and analysis of efficient algorithms. Topics include models of computation, efficient sorting and searching, algorithms for algebraic problems, graph algorithms, dynamic programming, probabilistic methods, approximation algorithms, and NP-completeness.
Course Number
CSOR4231W001Format
In-PersonSession
Session APoints
3 ptsSummer 2025
Times/Location
Tu 13:00-16:10Th 13:00-16:10Section/Call Number
001/10756Enrollment
18 of 120Instructor
Nakul VermaPrerequisites: (COMS W3134 or COMS W3136COMS W3137) and (COMS W3203) Introduction to the design and analysis of efficient algorithms. Topics include models of computation, efficient sorting and searching, algorithms for algebraic problems, graph algorithms, dynamic programming, probabilistic methods, approximation algorithms, and NP-completeness.
Course Number
CSOR4231WV01Format
On-Line OnlySession
Session APoints
3 ptsSummer 2025
Section/Call Number
V01/11531Enrollment
12 of 99Instructor
Nakul VermaCourse Number
ENGI0001ES01Format
In-PersonSession
Session XPoints
0 ptsSummer 2025
Times/Location
Mo 09:00-17:00Tu 09:00-17:00We 09:00-17:00Th 09:00-17:00Fr 09:00-17:00Section/Call Number
S01/11681Enrollment
25 of 50Instructor
Sinisa VukelicCourse Number
ENGI0001ES02Format
In-PersonSession
Session BPoints
0 ptsSummer 2025
Times/Location
Mo 09:00-17:00Tu 09:00-17:00We 09:00-17:00Th 09:00-17:00Fr 09:00-17:00Section/Call Number
S02/11682Enrollment
22 of 30Instructor
Sinisa VukelicCourse Number
ENGI0002ES01Format
In-PersonSession
Session XPoints
0 ptsSummer 2025
Section/Call Number
S01/12085Enrollment
24 of 40Instructor
Paul BlaerCourse Number
ENGI0002ES02Format
In-PersonSession
Session XPoints
0 ptsSummer 2025
Section/Call Number
S02/12086Enrollment
32 of 40Instructor
Daniel BauerCourse Number
ENGI0003ES01Format
In-PersonSession
Session XPoints
0 ptsSummer 2025
Section/Call Number
S01/12087Enrollment
27 of 30Instructor
Lauren HeckelmanCourse Number
ENGI0003ES02Format
In-PersonSession
Session XPoints
0 ptsSummer 2025
Section/Call Number
S02/12088Enrollment
27 of 40Instructor
Lauren HeckelmanCourse Number
ENGI0004ES01Format
In-PersonSession
Session XPoints
0 ptsSummer 2025
Section/Call Number
S01/12090Enrollment
25 of 40Instructor
Christopher ChenCourse Number
ENGI0004ES02Format
In-PersonSession
Session XPoints
0 ptsSummer 2025
Section/Call Number
S02/12089Enrollment
30 of 30Instructor
Neil DolinskiCourse Number
ENGI0006ES02Format
In-PersonSession
Session XPoints
0 ptsSummer 2025
Section/Call Number
S02/12091Enrollment
23 of 30Instructor
David VallancourtDATA SCIENCE: Decoding the Secrets of Data
Course Number
ENGI0008ES02Format
In-PersonSession
Session BPoints
0 ptsSummer 2025
Times/Location
Mo 09:00-17:00Tu 09:00-17:00We 09:00-17:00Th 09:00-17:00Fr 09:00-17:00Section/Call Number
S02/11673Enrollment
22 of 30Instructor
Yi ZhangHow (not) to bet: Demystifying probability
Course Number
ENGI0009ES01Format
In-PersonSession
Session BPoints
0 ptsSummer 2025
Times/Location
Mo 09:00-17:00Tu 09:00-17:00We 09:00-17:00Th 09:00-17:00Fr 09:00-17:00Section/Call Number
S01/11675Enrollment
13 of 30Instructor
Daniel LackerCourse Number
ENGI0010ES01Format
In-PersonSession
Session BPoints
0 ptsSummer 2025
Times/Location
Mo 09:00-17:00Tu 09:00-17:00We 09:00-17:00Th 09:00-17:00Fr 09:00-17:00Section/Call Number
S01/11669Enrollment
23 of 30Course Number
ENGI0010ES02Format
In-PersonSession
Session BPoints
0 ptsSummer 2025
Times/Location
Mo 09:00-17:00Tu 09:00-17:00We 09:00-17:00Th 09:00-17:00Fr 09:00-17:00Section/Call Number
S02/11670Enrollment
17 of 30Instructor
Yevgeniy YesilevskiyMath in Action: Operations Research for Social Good
Course Number
ENGI0011ES02Format
In-PersonSession
Session BPoints
0 ptsSummer 2025
Times/Location
Mo 09:00-17:00Tu 09:00-17:00We 09:00-17:00Th 09:00-17:00Fr 09:00-17:00Section/Call Number
S02/11674Enrollment
21 of 30Instructor
Yaren KayaProduct Studio: From Idea to Prototype
Course Number
ENGI0012ES01Format
In-PersonSession
Session BPoints
0 ptsSummer 2025
Times/Location
Mo 09:00-17:00Tu 09:00-17:00We 09:00-17:00Th 09:00-17:00Fr 09:00-17:00Section/Call Number
S01/11671Enrollment
23 of 30Instructor
Megan HeenanProduct Studio: From Idea to Prototype
Course Number
ENGI0012ES02Format
In-PersonSession
Session BPoints
0 ptsSummer 2025
Times/Location
Mo 09:00-17:00Tu 09:00-17:00We 09:00-17:00Th 09:00-17:00Fr 09:00-17:00Section/Call Number
S02/11672Enrollment
41 of 30Sustainable Engineering
Course Number
ENGI0013ES01Format
In-PersonSession
Session XPoints
0 ptsSummer 2025
Section/Call Number
S01/12092Enrollment
32 of 30Instructor
Robert FarrautoSustainable Engineering
Course Number
ENGI0013ES02Format
In-PersonSession
Session XPoints
0 ptsProgram components include experience in working on genuine engineering research projects, research skills and college prep workshops, science communications workshops, and additional supplemental seminars and opportunities.
Course Number
ENGI0030E001Format
In-PersonSession
Session BPoints
0 ptsSummer 2025
Times/Location
Mo 09:15-10:15Tu 09:15-10:15We 09:15-10:15Th 09:15-10:15Fr 09:15-10:15Section/Call Number
001/11676Enrollment
0 of 50Instructor
Sinisa VukelicEnrollment in this course acknowledges the student’s participation in an industry project.
Working with a mentor (alumni, adjunct faculty, or industry partner) in relevant industry, students will work with a team of 3-5 students on an identified project. The career placement officer can assist in administering the advertisement, selection and recruitment processes. Students can enroll in ENGI E4700 for zero credit, zero fees; students who wish to earn academic credit can enroll in Fieldwork. The specific requirements for the project is defined by the mentor. Groups should meet with their mentor on a weekly basis for at least 30 minutes. Students are also encouraged to submit bi-weekly progress reports to the mentor. Upon completion of the project (end of July/beginning of August), each team will participate in an industry project showcase to present their project and deliverables. Students will receive coaching on presentation skills from the professional development and leadership and the career placement officer teams.
Course Number
ENGI4700E009Session
Session XPoints
0 ptsSummer 2025
Section/Call Number
009/11927Enrollment
0 of 100Instructor
Carmen NgDavid FitzgeraldChris LeeCindy BorgenSara YllescasCindy MejiaJiaqi LiChristine ChanLucy MahbubWorking with a faculty member and a team of 3-5 graduate or undergraduate students, students will have the opportunity to work on a small research project. Students can enroll ENGI E3900/4900 for zero credit, zero fees; students who wish to earn academic credit can enroll in the faculty member’s independent research course or Fieldwork. Specific requirements for the project are defined by the faculty members. Research groups meet weekly with their faculty member. Students are also encouraged to submit bi-weekly progress reports to the faculty member. Upon completion of the research project (end of July/beginning of August), each research team will participate in a research symposium to present their research and deliverables. Note: Enrollment in this course acknowledges the student’s participation in research with an Engineering faculty member.
Course Number
ENGI4900E006Format
In-PersonSession
Session XPoints
0 ptsSummer 2025
Section/Call Number
006/11277Enrollment
3 of 100Instructor
Taylor ReyesRobert KramerWorking with a faculty member and a team of 3-5 graduate or undergraduate students, students will have the opportunity to work on a small research project. Students can enroll ENGI E3900/4900 for zero credit, zero fees; students who wish to earn academic credit can enroll in the faculty member’s independent research course or Fieldwork. Specific requirements for the project are defined by the faculty members. Research groups meet weekly with their faculty member. Students are also encouraged to submit bi-weekly progress reports to the faculty member. Upon completion of the research project (end of July/beginning of August), each research team will participate in a research symposium to present their research and deliverables. Note: Enrollment in this course acknowledges the student’s participation in research with an Engineering faculty member.
Course Number
ENGI4900E008Format
In-PersonSession
Session XPoints
0 ptsSummer 2025
Section/Call Number
008/11925Enrollment
4 of 100Instructor
Zoran KosticWorking with a faculty member and a team of 3-5 graduate or undergraduate students, students will have the opportunity to work on a small research project. Students can enroll ENGI E3900/4900 for zero credit, zero fees; students who wish to earn academic credit can enroll in the faculty member’s independent research course or Fieldwork. Specific requirements for the project are defined by the faculty members. Research groups meet weekly with their faculty member. Students are also encouraged to submit bi-weekly progress reports to the faculty member. Upon completion of the research project (end of July/beginning of August), each research team will participate in a research symposium to present their research and deliverables. Note: Enrollment in this course acknowledges the student’s participation in research with an Engineering faculty member.
Course Number
ENGI4900E009Session
Session XPoints
0 ptsSummer 2025
Section/Call Number
009/11926Enrollment
0 of 100Instructor
Carmen NgDavid FitzgeraldChris LeeCindy BorgenSara YllescasCindy MejiaJiaqi LiChristine ChanLucy MahbubEnglish communication proficiency is important for academic achievement and career success. Columbia Engineering provides English communication instruction for students who would like to improve their communication skills in English. In a small group setting (15-20 students), enrollees will obtain opportunities to interact with the instructor and fellow classmates to improve communication skills.
Course Number
ENGI5000E001Format
In-PersonSession
Session APoints
0 ptsSummer 2025
Times/Location
Mo 13:00-14:40Tu 13:00-14:40We 13:00-14:40Th 13:00-14:40Section/Call Number
001/11323Enrollment
2 of 18Instructor
Hyoseon LeeEnglish communication proficiency is important for academic achievement and career success. Columbia Engineering provides English communication instruction for students who would like to improve their communication skills in English. In a small group setting (15-20 students), enrollees will obtain opportunities to interact with the instructor and fellow classmates to improve communication skills.