Computer Science
The Computer Science Department:
Department website: http://www.cs.columbia.edu
Office location: 450 Mudd
Office contact: ugadvising@cs.columbia.edu
Director of Undergraduate Studies: Dr. Jae Woo Lee, 715 CEPSR; 2129397066; jae@cs.columbia.edu
Undergraduate Administrator: CS Advising, ugadvising@cs.columbia.edu
The Computer Science Major
Students study a common core of fundamental topics, supplemented by a program of six electives that provides a high degree of flexibility. Three of the electives are chosen from a list of upperlevel courses that represent area foundations within computer science. The remaining electives are selected from the complete list of upperlevel computer science courses. Students are encouraged to work with their faculty advisor to create a plan tailored to fit their goals and interests. The department webpage provides several example programs for students interested in a variety of specific areas in computer science.
Our website is always the most current in terms of information and has many FAQs for students. Please view this here: cs.columbia.edu and contact ugadvising@cs.columbia.edu with any questions.
Student Advising
Consulting Advisers
Undergraduate students will be assigned a CS Faculty Advisor from the list on the CS website  https://www.cs.columbia.edu/education/undergraduate/advisors/. Students will typically have the same advisor throughout their time in the program. However, students are encouraged to check this list at the start of every term to ensure their advisor remains the same. To reach out to your CS Faculty Advisor, please email first or visit during office hours.
Enrolling in Classes
Computer Science Department courses are needed by many student populations and are in high demand. To facilitate all COMS students getting the courses they need and distribute seats fairly, please refer to our policy  https://www.cs.columbia.edu/cscourseregistrationpolicy/
Preparing for Graduate Study
The department offers a number of options at the graduate level, including the MS Express. Please refer to our FAQs  https://www.cs.columbia.edu/education/admissions8/  or email msadmissions@cs.colubia.edu with any questions.
Coursework Taken Outside of Columbia
Advanced Placement
The department grants 3 points for a score of 4 or 5 on the AP Computer Science A exam, along with an exemption from COMS W1004 Introduction to Computer Science and Programming in Java. However, we recommend that you take COMS W1004 before taking COMS W3134/W3137 Data Structures if you received a score of 4 or have not programmed in Java recently.
Barnard College Courses
Any course offered by the Computer Science @Barnard department can count towards degree requirements. Please refer to the major and minor program information pages for specific information.
Transfer Courses
Up to four transfer courses are accepted toward the major. Up to two transfer courses are accepted toward the minor. Calculus, linear algebra, and probability/statistics courses can be transferred in addition to the four/twocourse limits. Each course must be approved as equivalent by the faculty who teaches it at Columbia. Please refer to the guide here  https://www.cs.columbia.edu/education/undergraduate/#sec8
Study Abroad Courses
If you are considering studying abroad, please consult with the CS Advisor as soon as possible. Each course for potential incorporation into your CS major or minor must be approved as equivalent by the faculty who teaches it at Columbia.
Summer Courses
Any Computer Science or approved cognate course offered during the summer session will count towards the degree, with the exception of onlineonly courses, which do not count towards degree requirements.
Undergraduate Research and Senior Thesis
Undergraduate Research in Courses
COMS W3998 UNDERGRAD PROJECTS IN COMPUTER SCIENCE. 1.003.00 points.
Prerequisites: Approval by a faculty member who agrees to supervise the work.
Independent project involving laboratory work, computer programming, analytical investigation, or engineering design. May be repeated for credit. Consult the department for section assignment.
COMS W4901 Projects in Computer Science. 13 points.
Prerequisites: Approval by a faculty member who agrees to supervise the work.
A secondlevel independent project involving laboratory work, computer programming, analytical investigation, or engineering design. May be repeated for credit, but not for a total of more than 3 points of degree credit. Consult the department for section assignment.
Senior Thesis Coursework and Requirements
A thesis is not a requirement for the major or minor.
COMS W3902 UNDERGRADUATE THESIS. 0.006.00 points.
Prerequisites: Agreement by a faculty member to serve as thesis adviser.
An independent theoretical or experimental investigation by an undergraduate major of an appropriate problem in computer science carried out under the supervision of a faculty member. A formal written report is mandatory and an oral presentation may also be required. May be taken over more than one term, in which case the grade is deferred until all 6 points have been completed. Consult the department for section assignment
Undergraduate Research Outside of Courses
Laboratory Facilities
The department has wellequipped lab areas for research in computer graphics, computeraided digital design, computer vision, databases and digital libraries, data mining and knowledge discovery, distributed systems, mobile and wearable computing, natural language processing, networking, operating systems, programming systems, robotics, user interfaces, and realtime multimedia.
Research labs contain several large Linux and Solaris clusters; Puma 500 and IBM robotic arms; a UTAHMIT dexterous hand; an Adept1 robot; three mobile research robots; a realtime defocus range sensor; interactive 3D graphics workstations with 3D position and orientation trackers; prototype wearable computers, wallsized stereo projection systems; seethrough headmounted displays; a networking testbed with three Cisco 7500 backbone routers, traffic generators; an IDS testbed with secured LAN, Cisco routers, EMC storage, and Linux servers; and a simulation testbed with several Sun servers and Cisco Catalyst routers. The department uses a SIP IP phone system. The protocol was developed in the department.
The department's computers are connected via a switched 1Gb/s Ethernet network, which has direct connectivity to the campus OC3 Internet and internet 2 gateways. The campus has 802.11b/g wireless LAN coverage.
The research facility is supported by a fulltime staff of professional system administrators and programmers.
Participating in Research Projects
Students can reach out to professors whose research areas are of interest to them. Professors will typically require that students have completed the relevant coursework covering the background knowledge and skills.
Once a faculty member agrees to supervise the student’s research work, the student will register for the professor’s section of COMS W3998 or W4901.
COMS W3998 UNDERGRAD PROJECTS IN COMPUTER SCIENCE. 1.003.00 points.
Prerequisites: Approval by a faculty member who agrees to supervise the work.
Independent project involving laboratory work, computer programming, analytical investigation, or engineering design. May be repeated for credit. Consult the department for section assignment
COMS W4901 Projects in Computer Science. 13 points.
Prerequisites: Approval by a faculty member who agrees to supervise the work.
A secondlevel independent project involving laboratory work, computer programming, analytical investigation, or engineering design. May be repeated for credit, but not for a total of more than 3 points of degree credit. Consult the department for section assignment.
Department Honors and Prizes
Department Honors
The Computer Science Department does not award departmental honors.
Academic Prizes
Jonathan L. Gross Award for Academic Excellence: This award was established in 2017 in honor of the much loved Professor Emeritus Jonathan Gross. Each year a cash gift is awarded to one graduating masters student and to one graduating senior from each of the four undergraduate schools served by the Department of Computer Science.
Theodore R. Bashkow Award: Presented to a computer science senior who has excelled in independent projects. This is awarded in honor of Professor Theodore R. Bashkow, whose contributions as a researcher, teacher, and consultant have significantly advanced the state of the art of computer science.
Andrew P. Kosoresow Memorial Award for Excellence in Teaching and Service: Awarded for outstanding contributions to teaching in the Department of Computer Science and exemplary service to the Department and its mission.
Computer Science Scholarship Award: A cash prize awarded to two B.A. and two B.S. degree candidates for outstanding academic achievement in computer science.
Russell C. Mills Award: This annual award, established by the computer science department in 1992 in memory of Russell C. Mills, is a cash prize given to a computer science major who has exhibited excellence in the area of computer science.
Other Important Information
See the Requirements section for the policies on double counting and D grades.
Professors
Peter N. Belhumeur
Steven M. Bellovin
Luca Carloni
Xi Chen
Steven K. Feiner
Luis Gravano
Julia B. Hirschberg
Gail E. Kaiser
John R. Kender
Tal Malkin
Kathleen R. McKeown
Vishal Misra
Shree Kumar Nayar
Jason Nieh
Christos Papadimitriou
Itsik Pe'er
Toniann Pitassi
Kenneth A. Ross
Tim Roughgarden
Daniel S. Rubenstein
Henning G. Schulzrinne
Rocco A. Servedio
Simha Sethumadhavan
Salvatore J. Stolfo
Bjarne Stroustrup
Vladimir Vapnik
Jeannette Wing
Junfeng Yang
Mihalis Yannakakis
Richard Zemei
Associate Professors
Alexandr Andoni
Elias Bareinboim
Augustin Chaintreau
Stephen A. Edwards
Roxana Geambasu
Daniel Hsu
Suman Jana
Martha Allen Kim
Baishakhi Ray
Carl Vondrick
Eugene Wu
Zhou Yu
Changxi Zheng
Xia Zhou
Assistant Professors
Josh Alman
Lydia Chilton
Ronghui Gu
Kostis Kaffes
David Knowles
Brian Smith
Henry Yuen
Senior Lecturer in Discipline
 Paul Blaer
 Adam Cannon
 Jae Woo Lee
Lecturer in Discipline
Daniel Bauer
Brian Borowski
Tony Dear
Associated Faculty Joint
Andrew Blumberg
ShihFu Chang
Feniosky PeñaMora
Clifford Stein
Affiliates
Shipra Agrawal
Mohammed AlQuraishi
Elham Azizi
Paolo Blikstein
Asaf Cidon
Matei Ciocarlie
Rachel Cummings
Noemie Elhadad
Javad Ghaderi
Gamze Gursoy
Xiaofan Jiang
Ethan KatzBassett
Hod Lipson
Smaranda Muresan
Liam Paninski
Brian Plancher
Mark Santolucito
Lisa Soros
Barbara Tversky
Venkat Venkatasubramanian
Rebecca Wright
Gil Zussman
Senior Research Scientists
Gaston Ormazabal
Moti Yung
Emeritus
Alfred V. Aho
Peter K. Allen
Edward G. Coffman Jr.
Zvi Galil
Jonathan L. Gross
Steven M. Nowick
Stephen H. Unger
Henryk Wozniakowski
Yechiam Yemini
Guidance for Undergraduate Students in the Department
Program Planning for all Students
The following requirements are new as of the academic year 20232024. Students who declared a CS major in the academic year 20222023 or earlier have the option to follow the old requirements. The old requirements are noted on the Undergraduate Programs pages of the Computer Science Department website (https://www.cs.columbia.edu/education/undergraduate/).
Please note that the information on the department website is more uptodate than the information in the archived Bulletins. Students with questions about which requirements to follow are advised to talk with ugadvising@cs.columbia.edu.
Restrictions on overlapping courses
Students may receive credit for only one of the following two courses:

COMS W1004 Introduction to Computer Science and Programming in Java

COMS W1005 Introduction to Computer Science and Programming in MATLAB.
Students may receive credit for only one of the following three courses:

COMS W3134 Data Structures in Java

COMS W3136 ESSENTIAL DATA STRUCTURES

COMS W3137 HONORS DATA STRUCTURES ＆ ALGOL
COMS W1005 and COMS W3136 cannot be counted towards the Computer Science major, minor, and concentration.
No more than 6 points of project/thesis courses (COMS W3902, W3998, W4901) can count toward the major. COMS W3999 Fieldwork cannot be used as a CS Elective.
No more than one course from each set below may be applied towards the computer science major:

IEOR E3658, STAT UN1201, MATH UN2015

MATH UN2015, MATH UN2010, APAM E3101, COMS W3251

COMS W4771, COMS W4721
Double Counting
Doublecounting policies are to be construed within the larger doublecounting policy of the student's home school. Doublecounting policies are detailed on each School's Bulletin and/or Catalog.
The CS department allows the following courses in the CS Core and Mathematics requirement to be doublecounted with another major, minor, or concentration. No other courses can be doublecounted with another program.

COMS W1004

Any calculus courses (including Honors Math A and B)

One Linear Algebra course

One Probability/Statistics course
Grading
A maximum of one course worth no more than 4 points passed with a grade of D may be counted toward the major or minor.
Course Numbering Structure
The first digit indicates the level of the course, as follows:
0 Course that cannot be credited toward any degree
1 Undergraduate course
2 Undergraduate course, intermediate
3 Undergraduate course, advanced
4 Graduate course that is open to qualified undergraduates
6 Graduate course
8 Graduate course, advanced
9 Graduate research course or seminar
Guidance for FirstYear Students
PreIntroductory Courses
COMS W1004 is the first course in the Computer Science major curriculum, and it does not require any previous computing experience. Before taking COMS W1004, however, students have an option to start with one of the preintroductory courses: ENGI E1006 or COMS W1002.
ENGI E1006 Introduction to Computing for Engineers and Applied Scientists is a general introduction to computing for STEM students. ENGI E1006 is in fact a required course for all engineering students. COMS W1002 Computing in Context is a course primarily intended for humanities majors, but it also serves as a preintroductory course for CS majors. ENGI E1006 and COMS W1002 do not count towards Computer Science major.
Guidance for Transfer Students
Up to four transfer courses are accepted toward the major. Up to two transfer courses are accepted toward the minor or concentration. Calculus, linear algebra, and probability/statistics courses can be transferred in addition to the four/twocourse limits.
Undergraduate Programs of Study
Major in Computer Science
All majors should confer with their program adviser each term to plan their programs of study. Students considering a major in computer science are encouraged to talk to a program adviser during their first or second year. The Computer Science major is composed of four basic components: The Mathematics Requirement, the Computer Science Core, the Area Foundation Courses, and the Computer Science Electives.
Mathematics Requirement (611 points)
Code  Title  Points 

Calculus Requirement: Select one of the following courses:  
MATH UN1201  CALCULUS III  
MATH UN1205  ACCELERATED MULTIVARIABLE CALC  
APMA E2000  MULTV. CALC. FOR ENGI ＆ APP SCI  
Note that MATH UN1201 (Calculus III) requires Calculus I as a prerequisite but does NOT require Calculus II. MATH UN1205 and APMA E2000, however, require both Calculus I and Calculus II as prerequisites. 
Code  Title  Points 

Linear Algebra Requirement: Select one of the following courses:  
COMS W3251  COMPUTATIONAL LINEAR ALGEBRA (recommended)  
MATH UN2010  LINEAR ALGEBRA  
MATH UN2015  Linear Algebra and Probability  
MATH UN2020  Honors Linear Algebra  
APMA E2101  INTRO TO APPLIED MATHEMATICS  
APMA E3101  APPLIED MATH I: LINEAR ALGEBRA 
Code  Title  Points 

Probability / Statistics Requirement: Select one of the following courses:  
MATH UN2015  Linear Algebra and Probability  
IEOR E3658  PROBABILITY FOR ENGINEERS  
STAT UN1201  CALCBASED INTRO TO STATISTICS  
STAT GU4001  INTRODUCTION TO PROBABILITY AND STATISTICS  
NOTE: Math 2015 Linear Algebra and Probability may simultaneously satisfy both linear algebra and probability requirements without the need to take additional classes thus reducing the total number of points required. 
Preintro course (Optional, 34 points)
Code  Title  Points 

ENGI E1006  INTRO TO COMP FOR ENG/APP SCI (recommended but not required)  
or COMS W1002  COMPUTING IN CONTEXT 
Computer Science Core (2021 points):
Code  Title  Points 

First Year  
COMS W1004  Introduction to Computer Science and Programming in Java  
or COMS W1007  
Sophomore Year  
COMS W3134  Data Structures in Java  
or COMS W3137  HONORS DATA STRUCTURES ＆ ALGOL  
COMS W3157  ADVANCED PROGRAMMING  
COMS W3203  DISCRETE MATHEMATICS  
Junior and Senior Year  
Complete the remaining required core courses:  
COMS W3261  COMPUTER SCIENCE THEORY  
CSEE W3827  FUNDAMENTALS OF COMPUTER SYSTS 
Area Foundation Courses (9 to 12 points):
Select three from the following list:
Code  Title  Points 

COMS W4111  INTRODUCTION TO DATABASES  
COMS W4113  FUNDLARGESCALE DIST SYSTEMS  
COMS W4115  PROGRAMMING LANG ＆ TRANSLATORS  
COMS W4118  OPERATING SYSTEMS I  
COMS W4119  COMPUTER NETWORKS  
COMS W4152  Engineering SoftwareasaService  
COMS W4156  ADVANCED SOFTWARE ENGINEERING  
COMS W4160  COMPUTER GRAPHICS  
COMS W4167  COMPUTER ANIMATION  
COMS W4170  USER INTERFACE DESIGN  
COMS W4181  SECURITY I  
CSOR E4231  ANALYSIS OF ALGORITHMS I  
COMS W4236  INTROCOMPUTATIONAL COMPLEXITY  
COMS W4701  ARTIFICIAL INTELLIGENCE  
COMS W4705  NATURAL LANGUAGE PROCESSING  
COMS W4731  Computer Vision I: First Principles  
COMS W4733  COMPUTATIONAL ASPECTS OF ROBOTICS  
CBMF W4761  COMPUTATIONAL GENOMICS  
COMS W4771  MACHINE LEARNING  
CSEE W4824  COMPUTER ARCHITECTURE  
CSEE W4868  SYSTEMONCHIP PLATFORMS 
Computer Science Electives (9 to 12 points)
Any three COMS courses or jointly offered computer science courses such as CSXX or XXCS course that are worth at least 3 points and are at the 3000 level or above. This includes 3000level courses offered by Barnard CS.
Restrictions
No more than 6 points of project/thesis courses (COMS W3902, W3998, W4901) can count toward the major. COMS W3999 Fieldwork cannot be used as a CS Elective.
No more than one course from each set below may be applied towards the computer science major:

IEOR E3658, STAT UN1201, MATH UN2015

MATH UN2015, MATH UN2010, APAM E3101, COMS W3251

COMS W4771, COMS W4721
Major in Computational Biology
For a description of the joint major in computer science—Biology, see the Biological Sciences section in this bulletin.
Major in Computer Science  Mathematics
For a description of the joint major in computer science—mathematics, see the Mathematics section in this bulletin.
Major in Information Science
The major in information science requires a minimum of 33 points, including a core requirement of five courses. Adjustments were made to the course lists below in March 2022.
The elective courses must be chosen with a faculty adviser to focus on the modeling and use of information within the context of a disciplinary theme. After discussing potential selections, students prepare a proposal of study that must be approved by the faculty adviser. In all cases, the six courses must be at the 3000 level or above, with at least three courses chosen from computer science. Following are some example programs. For more examples or templates for the program proposal, see a faculty adviser.
Note: In most cases, additional courses will be necessary as prerequisites in order to take some of the elective courses. This will depend on the student's proposed program of study.
Core Requirement
Code  Title  Points 

COMS W1001  Introduction to Information Science  
or COMS W1002 Computing in Context  
COMS W1004  Introduction to Computer Science and Programming in Java  
COMS W3107  Clean ObjectOriented Design  
COMS W3134  Data Structures in Java  
STAT GU4001  INTRODUCTION TO PROBABILITY AND STATISTICS 
Following are some suggested programs of instruction:
Information Science and Contemporary Society
Students may focus on how humans use technology and how technology has changed society.
The requirements include:
Code  Title  Points 

COMS W4111  INTRODUCTION TO DATABASES  
COMS W4170  USER INTERFACE DESIGN  
COMS W4701  ARTIFICIAL INTELLIGENCE  
COMS W3410  COMPUTERS AND SOCIETY  
SOCI UN3010  METHODS FOR SOCIAL RESEARCH  
SOCI UN3960  SEMINAR  PROBLEMS OF LAW ＆ SOCIETY 
Information Science and the Economy
Students may focus on understanding information modeling together with existing and emerging needs in economics and finance as well as algorithms and systems to address those needs.
The requirements include:
Code  Title  Points 

COMS W4111  INTRODUCTION TO DATABASES  
COMS W4701  ARTIFICIAL INTELLIGENCE  
COMS W4771  MACHINE LEARNING  
ECON UN3412  INTRODUCTION TO ECONOMETRICS  
ECON UN3025  FINANCIAL ECONOMICS  
ECON UN3265  MONEY AND BANKING 
Information Science and Health Sciences
Students may focus on understanding information modeling together with existing and emerging needs in health sciences, as well as algorithms and systems to address those needs.
The requirements include:
Code  Title  Points 

COMS W4111  INTRODUCTION TO DATABASES  
COMS W4170  USER INTERFACE DESIGN  
COMS W4701  ARTIFICIAL INTELLIGENCE  
BINF G4001  
BIOL W4037  Bioinformatics of Gene Expression  
ECBM E3060/E4060 
Major in Data Science
In response to the evergrowing importance of "big data" in scientific and policy endeavors, the last few years have seen explosive growth in theory, methods, and applications at the interface between computer science and statistics. The statistics and computer science departments have responded with a joint major that emphasizes the interface between the disciplines.
Code  Title  Points 

Prerequisites (15 points)  
MATH UN1101  CALCULUS I  
MATH UN1102  CALCULUS II  
MATH UN1201  CALCULUS III  
MATH UN2010  LINEAR ALGEBRA  
This introductory Statistics course:  
STAT UN1201  CALCBASED INTRO TO STATISTICS  
Statistics (12 points)  
STAT GU4203  PROBABILITY THEORY  
STAT GU4204  STATISTICAL INFERENCE  
STAT GU4205  LINEAR REGRESSION MODELS  
STAT GU4241  STATISTICAL MACHINE LEARNING  
or COMS W4771 Machine Learning  
Computer Science (12 points)  
Select one of the following courses:  
COMS W1004  Introduction to Computer Science and Programming in Java  
COMS W1005  Introduction to Computer Science and Programming in MATLAB  
COMS W1007  
ENGI E1006  INTRO TO COMP FOR ENG/APP SCI  
Select one of the following courses:  
COMS W3134  Data Structures in Java  
COMS W3136  ESSENTIAL DATA STRUCTURES  
COMS W3137  HONORS DATA STRUCTURES ＆ ALGOL  
Two required courses:  
COMS W3203  DISCRETE MATHEMATICS  
CSOR W4231  ANALYSIS OF ALGORITHMS I  
Electives (15 points)  
Select two of the following courses:  
STAT UN3106  APPLIED MACHINE LEARNING  
STAT GU4206  STAT COMP ＆ INTRO DATA SCIENCE  
STAT GU4224  BAYESIAN STATISTICS  
STAT GU4243  APPLIED DATA SCIENCE  
STAT Q4242  Advanced Machine Learning  
Select three of the following courses:  
COMS W3261  COMPUTER SCIENCE THEORY  
COMS W4111  INTRODUCTION TO DATABASES  
COMS W4130  
COMS W4236  INTROCOMPUTATIONAL COMPLEXITY  
COMS W4252  INTROCOMPUTATIONAL LEARN THRY  
Any COMS W47xx course EXCEPT W4771 
Minor in Computer Science
Students who pass the Computer Science Advanced Placement Exam A with a 4 or 5 will receive 3 points and an exemption from COMS W1004.
The Computer Science Minor consists of 6 courses as follows:
1. COMS W1004: Intro to computer science and programming in Java (3) or COMS W1007: Honors intro to comp sci (3)
2. COMS W3134: Data structures in Java (3) or COMS W3137: Honors data structures and algorithms (4)
3. COMS W3203: Discrete mathematics (4)
4. One course of the following:
COMS W3157: Advanced programming (4)
COMS W3261: Comp science theory (3)
CSEE W3827: Fundamentals of computer systems (3)
5. Any 3000level or 4000level COMS/CSXX/XXCS course of at least 3 points
6. Any 3000level or 4000level COMS/CSXX/XXCS course of at least 3 points OR one linear algebra or probability/statistics course from the following: APMA E3101, APMA E2101, MATH UN2010, MATH UN2015, IEOR E3658, STAT UN1201, STAT GU4001 or STAT GU4203.
Restrictions
No more than 6 points of project/thesis courses (COMS W3902, W3998, W4901) can count toward the major. COMS W3999 Fieldwork cannot be used as a CS Elective.
No more than one course from each set below may be applied towards the computer science major:

IEOR E3658, STAT UN1201, MATH UN2015

MATH UN2015, MATH UN2010, APAM E3101, COMS W3251

COMS W4771, COMS W4721
For students who entered Columbia in or before the 202324 academic year
Concentration in Computer Science
The concentration in computer science requires a minimum of 2224 points, as follows:
Code  Title  Points 

COMS W1004  Introduction to Computer Science and Programming in Java  
or COMS W1007  
COMS W3134  Data Structures in Java  
or COMS W3137  HONORS DATA STRUCTURES ＆ ALGOL  
COMS W3157  ADVANCED PROGRAMMING  
COMS W3203  DISCRETE MATHEMATICS  
COMS W3261  COMPUTER SCIENCE THEORY  
CSEE W3827  FUNDAMENTALS OF COMPUTER SYSTS (or any 3 point 4000level computer science course)  
Select one of the following courses:  
COMS W3251  COMPUTATIONAL LINEAR ALGEBRA  
MATH UN2010  LINEAR ALGEBRA  
MATH UN2015  Linear Algebra and Probability  
MATH V2020  Honors Linear Algebra  
APMA E2101  INTRO TO APPLIED MATHEMATICS  
APMA E3101  APPLIED MATH I: LINEAR ALGEBRA  
IEOR E3658  PROBABILITY FOR ENGINEERS  
STAT UN1201  CALCBASED INTRO TO STATISTICS  
STAT GU4001  INTRODUCTION TO PROBABILITY AND STATISTICS 
Computer Science
COMS W1001 Introduction to Information Science. 3 points.
Lect: 3.
Basic introduction to concepts and skills in Information Sciences: humancomputer interfaces, representing information digitally, organizing and searching information on the internet, principles of algorithmic problem solving, introduction to database concepts, and introduction to programming in Python.
COMS W1002 COMPUTING IN CONTEXT. 4.00 points.
CC/GS: Partial Fulfillment of Science Requirement
Introduction to elementary computing concepts and Python programming with domainspecific applications. Shared CS concepts and Python programming lectures with trackspecific sections. Track themes will vary but may include computing for the social sciences, computing for economics and finance, digital humanities, and more. Intended for nonmajors. Students may only receive credit for one of ENGI E1006 or COMS W1002
Fall 2024: COMS W1002


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 1002  001/11915  T Th 1:10pm  2:25pm 417 International Affairs Bldg 
Adam Cannon  4.00  73/160 
COMS 1002  002/11916  T Th 1:10pm  2:25pm 330 Uris Hall 
Adam Cannon, Eugenia Antic  4.00  19/60 
COMS 1002  003/11917  T Th 2:40pm  3:55pm 417 International Affairs Bldg 
Adam Cannon  4.00  147/300 
COMS 1002  004/11918  T Th 2:40pm  3:55pm 415 Schapiro Cepser 
Adam Cannon, Philippe Chlenski  4.00  27/40 
COMS W1003 INTROCOMPUT SCI/PROGRAM IN C. 3.00 points.
COMS W1004 Introduction to Computer Science and Programming in Java. 3 points.
Lect: 3.
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 problemsolving 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.
Spring 2024: COMS W1004


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 1004  001/11451  T Th 11:40am  12:55pm 417 International Affairs Bldg 
Adam Cannon  3  123/398 
COMS 1004  002/12052  T Th 1:10pm  2:25pm 417 International Affairs Bldg 
Adam Cannon  3  116/398 
Fall 2024: COMS W1004


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 
COMS 1004  001/11919  M W 2:40pm  3:55pm 309 Havemeyer Hall 
Paul Blaer  3  158/320 
COMS 1004  002/11920  M W 5:40pm  6:55pm 417 International Affairs Bldg 
Paul Blaer  3  107/320 
COMS W1005 Introduction to Computer Science and Programming in MATLAB. 3 points.
CC/GS: Partial Fulfillment of Science Requirement
A general introduction to computer science concepts, algorithmic problemsolving capabilities, and programming skills in MATLAB. Assumes no prior programming background. Columbia University students may receive credit for only one of the following two courses: W1004 or W1005.
COMS W1011 INTERMED COMPUTER PROGRAMMING. 3.00 points.
COMS W1012 COMPUTING IN CONTEXT REC. 0.00 points.
Fall 2024: COMS W1012


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 1012  001/11921  Th 7:10pm  8:00pm 227 Seeley W. Mudd Building 
Adam Cannon  0.00  0/40 
COMS 1012  002/11922  Th 7:10pm  8:00pm 644 Seeley W. Mudd Building 
Adam Cannon  0.00  0/40 
COMS 1012  003/11923  F 10:10am  11:00am 307 Uris Hall 
Adam Cannon  0.00  0/40 
COMS 1012  004/11924  F 2:00pm  2:50pm 307 Uris Hall 
Adam Cannon  0.00  0/40 
COMS 1012  005/11925  Th 7:10pm  8:00pm 415 Schapiro Cepser 
Adam Cannon  0.00  0/40 
COMS 1012  006/11926  Th 7:10pm  8:00pm 825 Seeley W. Mudd Building 
Adam Cannon  0.00  0/40 
COMS 1012  007/11927  F 9:00am  9:50am 307 Uris Hall 
Adam Cannon  0.00  0/40 
COMS 1012  008/11928  Th 7:10pm  8:00pm 401 Chandler 
Adam Cannon  0.00  0/30 
COMS 1012  009/11929  F 10:10am  11:00am 608 Schermerhorn Hall 
Adam Cannon  0.00  0/30 
COMS 1012  010/11930  Th 7:10pm  8:00pm 233 Seeley W. Mudd Building 
Adam Cannon  0.00  0/30 
COMS 1012  011/11931  F 11:00am  11:50am 307 Uris Hall 
Adam Cannon  0.00  0/30 
COMS W1103 HONORS INTRO COMPUTER SCIENCE. 3.00 points.
COMS W1404 EMERGING SCHOLARS PROG SEMINAR. 1.00 point.
Pass/Fail only.
Prerequisites: the instructor's permission. Corequisites: COMS W1002 or COMS W1004 or COMS W1007
Corequisites: COMS W1004,COMS W1007,COMS W1002
Peerled weekly seminar intended for first and second year undergraduates considering a major in Computer Science. Pass/fail only. May not be used towards satisfying the major or SEAS credit requirements
Spring 2024: COMS W1404


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 1404  001/12053  F 8:40am  9:55am 502 Northwest Corner 
Adam Cannon  1.00  6/16 
COMS 1404  002/12054  F 10:10am  11:25am 502 Northwest Corner 
Adam Cannon  1.00  3/16 
COMS 1404  003/12055  F 11:40am  12:55pm 502 Northwest Corner 
Adam Cannon  1.00  0/16 
COMS 1404  004/12056  F 1:10pm  2:25pm 502 Northwest Corner 
Adam Cannon  1.00  4/16 
COMS 1404  005/12057  F 2:40pm  3:55pm 502 Northwest Corner 
Adam Cannon  1.00  6/16 
COMS 1404  006/12058  F 4:10pm  5:25pm 502 Northwest Corner 
Adam Cannon  1.00  3/16 
COMS 1404  007/12059  F 9:30am  10:45am 253 Engineering Terrace 
Adam Cannon  1.00  0/16 
COMS 1404  008/12061  F 11:00am  12:15pm 253 Engineering Terrace 
Adam Cannon  1.00  5/16 
COMS 1404  009/12063  F 12:30pm  1:45pm 253 Engineering Terrace 
Adam Cannon  1.00  9/16 
COMS 1404  010/12064  F 2:00pm  3:15pm 253 Engineering Terrace 
Adam Cannon  1.00  3/16 
Fall 2024: COMS W1404


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 
COMS 1404  001/11996  F 8:40am  9:55am 253 Engineering Terrace 
Adam Cannon  1.00  0/16 
COMS 1404  002/11997  F 10:10am  11:25am 253 Engineering Terrace 
Adam Cannon  1.00  0/16 
COMS 1404  003/11998  F 11:40am  12:55pm 253 Engineering Terrace 
Adam Cannon  1.00  0/16 
COMS 1404  004/11999  F 1:10pm  2:25pm 253 Engineering Terrace 
Adam Cannon  1.00  0/16 
COMS 1404  005/12000  F 2:40pm  3:55pm 253 Engineering Terrace 
Adam Cannon  1.00  0/16 
COMS 1404  006/12001  F 4:10pm  5:25pm 337 Seeley W. Mudd Building 
Adam Cannon  1.00  0/16 
COMS 1404  007/12002  F 9:30am  10:45am 337 Seeley W. Mudd Building 
Adam Cannon  1.00  0/16 
COMS 1404  008/12003  F 11:00am  12:15pm 337 Seeley W. Mudd Building 
Adam Cannon  1.00  0/16 
COMS 1404  009/12004  F 12:30pm  1:45pm 337 Seeley W. Mudd Building 
Adam Cannon  1.00  0/16 
COMS 1404  010/12005  F 2:00pm  3:15pm 337 Seeley W. Mudd Building 
Adam Cannon  1.00  0/16 
COMS W2702 AI in Context. 3.00 points.
An interdisciplinary introduction to the history, development and modern application of artificial intelligence in a variety of contexts. Context subjects and teaching staff will vary by semester
Fall 2024: COMS W2702


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 2702  001/20900  M W 10:10am  11:25am 833 Seeley W. Mudd Building 
Chris Wiggins, Vishal Misra, Katja Vogt, Adam Cannon, Dennis Tenen, Seth Cluett  3.00  1/120 
COMS W3011 INTERMED COMPUTER PROGRAMMING. 3.00 points.
COMS W3101 PROGRAMMING LANGUAGES. 1.00 point.
Lect: 1.
Prerequisites: Fluency in at least one programming language.
Introduction to a programming language. Each section is devoted to a specific language. Intended only for those who are already fluent in at least one programming language. Sections may meet for one hour per week for the whole term, for three hours per week for the first third of the term, or for two hours per week for the first six weeks. May be repeated for credit if different languages are involved
COMS W3102 DEVELOPMENT TECHNOLOGY. 1.002.00 points.
Lect: 2. Lab: 02.
Prerequisites: Fluency in at least one programming language.
Introduction to software development tools and environments. Each section devoted to a specific tool or environment. Onepoint sections meet for two hours each week for half a semester, and two point sections include an additional twohour lab
Spring 2024: COMS W3102


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 3102  001/12065  F 6:10pm  8:00pm 451 Computer Science Bldg 
Shoaib Ahamed  1.002.00  62/70 
COMS W3107 Clean ObjectOriented Design. 3.00 points.
Prerequisites: Intro to Computer Science/Programming in Java (COMS W1004) or instructor’s permission. May not take for credit if already received credit for COMS W1007.
Prerequisites: see notes re: points
A course in designing, documenting, coding, and testing robust computer software, according to objectoriented design patterns and clean coding practices. Taught in Java.Objectoriented 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
COMS W3123 ASSEMBLY LANG AND COMPUT LOGIC. 3.00 points.
COMS W3132 Intermediate Computing in Python. 4.00 points.
Essential data structures and algorithms in Python with practical software development skills, applications in a variety of areas including biology, natural language processing, data science and others
Spring 2024: COMS W3132


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 3132  001/15110  F 1:10pm  3:40pm 413 Kent Hall 
Jan Janak  4.00  60/60 
COMS W3134 Data Structures in Java. 3 points.
CC/GS: Partial Fulfillment of Science Requirement
Prerequisites: (COMS W1004) or knowledge of Java.
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.
Spring 2024: COMS W3134


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 3134  001/12067  M W 4:10pm  5:25pm 301 Uris Hall 
Brian Borowski  3  227/250 
COMS 3134  002/12068  M W 5:40pm  6:55pm 301 Uris Hall 
Brian Borowski  3  144/250 
Fall 2024: COMS W3134


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 
COMS 3134  001/11932  M W 4:10pm  5:25pm 301 Uris Hall 
Brian Borowski  3  172/200 
COMS 3134  002/11933  M W 5:40pm  6:55pm 301 Uris Hall 
Brian Borowski  3  119/200 
COMS W3136 ESSENTIAL DATA STRUCTURES. 4.00 points.
Prerequisites: (COMS W1004) or (COMS W1005) or (COMS W1007) or (ENGI E1006)
A second programming course intended for nonmajors with at least one semester of introductory programming experience. Basic elements of programming in C and C , arraybased data structures, heaps, linked lists, C programming in UNIX environment, objectoriented programming in C , trees, graphs, generic programming, hash tables. Due to significant overlap, students may only receive credit for either COMS W3134, W3136, or W3137
Fall 2024: COMS W3136


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 3136  001/15424  T Th 5:40pm  6:55pm 141 Uris Hall 
Timothy Paine  4.00  35/65 
COMS W3137 HONORS DATA STRUCTURES ＆ ALGOL. 4.00 points.
Prerequisites: (COMS W1004) or (COMS W1007)
Corequisites: COMS W3203
An honors introduction to 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. Design and 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, W3136, or W3137
COMS W3157 ADVANCED PROGRAMMING. 4.00 points.
Lect: 4.
Prerequisites: (COMS W3134) or (COMS W3137)
C programming language and Unix systems programming. Also covers Git, Make, TCP/IP networking basics, C fundamentals
Spring 2024: COMS W3157


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 3157  001/12069  T Th 4:10pm  5:25pm 417 International Affairs Bldg 
Jae Lee  4.00  295/398 
Fall 2024: COMS W3157


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 
COMS 3157  001/11934  T Th 4:10pm  5:25pm 417 International Affairs Bldg 
Jae Lee  4.00  396/398 
COMS W3202 FINITE MATHEMATICS. 3.00 points.
COMS W3203 DISCRETE MATHEMATICS. 4.00 points.
Lect: 3.
Prerequisites: Any introductory course in computer programming.
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)
Spring 2024: COMS W3203


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 3203  001/12070  T Th 10:10am  11:25am 301 Uris Hall 
Ansaf SallebAouissi  4.00  215/200 
COMS 3203  002/12071  T Th 11:40am  12:55pm 301 Uris Hall 
Ansaf SallebAouissi  4.00  207/200 
Fall 2024: COMS W3203


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 
COMS 3203  001/11935  M W 4:10pm  5:25pm 301 Pupin Laboratories 
Tony Dear  4.00  188/270 
COMS W3210 Scientific Computation. 3 points.
CC/GS: Partial Fulfillment of Science Requirement
Prerequisites: two terms of calculus.
Introduction to computation on digital computers. Design and analysis of numerical algorithms. Numerical solution of equations, integration, recurrences, chaos, differential equations. Introduction to Monte Carlo methods. Properties of floating point arithmetic. Applications to weather prediction, computational finance, computational science, and computational engineering.
COMS W3251 COMPUTATIONAL LINEAR ALGEBRA. 4.00 points.
COMS W3261 COMPUTER SCIENCE THEORY. 3.00 points.
CC/GS: Partial Fulfillment of Science Requirement
Prerequisites: (COMS W3203)
Corequisites: COMS W3134,COMS W3136,COMS W3137
Regular languages: deterministic and nondeterministic finite automata, regular expressions. Contextfree languages: contextfree grammars, pushdown automata. Turing machines, the Chomsky hierarchy, and the ChurchTuring thesis. Introduction to Complexity Theory and NPCompleteness
Spring 2024: COMS W3261


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 3261  001/12072  M W 2:40pm  3:55pm 417 International Affairs Bldg 
Josh Alman  3.00  130/150 
COMS 3261  022/12073  T Th 11:40am  12:55pm 501 Northwest Corner 
Mihalis Yannakakis  3.00  152/160 
Fall 2024: COMS W3261


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 
COMS 3261  001/11936  T Th 8:40am  9:55am 451 Computer Science Bldg 
Tal Malkin  3.00  107/105 
COMS 3261  002/11937  T Th 10:10am  11:25am 451 Computer Science Bldg 
Tal Malkin  3.00  105/105 
COMS W3410 COMPUTERS AND SOCIETY. 3.00 points.
Lect: 3.
Broader impact of computers. Social networks and privacy. Employment, intellectual property, and the media. Science and engineering ethics. Suitable for nonmajors
Fall 2024: COMS W3410


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 3410  001/11938  W 4:10pm  6:40pm 303 Uris Hall 
Ronald Baecker  3.00  60/60 
COMS E3899 Research Training. 0.00 points.
Research training course. Recommended in preparation for laboratory related research
COMS W3902 UNDERGRADUATE THESIS. 0.006.00 points.
Prerequisites: Agreement by a faculty member to serve as thesis adviser.
An independent theoretical or experimental investigation by an undergraduate major of an appropriate problem in computer science carried out under the supervision of a faculty member. A formal written report is mandatory and an oral presentation may also be required. May be taken over more than one term, in which case the grade is deferred until all 6 points have been completed. Consult the department for section assignment
COMS W3995 Special Topics in Computer Science. 3 points.
Lect: 3.
Prerequisites: the instructor's permission.
Consult the department for section assignment. Special topics arranged as the need and availability arise. Topics are usually offered on a onetime basis. Since the content of this course changes each time it is offered, it may be repeated for credit.
COMS W3998 UNDERGRAD PROJECTS IN COMPUTER SCIENCE. 1.003.00 points.
Prerequisites: Approval by a faculty member who agrees to supervise the work.
Independent project involving laboratory work, computer programming, analytical investigation, or engineering design. May be repeated for credit. Consult the department for section assignment
COMS W3999 FIELDWORK. 1.002.00 points.
May be repeated for credit, but no more than 3 total points may be used toward the 128credit degree requirement. Only for SEAS computer science undergraduate students who include relevant off campus work experience as part of their approved program of study. Final report and letter of evaluation may be required. May not be used as a technical or nontechnical elective or as a GTE (general technical elective). May not be taken for pass/fail credit or audited
COMS E3999 Fieldwork. 1 point.
Prerequisites: Obtained internship and approval from faculty advisor.
May be repeated for credit, but no more than 3 total points may be used toward the 128credit degree requirement. Only for SEAS computer science undergraduate students who include relevant offcampus work experience as part of their approved program of study. Final report and letter of evaluation required. May not be used as a technical or nontechnical elective. May not be taken for pass/fail credit or audited.
COMS W4111 INTRODUCTION TO DATABASES. 3.00 points.
CC/GS: Partial Fulfillment of Science Requirement
Prerequisites: COMS W3134, COMS W3136, or COMS W3137; or the instructor's permission.
Prerequisites: (COMS W3134) or (COMS W3136) or (COMS W3137) or
The fundamentals of database design and application development using databases: entityrelationship modeling, logical design of relational databases, relational data definition and manipulation languages, SQL, XML, query processing, physical database tuning, transaction processing, security. Programming projects are required
Spring 2024: COMS W4111


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 4111  001/12074  M W 2:40pm  3:55pm 309 Havemeyer Hall 
Kenneth Ross  3.00  126/200 
COMS 4111  002/12075  F 10:10am  12:40pm 417 International Affairs Bldg 
Donald Ferguson  3.00  398/398 
COMS 4111  V02/20370  
Donald Ferguson  3.00  18/99 
Fall 2024: COMS W4111


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 
COMS 4111  001/11939  T Th 10:10am  11:25am 207 Mathematics Building 
Luis Gravano  3.00  165/150 
COMS 4111  002/11940  T Th 8:40am  9:55am 301 Uris Hall 
Eugene Wu  3.00  47/150 
COMS 4111  003/11941  F 10:10am  12:40pm 309 Havemeyer Hall 
Donald Ferguson  3.00  219/200 
COMS 4111  V03/18703  
Donald Ferguson  3.00  18/99 
COMS W4112 DATABASE SYSTEM IMPLEMENTATION. 3.00 points.
Lect: 2.5.
Prerequisites: (COMS W4111) and fluency in Java or C++. CSEE W3827 is recommended.
The principles and practice of building largescale database management systems. Storage methods and indexing, query processing and optimization, materialized views, transaction processing and recovery, objectrelational databases, parallel and distributed databases, performance considerations. Programming projects are required
COMS W4113 FUNDLARGESCALE DIST SYSTEMS. 3.00 points.
Prerequisites: (COMS W3134 or COMS W3136 or COMS W3137) and (COMS W3157 or COMS W4118 or CSEE W4119)
Prerequisites: (COMS W3134 or COMS W3136 or COMS W3137) and (COMS W3157 or COMS W4118 or CSEE W4119) Design and implementation of largescale distributed and cloud systems. Teaches abstractions, design and implementation techniques that enable the building of fast, scalable, faulttolerant distributed systems. Topics include distributed communication models (e.g. sockets, remote procedure calls, distributed shared memory), distributed synchronization (clock synchronization, logical clocks, distributed mutex), distributed file systems, replication, consistency models, fault tolerance, distributed transactions, agreement and commitment, Paxosbased consensus, MapReduce infrastructures, scalable distributed databases. Combines concepts and algorithms with descriptions of realworld implementations at Google, Facebook, Yahoo, Microsoft, LinkedIn, etc
Fall 2024: COMS W4113


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 4113  001/11942  F 10:10am  12:40pm 451 Computer Science Bldg 
Roxana Geambasu  3.00  117/110 
COMS 4113  V01/17521  
Roxana Geambasu  3.00  10/99 
COMS E4115 PROGRAMMING LANG ＆ TRANSL. 3.00 points.
COMS W4115 PROGRAMMING LANG ＆ TRANSLATORS. 3.00 points.
Lect: 3.
Prerequisites: (COMS W3134 or COMS W3136 or COMS W3137) and (COMS W3261) and (CSEE W3827) or equivalent, or the instructor's permission.
Modern programming languages and compiler design. Imperative, objectoriented, declarative, functional, and scripting languages. Language syntax, control structures, data types, procedures and parameters, binding, scope, runtime organization, and exception handling. Implementation of language translation tools including compilers and interpreters. Lexical, syntactic and semantic analysis; code generation; introduction to code optimization. Teams implement a language and its compiler
Spring 2024: COMS W4115


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 4115  001/12077  M W 4:10pm  5:25pm 501 Schermerhorn Hall 
Ronghui Gu  3.00  72/120 
COMS 4115  V01/15375  
Ronghui Gu  3.00  11/99 
Fall 2024: COMS W4115


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 
COMS 4115  001/11943  T Th 11:40am  12:55pm 451 Computer Science Bldg 
Baishakhi Ray  3.00  84/100 
COMS 4115  V01/18705  
Baishakhi Ray  3.00  5/99 
COMS W4118 OPERATING SYSTEMS I. 3.00 points.
Lect: 3.
Prerequisites: (CSEE W3827) and knowledge of C and programming tools as covered in COMS W3136, W3157, or W3101, or the instructor's permission.
Design and implementation of operating systems. Topics include process management, process synchronization and interprocess communication, memory management, virtual memory, interrupt handling, processor scheduling, device management, I/O, and file systems. Case study of the UNIX operating system. A programming project is required
Spring 2024: COMS W4118


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 4118  001/12079  T Th 4:10pm  5:25pm 501 Northwest Corner 
Kostis Kaffes  3.00  88/160 
COMS 4118  V01/18798  
Kostis Kaffes  3.00  4/99 
Fall 2024: COMS W4118


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 
COMS 4118  001/11944  T Th 4:10pm  5:25pm 501 Northwest Corner 
Jason Nieh  3.00  122/160 
COMS 4118  V01/17522  
Jason Nieh  3.00  5/99 
COMS W4119 COMPUTER NETWORKS. 3.00 points.
Introduction to computer networks and the technical foundations of the internet, including applications, protocols, local area networks, algorithms for routing and congestion control, security, elementary performance evaluation. Several written and programming assignments required
COMS W4121 COMPUTER SYSTEMS FOR DATA SCIENCE. 3.00 points.
Prerequisites: background in Computer System Organization and good working knowledge of C/C++
Corequisites: CSOR W4246,STAT GU4203
An introduction to computer architecture and distributed systems with an emphasis on warehouse scale computing systems. Topics will include fundamental tradeoffs in computer systems, hardware and software techniques for exploiting instructionlevel parallelism, datalevel parallelism and task level parallelism, scheduling, caching, prefetching, network and memory architecture, latency and throughput optimizations, specialization, and an introduction to programming data center computers
COMS W4137 From Algorithmic Thinking to Development. 3.00 points.
Algorithmic problemsolving 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 bruteforce, hashing, sorting, transformandconquer, greedy, and dynamic programming. Focus on experimentation and team work
COMS W4152 Engineering SoftwareasaService. 3.00 points.
Modern software engineering concepts and practices including topics such as SoftwareasaService, Serviceoriented Architecture, Agile Development, Behaviordriven Development, Ruby on Rails, and Dev/ops
COMS W4153 Cloud Computing. 3.00 points.
Software engineering skills necessary for developing cloud computing and softwareasaservice applications, covering topics such as serviceoriented architectures, messagedriven applications, and platform integration. Includes theoretical study, practical application, and collaborative project work
Fall 2024: COMS W4153


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 4153  001/14010  F 1:10pm  3:40pm 309 Havemeyer Hall 
Donald Ferguson  3.00  218/200 
COMS 4153  V01/18778  
Donald Ferguson  3.00  17/99 
COMS W4156 ADVANCED SOFTWARE ENGINEERING. 3.00 points.
Lect: 3.
Prerequisites: (COMS W3157) or equivalent.
Software lifecycle using frameworks, libraries and services. Major emphasis on software testing. Centers on a team project
Fall 2024: COMS W4156


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 4156  001/11945  T Th 10:10am  11:25am 833 Seeley W. Mudd Building 
Gail Kaiser  3.00  130/120 
COMS 4156  V01/17608  
Gail Kaiser  3.00  6/99 
COMS W4160 COMPUTER GRAPHICS. 3.00 points.
Lect: 3.
Prerequisites: (COMS W3134) or (COMS W3136) or (COMS W3137) COMS W4156 is recommended. Strong programming background and some mathematical familiarity including linear algebra is required.
Introduction to computer graphics. Topics include 3D viewing and projections, geometric modeling using spline curves, graphics systems such as OpenGL, lighting and shading, and global illumination. Significant implementation is required: the final project involves writing an interactive 3D video game in OpenGL
Spring 2024: COMS W4160


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 4160  001/13865  T Th 7:10pm  8:25pm 451 Computer Science Bldg 
Hadi Fadaifard  3.00  64/75 
COMS W4162 Advanced Computer Graphics. 3 points.
Lect: 3.
Prerequisites: (COMS W4160) or equivalent, or the instructor's permission.
A second course in computer graphics covering more advanced topics including image and signal processing, geometric modeling with meshes, advanced image synthesis including ray tracing and global illumination, and other topics as time permits. Emphasis will be placed both on implementation of systems and important mathematical and geometric concepts such as Fourier analysis, mesh algorithms and subdivision, and Monte Carlo sampling for rendering. Note: Course will be taught every two years.
COMS W4165 COMPUT TECHNIQUESPIXEL PROCSS. 3.00 points.
An intensive introduction to image processing  digital filtering theory, image enhancement, image reconstruction, antialiasing, warping, and the state of the art in special effects. Topics from the basis of highquality rendering in computer graphics and of lowlevel processing for computer vision, remote sensing, and medical imaging. Emphasizes computational techniques for implementing useful imageprocessing functions
COMS W4167 COMPUTER ANIMATION. 3.00 points.
Lect: 3.
Prerequisites: Multivariable calculus, linear algebra, C++ programming proficiency. COMS W4156 recommended.
Theory and practice of physicsbased animation algorithms, including animated clothing, hair, smoke, water, collisions, impact, and kitchen sinks. Topics covered: Integration of ordinary differential equations, formulation of physical models, treatment of discontinuities including collisions/contact, animation control, constrained Lagrangian Mechanics, friction/dissipation, continuum mechanics, finite elements, rigid bodies, thin shells, discretization of NavierStokes equations. General education requirement: quantitative and deductive reasoning (QUA).
Spring 2024: COMS W4167


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 4167  001/12080  T Th 4:10pm  5:25pm 451 Computer Science Bldg 
Changxi Zheng  3.00  46/75 
COMS W4170 USER INTERFACE DESIGN. 3.00 points.
CC/GS: Partial Fulfillment of Science Requirement
Prerequisites: (COMS W3134 or COMS W3136 or COMS W3137)
Introduction to the theory and practice of computer user interface design, emphasizing the software design of graphical user interfaces. Topics include basic interaction devices and techniques, human factors, interaction styles, dialogue design, and software infrastructure. Design and programming projects are required
Spring 2024: COMS W4170


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 4170  001/12081  M W 1:10pm  2:25pm 417 International Affairs Bldg 
Lydia Chilton  3.00  412/398 
COMS 4170  V01/15381  
Lydia Chilton  3.00  20/20 
Fall 2024: COMS W4170


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 
COMS 4170  001/11946  T Th 1:10pm  2:25pm 833 Seeley W. Mudd Building 
Brian Smith  3.00  0/120 
COMS 4170  V01/17523  
Brian Smith  3.00  0/99 
COMS W4172 3D UI AND AUGMENTED REALITY. 3.00 points.
CC/GS: Partial Fulfillment of Science Requirement
Prerequisites: (COMS W4160) or (COMS W4170) or the instructor's permission.
Design, development, and evaluation of 3D user interfaces. Interaction techniques and metaphors, from desktop to immersive. Selection and manipulation. Travel and navigation. Symbolic, menu, gestural, and multimodal interaction. Dialogue design. 3D software support. 3D interaction devices and displays. Virtual and augmented reality. Tangible user interfaces. Review of relevant 3D math
Spring 2024: COMS W4172


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 4172  001/12082  T Th 1:10pm  2:25pm 227 Seeley W. Mudd Building 
Steven Feiner  3.00  35/45 
COMS W4181 SECURITY I. 3.00 points.
Not offered during 20232024 academic year.
Prerequisites: COMS W3157 or equivalent.
Introduction to security. Threat models. Operating system security features. Vulnerabilities and tools. Firewalls, virtual private networks, viruses. Mobile and app security. Usable security. Note: May not earn credit for both W4181 and W4180 or W4187
Fall 2024: COMS W4181


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 4181  001/11947  M W 1:10pm  2:25pm 1127 Seeley W. Mudd Building 
Suman Jana  3.00  63/60 
COMS 4181  V01/17631  
Suman Jana  3.00  5/5 
COMS W4182 SECURITY II. 3.00 points.
Not offered during 20232024 academic year.
Prerequisites: COMS W4181, COMS W4118, COMS W4119
Advanced security. Centralized, distributed, and cloud system security. Cryptographic protocol design choices. Hardware and software security techniques. Security testing and fuzzing. Blockchain. Human security issues. Note: May not earn credit for both W4182 and W4180 or W4187
Spring 2024: COMS W4182


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 4182  001/12083  F 1:10pm  3:40pm 1127 Seeley W. Mudd Building 
John Koh  3.00  21/40 
COMS 4182  V01/15421  
John Koh  3.00  2/99 
COMS W4186 MALWARE ANALYSIS＆REVERSE ENGINEERING. 3.00 points.
Not offered during 20232024 academic year.
Prerequisites: COMS W3157 or equivalent. COMS W3827
Handson analysis of malware. How hackers package and hide malware and viruses to evade analysis. Disassemblers, debuggers, and other tools for reverse engineering. Deep study of Windows Internals and x86 assembly
Fall 2024: COMS W4186


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 4186  001/12324  Th 4:10pm  6:40pm 545 Seeley W. Mudd Building 
Michael Sikorski  3.00  38/40 
COMS 4186  V01/18706  
Michael Sikorski  3.00  8/99 
COMS W4203 Graph Theory. 3 points.
Lect: 3.
Prerequisites: (COMS W3203)
General introduction to graph theory. Isomorphism testing, algebraic specification, symmetries, spanning trees, traversability, planarity, drawings on higherorder surfaces, colorings, extremal graphs, random graphs, graphical measurement, directed graphs, BurnsidePolya counting, voltage graph theory.
Spring 2024: COMS W4203


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 4203  001/20497  W 7:00pm  9:30pm 451 Computer Science Bldg 
Yihao Zhang  3  24/60 
COMS W4205 Combinatorial Theory. 3 points.
Lect: 3.Not offered during 20232024 academic year.
Prerequisites: (COMS W3203) and course in calculus.
Sequences and recursions, calculus of finite differences and sums, elementary number theory, permutation group structures, binomial coefficients, Stilling numbers, harmonic numbers, generating functions.
COMS W4223 Networks, Crowds, and the Web. 3.00 points.
Introduces fundamental ideas and algorithms on networks of information collected by online services. It covers properties pervasive in large networks, dynamics of individuals that lead to large collective phenomena, mechanisms underlying the web economy, and results and tools informing societal impact of algorithms on privacy, polarization and discrimination
Spring 2024: COMS W4223


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 4223  001/15083  T Th 4:10pm  5:25pm 833 Seeley W. Mudd Building 
Augustin Chaintreau  3.00  69/110 
COMS 4223  V01/18856  
Augustin Chaintreau  3.00  14/99 
COMS W4231 ANALYSIS OF ALGORITHMS I. 3.00 points.
COMS W4232 Advanced Algorithms. 3.00 points.
Prerequisite: Analysis of Algorithms (COMS W4231).
Prerequisites: see notes re: points
Introduces classic and modern algorithmic ideas that are central to many areas of Computer Science. The focus is on most powerful paradigms and techniques of how to design algorithms, and how to measure their efficiency. The intent is to be broad, covering a diversity of algorithmic techniques, rather than be deep. The covered topics have all been implemented and are widely used in industry. Topics include: hashing, sketching/streaming, nearest neighbor search, graph algorithms, spectral graph theory, linear programming, models for largescale computation, and other related topics
Spring 2024: COMS W4232


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 4232  001/12084  M W 2:40pm  3:55pm 633 Seeley W. Mudd Building 
Alexandr Andoni  3.00  43/100 
COMS 4232  V01/15422  
Alexandr Andoni  3.00  2/99 
COMS W4236 INTROCOMPUTATIONAL COMPLEXITY. 3.00 points.
Lect: 3.
Prerequisites: (COMS W3261)
Develops a quantitative theory of the computational difficulty of problems in terms of the resources (e.g. time, space) needed to solve them. Classification of problems into complexity classes, reductions, and completeness. Power and limitations of different modes of computation such as nondeterminism, randomization, interaction, and parallelism
Fall 2024: COMS W4236


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 4236  001/11948  M W 8:40am  9:55am 451 Computer Science Bldg 
Xi Chen  3.00  55/50 
COMS 4236  V01/17552  
Xi Chen  3.00  5/99 
COMS W4241 Numerical Algorithms and Complexity. 3 points.
Lect: 3.
Prerequisites: Knowledge of a programming language. Some knowledge of scientific computation is desirable.
Modern theory and practice of computation on digital computers. Introduction to concepts of computational complexity. Design and analysis of numerical algorithms. Applications to computational finance, computational science, and computational engineering.
COMS W4242 NUMRCL ALGORTHMSCOMPLEXITY II. 3.00 points.
COMS W4252 INTROCOMPUTATIONAL LEARN THRY. 3.00 points.
CC/GS: Partial Fulfillment of Science Requirement
Prerequisites: (CSOR W4231) or (COMS W4236) or COMS W3203 and the instructor's permission, or COMS W3261 and the instructor's permission.
Possibilities and limitations of performing learning by computational agents. Topics include computational models of learning, polynomial time learnability, learning from examples and learning from queries to oracles. Computational and statistical limitations of learning. Applications to Boolean functions, geometric functions, automata.
COMS W4261 INTRO TO CRYPTOGRAPHY. 3.00 points.
Lect: 2.5.
Prerequisites: Comfort with basic discrete math and probability. Recommended: COMS W3261 or CSOR W4231.
An introduction to modern cryptography, focusing on the complexitytheoretic 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, oneway functions, trapdoor functions, number theory and computational hardness, identification and zero knowledge protocols
COMS W4281 INTRO TO QUANTUM COMPUTING. 3.00 points.
Lect: 3.
Prerequisites: Knowledge of linear algebra. Prior knowledge of quantum mechanics is not required although helpful.
Introduction to quantum computing. Shor's factoring algorithm, Grover's database search algorithm, the quantum summation algorithm. Relationship between classical and quantum computing. Potential power of quantum computers.
Fall 2024: COMS W4281


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 4281  001/11949  M W 10:10am  11:25am 209 Havemeyer Hall 
Henry Yuen  3.00  11/90 
COMS W4419 INTERNET TECHNOLOGY,ECONOMICS,AND POLICY. 3.00 points.
Not offered during 20232024 academic year.
Technology, economic and policy aspects of the Internet. Summarizes how the Internet works technically, including protocols, standards, radio spectrum, global infrastructure and interconnection. Microeconomics with a focus on media and telecommunication economic concerns, including competition and monopolies, platforms, and behavioral economics. US constitution, freedom of speech, administrative procedures act and regulatory process, universal service, role of FCC. Not a substitute for CSEE4119. Suitable for nonmajors. May not be used as a track elective for the computer science major.
COMS W4444 PROGRAMMING ＆ PROBLEM SOLVING. 3.00 points.
CC/GS: Partial Fulfillment of Science Requirement
Prerequisites: (COMS W3134 or COMS W3136 or COMS W3137) and (CSEE W3827)
Handson introduction to solving openended computational problems. Emphasis on creativity, cooperation, and collaboration. Projects spanning a variety of areas within computer science, typically requiring the development of computer programs. Generalization of solutions to broader problems, and specialization of complex problems to make them manageable. Teamoriented projects, student presentations, and inclass participation required
Fall 2024: COMS W4444


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 4444  001/11950  M W 1:10pm  2:25pm 337 Seeley W. Mudd Building 
Kenneth Ross  3.00  0/33 
COMS W4460 PRININNOVATN/ENTREPRENEURSHIP. 3.00 points.
CC/GS: Partial Fulfillment of Science Requirement
Prerequisites: (COMS W3134 or COMS W3136 or COMS W3137) or the instructor's permission.
Team project centered course focused on principles of planning, creating, and growing a technology venture. Topics include: identifying and analyzing opportunities created by technology paradigm shifts, designing innovative products, protecting intellectual property, engineering innovative business models
Spring 2024: COMS W4460


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 4460  001/12085  M W 8:40am  9:55am 415 Schapiro Cepser 
William Reinisch  3.00  34/40 
Fall 2024: COMS W4460


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 
COMS 4460  001/13626  F 10:10am  12:40pm 829 Seeley W. Mudd Building 
William Reinisch  3.00  39/40 
COMS W4701 ARTIFICIAL INTELLIGENCE. 3.00 points.
CC/GS: Partial Fulfillment of Science Requirement
Prerequisites: (COMS W3134 or COMS W3136 or COMS W3137) and any course on probability. Prior knowledge of Python is recommended.
Prior knowledge of Python is recommended. Provides a broad understanding of the basic techniques for building intelligent computer systems. Topics include statespace problem representations, problem reduction and andor 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
Spring 2024: COMS W4701


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 4701  001/12086  M W 2:40pm  3:55pm 501 Northwest Corner 
Tony Dear  3.00  90/164 
COMS 4701  002/12087  M W 4:10pm  5:25pm 501 Northwest Corner 
Tony Dear  3.00  102/164 
COMS 4701  V01/17158  
Tony Dear  3.00  8/99 
Fall 2024: COMS W4701


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 
COMS 4701  001/11951  T Th 10:10am  11:25am 501 Schermerhorn Hall 
Ansaf SallebAouissi  3.00  197/180 
COMS 4701  002/11952  T Th 11:40am  12:55pm 501 Schermerhorn Hall 
Ansaf SallebAouissi  3.00  196/180 
COMS 4701  V01/17524  
Ansaf SallebAouissi  3.00  20/99 
COMS W4705 NATURAL LANGUAGE PROCESSING. 3.00 points.
Lect: 3.
Prerequisites: (COMS W3134 or COMS W3136 or COMS W3137) or the instructor's permission.
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
Spring 2024: COMS W4705


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 4705  001/12088  M W 2:40pm  3:55pm 451 Computer Science Bldg 
Daniel Bauer  3.00  110/110 
COMS 4705  002/12090  F 10:10am  12:40pm 301 Pupin Laboratories 
Daniel Bauer  3.00  205/272 
COMS 4705  V02/15423  
Daniel Bauer  3.00  18/99 
Fall 2024: COMS W4705


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 
COMS 4705  001/11953  F 10:10am  12:40pm 417 International Affairs Bldg 
Daniel Bauer  3.00  223/240 
COMS 4705  002/11954  M W 4:10pm  5:25pm 451 Computer Science Bldg 
Zhou Yu  3.00  45/100 
COMS 4705  V01/17525  
Daniel Bauer  3.00  21/99 
COMS W4706 Spoken Language Processing. 3 points.
CC/GS: Partial Fulfillment of Science Requirement
Prerequisites: (COMS W3134 or COMS W3136 or COMS W3137) or the instructor's permission.
Computational approaches to speech generation and understanding. Topics include speech recognition and understanding, speech analysis for computational linguistics research, and speech synthesis. Speech applications including dialogue systems, data mining, summarization, and translation. Exercises involve data analysis and building a small texttospeech system.
COMS W4721 MACHINE LEARNING FOR DATA SCI. 3.00 points.
Spring 2024: COMS W4721


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 4721  001/12843  F 1:10pm  3:40pm 501 Schermerhorn Hall 
Robert Kramer, Nakul Verma  3.00  171/189 
COMS 4721  V01/16718  
Nakul Verma  3.00  2/99 
COMS W4725 Knowledge representation and reasoning. 3 points.
Lect: 3.Not offered during 20232024 academic year.
Prerequisites: (COMS W4701)
General aspects of knowledge representation (KR). The two fundamental paradigms (semantic networks and frames) and illustrative systems. Topics include hybrid systems, time, action/plans, defaults, abduction, and casebased reasoning. Throughout the course particular attention is paid to design tradeoffs between language expressiveness and reasoning complexity, and issues relating to the use of KR systems in larger applications.
COMS W4731 Computer Vision I: First Principles. 3.00 points.
Lect: 3.
Prerequisites: Fundamentals of calculus, linear algebra, and C programming. Students without any of these prerequisites are advised to contact the instructor prior to taking the course.
Introductory course in computer vision. Topics include image formation and optics, image sensing, binary images, image processing and filtering, edge extraction and boundary detection, region growing and segmentation, pattern classification methods, brightness and reflectance, shape from shading and photometric stereo, texture, binocular stereo, optical flow and motion, 2D and 3D object representation, object recognition, vision systems and applications
Fall 2024: COMS W4731


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 4731  001/11955  M W 10:10am  11:25am 451 Computer Science Bldg 
Shree Nayar  3.00  110/100 
COMS W4732 Computer Vision II: Learning. 3.00 points.
Advanced course in computer vision. Topics include convolutional networks and backpropagation, object and action recognition, selfsupervised and fewshot learning, image synthesis and generative models, object tracking, vision and language, vision and audio, 3D representations, interpretability, and bias, ethics, and media deception
Spring 2024: COMS W4732


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 4732  001/12091  F 10:10am  12:40pm 451 Computer Science Bldg 
Carl Vondrick  3.00  109/100 
COMS 4732  V01/15424  
Carl Vondrick  3.00  46/99 
COMS W4733 COMPUTATIONAL ASPECTS OF ROBOTICS. 3.00 points.
CC/GS: Partial Fulfillment of Science Requirement
Prerequisites: (COMS W3134 or COMS W3136COMS W3137)
Introduction to fundamental problems and algorithms in robotics. Topics include configuration spaces, motion and sensor models, search and samplingbased planning, state estimation, localization and mapping, perception, and learning
Spring 2024: COMS W4733


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 4733  001/14014  F 1:10pm  3:40pm 501 Northwest Corner 
Tony Dear  3.00  95/164 
COMS 4733  V01/18546  
Tony Dear  3.00  5/99 
COMS W4735 VISUAL INTERFACES TO COMPUTERS. 3.00 points.
Lect: 3.
Prerequisites: (COMS W3134 or COMS W3136 or COMS W3137)
Visual input as data and for control of computer systems. Survey and analysis of architecture, algorithms, and underlying assumptions of commercial and research systems that recognize and interpret human gestures, analyze imagery such as fingerprint or iris patterns, generate natural language descriptions of medical or map imagery. Explores foundations in human psychophysics, cognitive science, and artificial intelligence
COMS W4737 Biometrics. 3 points.
CC/GS: Partial Fulfillment of Science Requirement
Prerequisites: a background at the sophomore level in computer science, engineering, or like discipline.
In this course. we will explore the latest advances in biometrics as well as the machine learning techniques behind them. Students will learn how these technologies work and how they are sometimes defeated. Grading will be based on homework assignments and a final project. There will be no midterm or final exam. This course shares lectures with COMS E6737. Students taking COMS E6737 are required to complete additional homework problems and undertake a more rigorous final project. Students will only be allowed to earn credit for COMS W4737 or COMS E6737 and not both.
COMS W4762 Machine Learning for Functional Genomics. 3 points.
Prerequisites: Proficiency in a highlevel programming language (Python/R/Julia). An introductory machine learning class (such as COMS 4771 Machine Learning) will be helpful but is not required.
Prerequisites: see notes re: points
This course will introduce modern probabilistic machine learning methods using applications in data analysis tasks from functional genomics, where massivelyparallel sequencing is used to measure the state of cells: e.g. what genes are being expressed, what regions of DNA (“chromatin”) are active (“open”) or bound by specific proteins.
COMS E4762 Machine Learning for Functional Genomics. 3.00 points.
This course will introduce modern probabilistic machine learning methods using applications in data analysis tasks from functional genomics, where massivelyparallel sequencing is used to measure the state of cells: e.g. what genes are being expressed, what regions of DNA (“chromatin”) are active (“open”) or bound by specific proteins
Fall 2024: COMS E4762


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 4762  001/11956  F 1:10pm  3:40pm 451 Computer Science Bldg 
David Knowles  3.00  8/100 
COMS W4771 MACHINE LEARNING. 3.00 points.
Lect: 3.
Prerequisites: Any introductory course in linear algebra and any introductory course in statistics are both required. Highly recommended: COMS W4701 or knowledge of Artificial Intelligence.
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
Spring 2024: COMS W4771


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 4771  001/12092  T Th 1:10pm  2:25pm 451 Computer Science Bldg 
Nakul Verma  3.00  73/110 
COMS 4771  002/12093  T Th 2:40pm  3:55pm 451 Computer Science Bldg 
Nakul Verma  3.00  78/110 
COMS 4771  V01/16720  
Nakul Verma  3.00  5/99 
Fall 2024: COMS W4771


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 
COMS 4771  001/11957  T Th 2:40pm  3:55pm 451 Computer Science Bldg 
Nakul Verma  3.00  0/110 
COMS 4771  V01/17526  
Nakul Verma  3.00  0/99 
COMS W4772 ADVANCED MACHINE LEARNING. 3.00 points.
Lect: 3.
Prerequisites: (COMS W4771) or instructor's permission; knowledge of linear algebra & introductory probability or statistics is required.
An exploration of advanced machine learning tools for perception and behavior learning. How can machines perceive, learn from, and classify human activity computationally? Topics include appearancebased models, principal and independent components analysis, dimensionality reduction, kernel methods, manifold learning, latent models, regression, classification, Bayesian methods, maximum entropy methods, realtime tracking, extended Kalman filters, time series prediction, hidden Markov models, factorial HMMS, inputoutput HMMs, Markov random fields, variational methods, dynamic Bayesian networks, and Gaussian/Dirichlet processes. Links to cognitive science
COMS W4773 Machine Learning Theory. 3 points.
Prerequisites: Machine Learning (COMS W4771). Background in probability and statistics, linear algebra, and multivariate calculus. Ability to program in a highlevel language, and familiarity with basic algorithm design and coding principles.
Prerequisites: see notes re: points
Core topics from unsupervised learning such as clustering, dimensionality reduction and density estimation will be studied in detail. Topics in clustering: kmeans clustering, hierarchical clustering, spectral clustering, clustering with various forms of feedback, good initialization techniques and convergence analysis of various clustering procedures. Topics in dimensionality reduction: linear techniques such as PCA, ICA, Factor Analysis, Random Projections, nonlinear techniques such as LLE, IsoMap, Laplacian Eigenmaps, tSNE, and study of embeddings of general metric spaces, what sorts of theoretical guarantees can one provide about such techniques. Miscellaneous topics: design and analysis of data structures for fast Nearest Neighbor search such as Cover Trees and LSH. Algorithms will be implemented in either Matlab or Python.
COMS E4773 Machine Learning Theory. 3.00 points.
Theoretical study of algorithms for machine learning and highdimensional data analysis. Topics include highdimensional probability, theory of generalization and statistical learning, online learning and optimization, spectral analysis
Spring 2024: COMS E4773


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 4773  001/12094  T Th 8:40am  9:55am 451 Computer Science Bldg 
Daniel Hsu  3.00  34/60 
COMS W4774 Unsupervised Learning. 3.00 points.
Prerequisites: Solid background in multivariate calculus, linear algebra, basic probability, and algorithms.
Prerequisites: see notes re: points
Core topics from unsupervised learning such as clustering, dimensionality reduction and density estimation will be studied in detail. Topics in clustering: kmeans clustering, hierarchical clustering, spectral clustering, clustering with various forms of feedback, good initialization techniques and convergence analysis of various clustering procedures. Topics in dimensionality reduction: linear techniques such as PCA, ICA, Factor Analysis, Random Projections, nonlinear techniques such as LLE, IsoMap, Laplacian Eigenmaps, tSNE, and study of embeddings of general metric spaces, what sorts of theoretical guarantees can one provide about such techniques. Miscellaneous topics: design and analysis of datastructures for fast Nearest Neighbor search such as Cover Trees and LSH. Algorithms will be implemented in either Matlab or Python
Fall 2024: COMS W4774


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 4774  001/11958  T Th 1:10pm  2:25pm 451 Computer Science Bldg 
Nakul Verma  3.00  0/50 
COMS W4775 Causal Inference. 3.00 points.
Prerequisites: Discrete Math, Calculus, Statistics (basic probability, modeling, experimental design), some programming experience.
Prerequisites: see notes re: points
Causal Inference theory and applications. The theoretical topics include the 3layer causal hierarchy, causal bayesian networks, structural learning, the identification problem and the docalculus, linear identifiability, bounding, and counterfactual analysis. The applied part includes intersection with statistics, the empiricaldata sciences (social and health), and AI and ML
Fall 2024: COMS W4775


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 4775  001/11959  M W 4:10pm  5:25pm 616 Martin Luther King Building 
Elias Bareinboim  3.00  33/50 
COMS E4775 Causal Inference. 3 points.
Prerequisites: (COMS4711W) and Discrete Math, Calculus, Statistics (basic probability, modeling, experimental design), Some programming experience
Causal Inference theory and applications. The theoretical topics include the 3layer causal hierarchy, causal bayesian networks, structural learning, the identification problem and the docalculus, linear identifiability, bounding, and counterfactual analysis. The applied part includes intersection with statistics, the empiricaldata sciences (social and health), and AI and ML.
COMS W4776 Machine Learning for Data Science. 3 points.
Lect.: 3
Prerequisites: (STAT GU4001 or IEOR E4150) and linear algebra.
Introduction to machine learning, emphasis on data science. Topics include least square methods, Gaussian distributions, linear classification, linear regression, maximum likelihood, exponential family distributions, Bayesian networks, Bayesian inference, mixture models, the EM algorithm, graphical models, hidden Markov models, support vector machines kernel methods. Emphasizes methods and problems relevant to big data. Students may not receive credit for both COMS W4771 and W4776.
COMS W4824 COMPUTER ARCHITECTURE. 3.00 points.
COMS W4835 COMPUTER ORGANIZATION II. 3.00 points.
COMS E4899 Research Training. 0.00 points.
Research training course. Recommended in preparation for laboratory related research
COMS W4901 Projects in Computer Science. 13 points.
Prerequisites: Approval by a faculty member who agrees to supervise the work.
A secondlevel independent project involving laboratory work, computer programming, analytical investigation, or engineering design. May be repeated for credit, but not for a total of more than 3 points of degree credit. Consult the department for section assignment.
COMS W4910 CURRICULAR PRACTICAL TRAINING. 1.00 point.
COMS E4995 COMPUTER ARTS/VIDEO GAMES. 3.00 points.
Special topics arranged as the need and availability arises. Topics are usually offered on a onetime basis. Since the content of this course changes each time it is offered, it may be repeated for credit. Consult the department for section assignment
COMS W4995 TOPICS IN COMPUTER SCIENCE. 3.00 points.
Lect: 3.
Prerequisites: Instructor's permission.
Selected 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
Spring 2024: COMS W4995


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

COMS 4995  001/12095  T Th 8:40am  9:55am 1024 Seeley W. Mudd Building 
Andrew Blumberg  3.00  26/40 
COMS 4995  002/12096  M W 5:40pm  6:55pm 1024 Seeley W. Mudd Building 
Yongwhan Lim  3.00  11/50 
COMS 4995  003/12098  Th 4:10pm  6:40pm 1127 Seeley W. Mudd Building 
Christian Swinehart  3.00  33/40 
COMS 4995  004/12099  T Th 5:40pm  6:55pm 451 Computer Science Bldg 
Austin Reiter  3.00  95/110 
COMS 4995  005/12101  F 10:10am  12:40pm 1127 Seeley W. Mudd Building 
Michelle Levine  3.00  24/40 
COMS 4995  006/12102  T 1:10pm  3:40pm 1127 Seeley W. Mudd Building 
Gary Zamchick  3.00  39/40 
COMS 4995  008/12104  W 4:10pm  6:40pm 451 Computer Science Bldg 
Jae Lee, Hans Montero  3.00  74/110 
COMS 4995  030/12956  T 7:00pm  9:30pm 413 Kent Hall 
Adam Kelleher  3.00  63/70 
COMS 4995  032/12965  W 4:10pm  6:40pm 329 Pupin Laboratories 
Vijay Pappu  3.00  101/100 
COMS 4995  V01/18718  
Andrew Blumberg  3.00  0/99 
COMS 4995  V02/15425  
Yongwhan Lim  3.00  0/99 
COMS 4995  V08/16721  
Jae Lee, Hans Montero  3.00  2/99 
COMS 4995  V32/20861  
Vijay Pappu  3.00  20/99 
Fall 2024: COMS W4995


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 
COMS 4995  001/11960  T 4:10pm  6:40pm 829 Seeley W. Mudd Building 
Paul Blaer, Jason Cahill  3.00  0/40 
COMS 4995  002/11961  F 10:10am  12:40pm 644 Seeley W. Mudd Building 
Bjarne Stroustrup  3.00  26/33 
COMS 4995  003/11962  M W 1:10pm  2:25pm 633 Seeley W. Mudd Building 
Stephen Edwards  3.00  41/70 
COMS 4995  004/11963  W 4:10pm  6:40pm 833 Seeley W. Mudd Building 
Jae Lee, Hans Montero  3.00  39/110 
COMS 4995  005/11964  T Th 2:40pm  3:55pm 428 Pupin Laboratories 
Peter Belhumeur  3.00  138/125 
COMS 4995  006/11965  T Th 5:40pm  6:55pm 644 Seeley W. Mudd Building 
Itsik Pe'er  3.00  7/40 
COMS 4995  007/11966  T Th 5:40pm  6:55pm 451 Computer Science Bldg 
Yongwhan Lim  3.00  4/100 
COMS 4995  008/11967  T 1:10pm  3:40pm 829 Seeley W. Mudd Building 
Gary Zamchick  3.00  44/40 
COMS 4995  009/11968  W 10:10am  12:40pm 415 Schapiro Cepser 
Michelle Levine  3.00  9/40 
COMS 4995  010/11969  Th 4:10pm  6:40pm 633 Seeley W. Mudd Building 
Homayoon Beigi  3.00  25/60 
COMS 4995  011/13628  T Th 4:10pm  5:25pm 451 Computer Science Bldg 
Hugh Thomas  3.00  100/100 
COMS 4995  012/15929  W 7:00pm  9:30pm 451 Computer Science Bldg 
Yihao Zhang  3.00  18/50 
COMS 4995  030/13530  M 7:00pm  9:30pm 833 Seeley W. Mudd Building 
Andi Cupallari  3.00  45/120 
COMS 4995  031/13532  W 7:00pm  9:30pm 501 Schermerhorn Hall 
Andrei Simion  3.00  144/170 
COMS 4995  032/13534  T 4:10pm  6:40pm 402 Chandler 
Vijay Pappu  3.00  116/120 
COMS 4995  033/13533  Th 7:00pm  9:30pm 402 Chandler 
Vijay Pappu  3.00  78/135 
COMS 4995  V03/17527  
Stephen Edwards  3.00  6/99 
COMS 4995  V10/17528  
Homayoon Beigi  3.00  2/99 
COMS 4995  V32/17555  
Vijay Pappu  3.00  19/99 
COMS W4996 Special topics in computer science, II. 3 points.
Lect: 3.Not offered during 20232024 academic year.
Prerequisites: Instructor's permission.
A continuation of COMS W4995 when the special topic extends over two terms.
Computer Science  Electrical Engineering
CSEE W3826 FUNDAMENTALS OF COMPUTER ORG. 3.00 points.
CSEE W3827 FUNDAMENTALS OF COMPUTER SYSTS. 3.00 points.
Lect: 3.
Prerequisites: an introductory programming course.
Fundamentals of computer organization and digital logic. Boolean algebra, Karnaugh maps, basic gates and components, flipflops and latches, counters and state machines, basics of combinational and sequential digital design. Assembly language, instruction sets, ALU’s, singlecycle and multicycle processor design, introduction to pipelined processors, caches, and virtual memory
Spring 2024: CSEE W3827


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

CSEE 3827  001/12121  T Th 10:10am  11:25am 207 Mathematics Building 
Daniel Rubenstein  3.00  134/152 
CSEE 3827  002/12122  T Th 11:40am  12:55pm 428 Pupin Laboratories 
Daniel Rubenstein  3.00  136/147 
Fall 2024: CSEE W3827


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 
CSEE 3827  001/11985  T Th 11:40am  12:55pm 301 Pupin Laboratories 
Martha Kim, Martha Barker  3.00  164/164 
CSEE 3827  002/11986  T Th 1:10pm  2:25pm 301 Pupin Laboratories 
Martha Kim, Martha Barker  3.00  164/164 
CSEE W4119 COMPUTER NETWORKS. 3.00 points.
Introduction to computer networks and the technical foundations of the Internet, including applications, protocols, local area networks, algorithms for routing and congestion control, security, elementary performance evaluation. Several written and programming assignments required
Spring 2024: CSEE W4119


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

CSEE 4119  002/12160  T Th 11:40am  12:55pm 451 Computer Science Bldg 
Xia Zhou  3.00  101/110 
CSEE 4119  V02/15427  
Xia Zhou  3.00  6/99 
Fall 2024: CSEE W4119


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 
CSEE 4119  001/14071  T Th 4:10pm  5:25pm 614 Schermerhorn Hall 
Ethan KatzBassett, Thomas Koch  3.00  92/120 
CSEE 4119  002/14070  T Th 5:40pm  6:55pm 614 Schermerhorn Hall 
Ethan KatzBassett, Thomas Koch  3.00  47/120 
CSEE 4119  V01/19321  
Ethan KatzBassett  3.00  0/99 
CSEE W4121 COMPUTER SYSTEMS FOR DATA SCIENCE. 3.00 points.
Prerequisites: Background in Computer System Organization and good working knowledge of C/C++. Corequisites: CSOR W4246 Algorithms for Data Science, STAT W4203 Probability Theory, or equivalent as approved by faculty advisor.
An introduction to computer architecture and distributed systems with an emphasis on warehouse scale computing systems. Topics will include fundamental tradeoffs in computer systems, hardware and software techniques for exploiting instructionlevel parallelism, datalevel parallelism and task level parallelism, scheduling, caching, prefetching, network and memory architecture, latency and throughput optimizations, specialization, and an introduction to programming data center computers
Spring 2024: CSEE W4121


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

CSEE 4121  002/12974  Th 7:00pm  9:30pm 417 International Affairs Bldg 
Sambit Sahu, Robert Kramer  3.00  178/175 
CSEE W4140 NETWORKING LABORATORY. 3.00 points.
Lect: 3.
Prerequisites: (CSEE W4119) or equivalent.
In this course, students will learn how to put principles into practice, in a handsonnetworking lab course. The course will cover the technologies and protocols of the Internet using equipment currently available to large internet service providers such as CISCO routers and end systems. A set of laboratory experiments will provide handson experience with engineering widearea networks and will familiarize students with the Internet Protocol (IP), Address Resolution Protocol (ARP), Internet Control Message Protocol (ICMP), User Datagram Protocol (UDP) and Transmission Control Protocol (TCP), the Domain Name System (DNS), routing protocols (RIP, OSPF, BGP), network management protocols (SNMP, and applicationlevel protocols (FTP, TELNET, SMTP)
CSEE W4823 Advanced Logic Design. 3 points.
Lect: 3.
Prerequisites: (CSEE W3827) or a half semester introduction to digital logic, or the equivalent.
An introduction to modern digital system design. Advanced topics in digital logic: controller synthesis (Mealy and Moore machines); adders and multipliers; structured logic blocks (PLDs, PALs, ROMs); iterative circuits. Modern design methodology: register transfer level modelling (RTL); algorithmic state machines (ASMs); introduction to hardware description languages (VHDL or Verilog); systemlevel modelling and simulation; design examples.
Fall 2024: CSEE W4823


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

CSEE 4823  001/11307  T Th 2:40pm  3:55pm Room TBA 
Mingoo Seok  3  117/110 
CSEE W4824 COMPUTER ARCHITECTURE. 3.00 points.
Lect: 3.
Prerequisites: (CSEE W3827) or equivalent.
Focuses on advanced topics in computer architecture, illustrated by case studies from classic and modern processors. Fundamentals of quantitative analysis. Pipelining. Memory hierarchy design. Instructionlevel and threadlevel parallelism. Datalevel parallelism and graphics processing units. Multiprocessors. Cache coherence. Interconnection networks. Multicore processors and systemsonchip. Platform architectures for embedded, mobile, and cloud computing
Fall 2024: CSEE W4824


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

CSEE 4824  001/11987  M W 10:10am  11:25am 214 Pupin Laboratories 
Simha Sethumadhavan  3.00  61/55 
CSEE W4840 EMBEDDED SYSTEMS. 3.00 points.
Lect: 3.
Prerequisites: (CSEE W4823)
Embedded system design and implementation combining hardware and software. I/O, interfacing, and peripherals. Weekly laboratory sessions and term project on design of a microprocessorbased embedded system including at least one custom peripheral. Knowledge of C programming and digital logic required
Spring 2024: CSEE W4840


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

CSEE 4840  001/12033  M W 1:10pm  2:25pm 451 Computer Science Bldg 
Stephen Edwards  3.00  97/110 
CSEE W4868 SYSTEMONCHIP PLATFORMS. 3.00 points.
Prerequisites: (COMS W3157) and (CSEE W3827)
Design and programming of SystemonChip (SoC) platforms. Topics include: overview of technology and economic trends, methodologies and supporting CAD tools for systemlevel design, models of computation, the SystemC language, transactionlevel modeling, software simulation and virtual platforms, hardwaresoftware partitioning, highlevel synthesis, system programming and device drivers, onchip communication, memory organization, power management and optimization, integration of programmable processor cores and specialized accelerators. Case studies of modern SoC platforms for various classes of applications
Fall 2024: CSEE W4868


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

CSEE 4868  001/11988  T Th 11:40am  12:55pm 141 Uris Hall 
Luca Carloni  3.00  60/60 
Computer Science  Biomedical Engineering
CBMF W4761 COMPUTATIONAL GENOMICS. 3.00 points.
Lect: 3.
Prerequisites: Working knowledge of at least one programming language, and some background in probability and statistics.
Computational techniques for analyzing genomic data including DNA, RNA, protein and gene expression data. Basic concepts in molecular biology relevant to these analyses. Emphasis on techniques from artificial intelligence and machine learning. Stringmatching algorithms, dynamic programming, hidden Markov models, expectationmaximization, neural networks, clustering algorithms, support vector machines. Students with life sciences backgrounds who satisfy the prerequisites are encouraged to enroll
Spring 2024: CBMF W4761


Course Number  Section/Call Number  Times/Location  Instructor  Points  Enrollment 

CBMF 4761  001/12050  M W 5:40pm  6:55pm 1127 Seeley W. Mudd Building 
Itsik Pe'er  3.00  32/60 
CBMF 4761  V01/15241  
Itsik Pe'er  3.00  1/99 
Follow Us