Computer Science

Departmental Office: 450 Computer Science Building; 212-939-7000
http://www.cs.columbia.edu/

Director of Undergraduate Studies: Dr. Jae Woo Lee, 715 CEPSR; 212-939-7066; jae@cs.columbia.edu

The majors in the Department of Computer Science provide students with the appropriate computer science background necessary for graduate study or a professional career. Computers impact nearly all areas of human endeavor. Therefore, the department also offers courses for students who do not plan a computer science major or concentration. The computer science majors offer maximum flexibility by providing students with a range of options for program specialization. The department offers four majors: computer science; information science; data science, offered jointly with the Statistics Department; and computer science-mathematics, offered jointly with the Mathematics Department.

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 upper-level courses that represent area foundations within computer science. The remaining electives are selected from the complete list of upper-level 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. 

Information Science Major

Information science is an interdisciplinary major designed to provide a student with an understanding of how information is organized, accessed, stored, distributed, and processed in strategic segments of today’s society. Recent years have seen an explosive growth of online information, with people of all ages and all walks of life making use of the World Wide Web and other information in digital form.

This major puts students at the forefront of the information revolution, studying how online access touches on all disciplines and changing the very way people communicate. Organizations have large stores of in-house information that are crucial to their daily operation. Today’s systems must enable quick access to relevant information, must ensure that confidential information is secure, and must enable new forms of communication among people and their access to information.

The information science major can choose a scientific focus on algorithms and systems for organizing, accessing, and processing information, or an interdisciplinary focus in order to develop an understanding of, and tools for, information modeling and use within an important sector of modern society such as economics or health.

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.

Pre-Introductory 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 pre-introductory 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 pre-introductory course for CS majors.  ENGI E1006 and COMS W1002 do not count towards Computer Science major.

Laboratory Facilities

The department has well-equipped lab areas for research in computer graphics, computer-aided 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 real-time multimedia.

Research labs contain several large Linux and Solaris clusters; Puma 500 and IBM robotic arms; a UTAH-MIT dexterous hand; an Adept-1 robot; three mobile research robots; a real-time defocus range sensor; interactive 3-D graphics workstations with 3-D position and orientation trackers; prototype wearable computers, wall-sized stereo projection systems; see-through head-mounted 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 OC-3 Internet and internet 2 gateways. The campus has 802.11b/g wireless LAN coverage.

The research facility is supported by a full-time staff of professional system administrators and programmers.

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
Shih-Fu Chang
Feniosky Peña-Mora
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 Katz-Bassett
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

Guidelines for all Computer Science Majors and Minors

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:

However, COMS W1005 and COMS W3136 cannot be counted towards the Computer Science major, minor, and concentration. 

Transfer and Double Counting

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/two-course limits.

Double-counting policies are to be construed within the larger double-counting policy of the student's home school. Double-counting policies are detailed on each School's Bulletin and/or Catalogue.

The CS department allows the following courses in the CS Core and Mathematics requirement to be double-counted with another major, minor, or concentration. No other courses can be double-counted with another program.

  • COMS W1004
  • Any calculus courses (including Honors Math A and B)
  • One Linear Algebra course
  • One Probability/Statistics course

Grading

Barnard does not allow a grade of D to count towards any major. Consult with your advisor.

Guidelines for all Computer Science Majors and Concentrators

The following requirements are new as of the academic year 2023-2024. Students who declared a CS major in the academic year 2022-2023 or earlier have the option to follow the old requirements.

Students who declared a CS major in the academic year 2022-2023 or earlier have the option to follow the requirements listed below or 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 accurate than the information in the archived Bulletins. Students with questions about which requirements to follow are advised to talk with the Director of Undergraduate Studies.

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:

However, COMS W1005 and COMS W3136 cannot be counted towards the Computer Science major, minor, and concentration. 

Transfer and Double Counting

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/two-course limits.

Double-counting policies are to be construed within the larger double-counting policy of the student's home school. Double-counting policies are detailed on each School's Bulletin and/or Catalogue.

The CS department allows the following courses in the CS Core and Mathematics requirement to be double-counted with another major, minor, or concentration. No other courses can be double-counted 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 concentration.


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.

Program of Study

Adjustments were made to the course lists below in March 2023.

Students who declared before Spring 2024 should see the Department of Computer Science website for the old requirements. 

For students who declare in Spring 2024 and beyond:

Mathematics Requirement (6-11 points)

Calculus Requirement: Select one of the following courses:
MATH UN1201CALCULUS III
MATH UN1205ACCELERATED MULTIVARIABLE CALC
APMA E2000MULTV. 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.
Linear Algebra Requirement: Select one of the following courses:
COMS W3251COMPUTATIONAL LINEAR ALGEBRA (recommended)
MATH UN2010LINEAR ALGEBRA
MATH UN2015Linear Algebra and Probability
MATH UN2020Honors Linear Algebra
APMA E2101INTRO TO APPLIED MATHEMATICS
APMA E3101APPLIED MATH I: LINEAR ALGEBRA
Probability / Statistics Requirement: Select one of the following courses:
MATH UN2015Linear Algebra and Probability
IEOR E3658PROBABILITY FOR ENGINEERS
STAT UN1201CALC-BASED INTRO TO STATISTICS
STAT GU4001INTRODUCTION 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.
Recommended (3-4 points)
ENGI E1006INTRO TO COMP FOR ENG/APP SCI (recommended but not required)
or COMS W1002 COMPUTING IN CONTEXT

Computer Science Core (20-21 points):

First Year
COMS W1004Introduction to Computer Science and Programming in Java
or COMS W1007 Honors Introduction to Computer Science
Sophomore Year
COMS W3134Data Structures in Java
or COMS W3137 HONORS DATA STRUCTURES & ALGOL
COMS W3157ADVANCED PROGRAMMING
COMS W3203DISCRETE MATHEMATICS
Junior and Senior Year
Complete the remaining required core courses:
COMS W3261COMPUTER SCIENCE THEORY
CSEE W3827FUNDAMENTALS OF COMPUTER SYSTS

Area Foundation Courses (9 to 12 points):

Select three from the following list:

COMS W4111INTRODUCTION TO DATABASES
COMS W4113FUND-LARGE-SCALE DIST SYSTEMS
COMS W4115PROGRAMMING LANG & TRANSLATORS
COMS W4118OPERATING SYSTEMS I
COMS W4119COMPUTER NETWORKS
COMS W4152Engineering Software-as-a-Service
COMS W4156ADVANCED SOFTWARE ENGINEERING
COMS W4160COMPUTER GRAPHICS
COMS W4167COMPUTER ANIMATION
COMS W4170USER INTERFACE DESIGN
COMS W4181SECURITY I
CSOR E4231ANALYSIS OF ALGORITHMS I
COMS W4236INTRO-COMPUTATIONAL COMPLEXITY
COMS W4701ARTIFICIAL INTELLIGENCE
COMS W4705NATURAL LANGUAGE PROCESSING
COMS W4731Computer Vision I: First Principles
COMS W4733COMPUTATNL ASPECTS OF ROBOTICS
CBMF W4761COMPUTATIONAL GENOMICS
COMS W4771MACHINE LEARNING
CSEE W4824COMPUTER ARCHITECTURE
CSEE W4868SYSTEM-ON-CHIP 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 3000-level courses offered by Barnard CS.

Restrictions

Note: 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 Computer Science—Mathematics

For a description of the joint major in computer science—mathematics, see the Mathematics section in this bulletin.

For a description of the joint major in computer science—mathematics, see the Mathematics section in this bulletin.

For a description of the joint major in mathematics—computer science, see the Mathematics section in this catalog.


Major in Information Science

Please read Guidelines for all Computer Science Majors and Concentrators above.

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

COMS W1001Introduction to Information Science
or COMS W1002 Computing in Context
COMS W1004Introduction to Computer Science and Programming in Java
COMS W3107Clean Object-Oriented Design
COMS W3134Data Structures in Java
STAT GU4001INTRODUCTION 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:

COMS W4111INTRODUCTION TO DATABASES
COMS W4170USER INTERFACE DESIGN
COMS W4701ARTIFICIAL INTELLIGENCE
COMS W3410COMPUTERS AND SOCIETY
SOCI UN3010METHODS FOR SOCIAL RESEARCH
SOCI UN3960SEMINAR - 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:

COMS W4111INTRODUCTION TO DATABASES
COMS W4701ARTIFICIAL INTELLIGENCE
COMS W4771MACHINE LEARNING
ECON UN3412INTRODUCTION TO ECONOMETRICS
ECON UN3025FINANCIAL ECONOMICS
ECON UN3265MONEY 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:

COMS W4111INTRODUCTION TO DATABASES
COMS W4170USER INTERFACE DESIGN
COMS W4701ARTIFICIAL INTELLIGENCE
BINF G4001
BIOL W4037Bioinformatics of Gene Expression
ECBM E3060/E4060INTRO-GENOMIC INFO SCI & TECH

Major in Data Science

Please read Guidelines for all Computer Science Majors and Concentrators above.

In response to the ever-growing 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.

Prerequisites (15 points)
MATH UN1101CALCULUS I
MATH UN1102CALCULUS II
MATH UN1201CALCULUS III
MATH UN2010LINEAR ALGEBRA
This introductory Statistics course:
STAT UN1201CALC-BASED INTRO TO STATISTICS
Statistics (12 points)
STAT GU4203PROBABILITY THEORY
STAT GU4204STATISTICAL INFERENCE
STAT GU4205LINEAR REGRESSION MODELS
STAT GU4241STATISTICAL MACHINE LEARNING
or COMS W4771 Machine Learning
Computer Science (12 points)
Select one of the following courses:
COMS W1004Introduction to Computer Science and Programming in Java
COMS W1005Introduction to Computer Science and Programming in MATLAB
COMS W1007Honors Introduction to Computer Science
ENGI E1006INTRO TO COMP FOR ENG/APP SCI
Select one of the following courses:
COMS W3134Data Structures in Java
COMS W3136ESSENTIAL DATA STRUCTURES
COMS W3137HONORS DATA STRUCTURES & ALGOL
Two required courses:
COMS W3203DISCRETE MATHEMATICS
CSOR W4231ANALYSIS OF ALGORITHMS I
Electives (15 points)
Select two of the following courses:
STAT UN3106APPLIED MACHINE LEARNING
STAT GU4206STAT COMP & INTRO DATA SCIENCE
STAT GU4224BAYESIAN STATISTICS
STAT GU4243APPLIED DATA SCIENCE
STAT Q4242Advanced Machine Learning
Select three of the following courses:
COMS W3261COMPUTER SCIENCE THEORY
COMS W4111INTRODUCTION TO DATABASES
COMS W4130Principles and Practice of Parallel Programming
COMS W4236INTRO-COMPUTATIONAL COMPLEXITY
COMS W4252INTRO-COMPUTATIONAL LEARN THRY
Any COMS W47xx course EXCEPT W4771

Minor in Computer Science

Please read Guidelines for all Computer Science Majors and Minors above.

For students who declare in Spring 2014 and beyond:

The minor in computer science requires a minimum of 22-24 points, as follows:

COMS W1004Introduction to Computer Science and Programming in Java
or COMS W1007 Honors Introduction to Computer Science
COMS W3203DISCRETE MATHEMATICS
COMS W3134Data Structures in Java
or COMS W3137 HONORS DATA STRUCTURES & ALGOL
COMS W3157ADVANCED PROGRAMMING
COMS W3261COMPUTER SCIENCE THEORY
CSEE W3827FUNDAMENTALS OF COMPUTER SYSTS (or any 3 point 4000-level computer science course)
Select one of the following courses:
MATH UN2010LINEAR ALGEBRA
APMA E2101INTRO TO APPLIED MATHEMATICS
APMA E3101APPLIED MATH I: LINEAR ALGEBRA
MATH V2020Honors Linear Algebra
STAT GU4001INTRODUCTION TO PROBABILITY AND STATISTICS
SIEO W3600INTRO PROBABILITY/STATISTICS

Concentration in Computer Science

Please read Guidelines for all Computer Science Majors and Concentrators above. Adjustments were made to the course lists below in March 2022.

For students who declare in Spring 2014 and beyond:

The concentration in computer science requires a minimum of 22-24 points, as follows:

COMS W1004Introduction to Computer Science and Programming in Java
or COMS W1007 Honors Introduction to Computer Science
COMS W3134Data Structures in Java
or COMS W3137 HONORS DATA STRUCTURES & ALGOL
COMS W3157ADVANCED PROGRAMMING
COMS W3203DISCRETE MATHEMATICS
COMS W3261COMPUTER SCIENCE THEORY
CSEE W3827FUNDAMENTALS OF COMPUTER SYSTS (or any 3 point 4000-level computer science course)
Select one of the following courses:
COMS W3251COMPUTATIONAL LINEAR ALGEBRA
MATH UN2010LINEAR ALGEBRA
MATH UN2015Linear Algebra and Probability
MATH V2020Honors Linear Algebra
APMA E2101INTRO TO APPLIED MATHEMATICS
APMA E3101APPLIED MATH I: LINEAR ALGEBRA
IEOR E3658PROBABILITY FOR ENGINEERS
STAT UN1201CALC-BASED INTRO TO STATISTICS
STAT GU4001INTRODUCTION 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: human-computer 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 domain-specific applications. Shared CS concepts and Python programming lectures with track-specific 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 2023: COMS W1002
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 1002 001/11194 T Th 2:40pm - 3:55pm
309 Havemeyer Hall
Adam Cannon 4.00 123/310
COMS 1002 002/11196 T Th 2:40pm - 3:55pm
326 Uris Hall
Adam Cannon, Mark Santolucito 4.00 38/60
COMS 1002 003/11197 T Th 2:40pm - 3:55pm
313 Fayerweather
Adam Cannon, Eugenia Antic 4.00 13/60
COMS 1002 004/11545 T Th 2:40pm - 3:55pm
415 Schapiro Cepser
Adam Cannon, Sitara Persad 4.00 22/40

COMS W1003 INTRO-COMPUT 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 problem-solving capabilities, and introductory Java programming skills. Assumes no prior programming background. Columbia University students may receive credit for only one of the following two courses: 1004 or 1005.

Fall 2023: COMS W1004
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 1004 001/11546 M W 2:40pm - 3:55pm
309 Havemeyer Hall
Paul Blaer 3 290/320
COMS 1004 002/11547 M W 5:40pm - 6:55pm
417 International Affairs Bldg
Paul Blaer 3 250/398
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 175/398
COMS 1004 002/12052 T Th 1:10pm - 2:25pm
417 International Affairs Bldg
Adam Cannon 3 152/398

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 problem-solving 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 W1007 Honors Introduction to Computer Science. 3 points.

Lect: 3.

Prerequisites: AP Computer Science with a grade of 4 or 5 or similar experience.

An honors-level introduction to computer science, intended primarily for students considering a major in computer science. Computer science as a science of abstraction. Creating models for reasoning about and solving problems. The basic elements of computers and computer programs. Implementing abstractions using data structures and algorithms. Taught in Java. 

COMS W1011 INTERMED COMPUTER PROGRAMMING. 3.00 points.

COMS W1012 COMPUTING IN CONTEXT REC. 0.00 points.

Fall 2023: COMS W1012
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 1012 001/11548 Th 7:10pm - 8:00pm
825 Seeley W. Mudd Building
Adam Cannon 0.00 40/40
COMS 1012 002/11198 F 10:10am - 10:50am
825 Seeley W. Mudd Building
Adam Cannon 0.00 23/40
COMS 1012 003/11199 F 11:00am - 11:50am
825 Seeley W. Mudd Building
Adam Cannon 0.00 23/40
COMS 1012 004/11200 F 2:00pm - 2:50pm
825 Seeley W. Mudd Building
Adam Cannon 0.00 34/40
COMS 1012 005/11201 F 9:00am - 9:40am
825 Seeley W. Mudd Building
Adam Cannon, Mark Santolucito 0.00 22/30
COMS 1012 006/11202 F 1:00pm - 1:50pm
825 Seeley W. Mudd Building
Adam Cannon, Mark Santolucito 0.00 17/30
COMS 1012 007/11203 Th 7:10pm - 8:00pm
327 Seeley W. Mudd Building
Adam Cannon 0.00 10/30
COMS 1012 008/11204 F 1:00pm - 1:50pm
337 Seeley W. Mudd Building
Adam Cannon 0.00 3/30
COMS 1012 009/11205 Th 7:10pm - 8:00pm
306 Uris Hall
Adam Cannon 0.00 15/20
COMS 1012 010/11206 F 11:00am - 11:50am
337 Seeley W. Mudd Building
Adam Cannon 0.00 7/20

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
Prerequisites: the instructors permission. Corequisites: COMS W1002 or COMS W1004 or COMS W1007 Corequisites: COMS W1004,COMS W1007,COMS W1002 Peer-led 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

Fall 2023: COMS W1404
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 1404 001/20584 F 8:40am - 9:55am
413 Hamilton Hall
Adam Cannon 1.00 10/16
COMS 1404 002/20585 F 10:10am - 11:25am
413 Hamilton Hall
Adam Cannon 1.00 12/16
COMS 1404 003/20586 F 11:40am - 12:55pm
413 Hamilton Hall
Adam Cannon 1.00 11/16
COMS 1404 004/20587 F 1:10pm - 2:25pm
413 Hamilton Hall
Adam Cannon 1.00 10/16
COMS 1404 005/20588 F 2:40pm - 3:55pm
413 Hamilton Hall
Adam Cannon 1.00 6/16
COMS 1404 006/20589 F 4:10pm - 5:25pm
413 Hamilton Hall
Adam Cannon 1.00 11/16
COMS 1404 007/20590 F 9:30am - 10:45am
309 Hamilton Hall
Adam Cannon 1.00 11/16
COMS 1404 008/20591 F 11:00am - 12:15pm
309 Hamilton Hall
Adam Cannon 1.00 5/16
COMS 1404 009/20592 F 12:30pm - 1:45pm
309 Hamilton Hall
Adam Cannon 1.00 4/16
COMS 1404 010/20593 F 2:00pm - 3:15pm
309 Hamilton Hall
Adam Cannon 1.00 6/16
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 0/16
COMS 1404 002/12054 F 10:10am - 11:25am
502 Northwest Corner
Adam Cannon 1.00 0/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 0/16
COMS 1404 005/12057 F 2:40pm - 3:55pm
502 Northwest Corner
Adam Cannon 1.00 0/16
COMS 1404 006/12058 F 4:10pm - 5:25pm
502 Northwest Corner
Adam Cannon 1.00 0/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 0/16
COMS 1404 009/12063 F 12:30pm - 1:45pm
253 Engineering Terrace
Adam Cannon 1.00 0/16
COMS 1404 010/12064 F 2:00pm - 3:15pm
253 Engineering Terrace
Adam Cannon 1.00 0/16

COMS W3011 INTERMED COMPUTER PROGRAMMING. 3.00 points.

COMS W3101 Programming Languages. 1 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.00-2.00 points.

Lect: 2. Lab: 0-2.

Prerequisites: Fluency in at least one programming language.
Prerequisites: Fluency in at least one programming language. Introduction to software development tools and environments. Each section devoted to a specific tool or environment. One-point sections meet for two hours each week for half a semester, and two point sections include an additional two-hour lab

Fall 2023: COMS W3102
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 3102 001/17021 M 6:10pm - 8:00pm
750 Schapiro Cepser
Emily Stolfo 1.00-2.00 26/60
COMS 3102 002/20662 F 6:10pm - 8:00pm
451 Computer Science Bldg
Shoaib Ahamed 1.00-2.00 42/60
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.00-2.00 77/70

COMS W3107 Clean Object-Oriented 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 object-oriented design patterns and clean coding practices. Taught in Java.Object-oriented design principles include: use cases; CRC; UML; javadoc; patterns (adapter, builder, command, composite, decorator, facade, factory, iterator, lazy evaluation, observer, singleton, strategy, template, visitor); design by contract; loop invariants; interfaces and inheritance hierarchies; anonymous classes and null objects; graphical widgets; events and listeners; Java's Object class; generic types; reflection; timers, threads, and locks

Fall 2023: COMS W3107
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 3107 001/11207 M W 4:10pm - 5:25pm
633 Seeley W. Mudd Building
John Kender 3.00 53/70

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.

Fall 2023: COMS W3134
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 3134 001/11208 M W 4:10pm - 5:25pm
301 Uris Hall
Brian Borowski 3 225/250
COMS 3134 002/11209 M W 5:40pm - 6:55pm
301 Uris Hall
Brian Borowski 3 100/250
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 250/250
COMS 3134 002/12068 M W 5:40pm - 6:55pm
301 Uris Hall
Brian Borowski 3 204/250

COMS W3136 ESSENTIAL DATA STRUCTURES. 4.00 points.

Prerequisites: (COMS W1004) or (COMS W1005) or (COMS W1007) or (ENGI E1006)
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, object-oriented 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 2023: COMS W3136
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 3136 001/11210 T Th 5:40pm - 6:55pm
451 Computer Science Bldg
Timothy Paine 4.00 25/65

COMS W3137 HONORS DATA STRUCTURES & ALGOL. 4.00 points.

Prerequisites: (COMS W1004) or (COMS W1007)
Corequisites: COMS W3203
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)
Prerequisites: (COMS W3134) or (COMS W3137) C programming language and Unix systems programming. Also covers Git, Make, TCP/IP networking basics, C fundamentals

Fall 2023: COMS W3157
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 3157 001/11211 T Th 2:40pm - 3:55pm
301 Pupin Laboratories
Jae Lee 4.00 241/272
COMS 3157 002/11212 T Th 5:40pm - 6:55pm
301 Pupin Laboratories
Jae Lee 4.00 214/272
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 353/398

COMS W3202 FINITE MATHEMATICS. 3.00 points.

COMS W3203 DISCRETE MATHEMATICS. 4.00 points.

Lect: 3.

Prerequisites: Any introductory course in computer programming.
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)

Fall 2023: COMS W3203
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 3203 001/11213 M W 2:40pm - 3:55pm
301 Pupin Laboratories
Tony Dear 4.00 120/180
COMS 3203 002/11214 M W 4:10pm - 5:25pm
428 Pupin Laboratories
Tony Dear 4.00 81/180
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 Salleb-Aouissi 4.00 203/200
COMS 3203 002/12071 T Th 11:40am - 12:55pm
301 Uris Hall
Ansaf Salleb-Aouissi 4.00 200/200

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
Prerequisites: (COMS W3203) Corequisites: COMS W3134,COMS W3136,COMS W3137 Regular languages: deterministic and non-deterministic finite automata, regular expressions. Context-free languages: context-free grammars, push-down automata. Turing machines, the Chomsky hierarchy, and the Church-Turing thesis. Introduction to Complexity Theory and NP-Completeness

Fall 2023: COMS W3261
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 3261 001/11215 M W 8:40am - 9:55am
451 Computer Science Bldg
Toniann Pitassi 3.00 97/110
COMS 3261 002/11216 M W 10:10am - 11:25am
451 Computer Science Bldg
Toniann Pitassi 3.00 100/110
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 150/150
COMS 3261 022/12073 T Th 11:40am - 12:55pm
501 Northwest Corner
Mihalis Yannakakis 3.00 160/160

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 2023: COMS W3410
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 3410 001/11217 T 5:30pm - 8:00pm
750 Schapiro Cepser
Ronald Baecker 3.00 54/72

COMS E3899 Research Training. 0.00 points.

Research training course. Recommended in preparation for laboratory related research

COMS W3902 UNDERGRADUATE THESIS. 0.00-6.00 points.

Prerequisites: Agreement by a faculty member to serve as thesis adviser.
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 one-time basis. Since the content of this course changes each time it is offered, it may be repeated for credit.

COMS W3998 UNDERGRAD PROJECTS IN COMP SCI. 1.00-3.00 points.

Prerequisites: Approval by a faculty member who agrees to supervise the work.
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, but not for a total of more than 3 points of degree credit. Consult the department for section assignment

COMS W3999 FIELDWORK. 1.00 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 128-credit 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 required. May not be used as a technical or non-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 128-credit 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 required. May not be used as a technical or non-technical 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: entity-relationship 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

Fall 2023: COMS W4111
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4111 001/11218 T Th 1:10pm - 2:25pm
301 Pupin Laboratories
Luis Gravano 3.00 203/225
COMS 4111 002/11219 F 10:10am - 12:40pm
417 International Affairs Bldg
Donald Ferguson 3.00 370/400
COMS 4111 V02/18665  
Donald Ferguson 3.00 22/99
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 106/200
COMS 4111 002/12075 F 10:10am - 12:40pm
417 International Affairs Bldg
Donald Ferguson 3.00 314/398
COMS 4111 V02/20370  
Donald Ferguson 3.00 13/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 large-scale database management systems. Storage methods and indexing, query processing and optimization, materialized views, transaction processing and recovery, object-relational databases, parallel and distributed databases, performance considerations. Programming projects are required

COMS W4113 FUND-LARGE-SCALE 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 large-scale distributed and cloud systems. Teaches abstractions, design and implementation techniques that enable the building of fast, scalable, fault-tolerant 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, Paxos-based consensus, MapReduce infrastructures, scalable distributed databases. Combines concepts and algorithms with descriptions of real-world implementations at Google, Facebook, Yahoo, Microsoft, LinkedIn, etc

Fall 2023: COMS W4113
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4113 001/11220 F 10:10am - 12:40pm
451 Computer Science Bldg
Roxana Geambasu 3.00 97/110
COMS 4113 V01/17090  
Roxana Geambasu 3.00 16/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.
Prerequisites: (COMS W3134 or COMS W3136 or COMS W3137) and (COMS W3261) and (CSEE W3827) or equivalent, or the instructors permission. Modern programming languages and compiler design. Imperative, object-oriented, declarative, functional, and scripting languages. Language syntax, control structures, data types, procedures and parameters, binding, scope, run-time 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

Fall 2023: COMS W4115
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4115 001/11221 T Th 11:40am - 12:55pm
451 Computer Science Bldg
Baishakhi Ray 3.00 60/110
COMS 4115 V01/18907  
Baishakhi Ray 3.00 11/99
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 112/120
COMS 4115 V01/15375  
Ronghui Gu 3.00 12/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.
Prerequisites: (CSEE W3827) and knowledge of C and programming tools as covered in COMS W3136, W3157, or W3101, or the instructors 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

Fall 2023: COMS W4118
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4118 001/11222 T Th 4:10pm - 5:25pm
501 Northwest Corner
Jason Nieh 3.00 65/160
COMS 4118 V01/17091  
Jason Nieh 3.00 4/99
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 138/160
COMS 4118 V01/18798  
Kostis Kaffes 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 instruction-level parallelism, data-level 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 W4130 Principles and Practice of Parallel Programming. 3 points.

CC/GS: Partial Fulfillment of Science Requirement

Prerequisites: (COMS W3134 or COMS W3137 or COMS W3136 and experience in Java) and basic understanding of analysis of algorithms.

Principles of parallel software design. Topics include task and data decomposition, load-balancing, reasoning about correctness, determinacy, safety, and deadlock-freedom. Application of techniques through semester-long design project implementing performant, parallel application in a modern parallel programming language.

COMS W4152 Engineering Software-as-a-Service. 3.00 points.

Modern software engineering concepts and practices including topics such as Software-as-a-Service, Service-oriented Architecture, Agile Development, Behavior-driven Development, Ruby on Rails, and Dev/ops

Fall 2023: COMS W4152
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4152 001/11223 T Th 8:40am - 9:55am
833 Seeley W. Mudd Building
Junfeng Yang 3.00 147/120
COMS 4152 V01/18296  
Junfeng Yang 3.00 10/99

COMS W4156 ADVANCED SOFTWARE ENGINEERING. 3.00 points.

Lect: 3.

Prerequisites: (COMS W3157) or equivalent.
Prerequisites: (COMS W3157) or equivalent. Software lifecycle using frameworks, libraries and services. Major emphasis on software testing. Centers on a team project

Fall 2023: COMS W4156
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4156 001/11224 T Th 10:10am - 11:25am
501 Northwest Corner
Gail Kaiser 3.00 99/120
COMS 4156 V01/18555  
Gail Kaiser 3.00 10/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.
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

Fall 2023: COMS W4160
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4160 001/11549 T Th 7:10pm - 8:25pm
451 Computer Science Bldg
Hadi Fadaifard 3.00 88/90
COMS 4160 V01/18579  
Hadi Fadaifard 3.00 7/99
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 78/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 TECHNIQUES-PIXEL 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 high-quality rendering in computer graphics and of low-level processing for computer vision, remote sensing, and medical imaging. Emphasizes computational techniques for implementing useful image-processing functions

Fall 2023: COMS W4165
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4165 001/20707 T Th 8:40am - 9:55am
545 Seeley W. Mudd Building
George Wolberg 3.00 20/40

COMS W4167 COMPUTER ANIMATION. 3.00 points.

Lect: 3.

Prerequisites: Multivariable calculus, linear algebra, C++ programming proficiency. COMS W4156 recommended.

Theory and practice of physics-based 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 Navier-Stokes 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 79/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)
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

Fall 2023: COMS W4170
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4170 001/11225 T Th 1:10pm - 2:25pm
428 Pupin Laboratories
Brian Smith 3.00 147/140
COMS 4170 V01/18565  
Brian Smith 3.00 8/99
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 395/398
COMS 4170 V01/15381  
Lydia Chilton 3.00 21/20

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.
Prerequisites: (COMS W4160) or (COMS W4170) or the instructors 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 33/45

COMS W4181 SECURITY I. 3.00 points.

Not offered during 2023-2024 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 2023: COMS W4181
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4181 001/11226 M W 1:10pm - 2:25pm
451 Computer Science Bldg
Suman Jana 3.00 39/60

COMS W4182 SECURITY II. 3.00 points.

Not offered during 2023-2024 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 29/40
COMS 4182 V01/15421  
John Koh 3.00 1/99

COMS W4186 MALWARE ANALYSIS&REVERSE ENGINEERING. 3.00 points.

Not offered during 2023-2024 academic year.

Prerequisites: COMS W3157 or equivalent. COMS W3827
Hands-on 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 2023: COMS W4186
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4186 001/11227 Th 4:10pm - 6:40pm
825 Seeley W. Mudd Building
Michael Sikorski 3.00 28/40

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 higher-order surfaces, colorings, extremal graphs, random graphs, graphical measurement, directed graphs, Burnside-Polya 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 20/60

COMS W4205 Combinatorial Theory. 3 points.

Lect: 3.Not offered during 2023-2024 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.

This class 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
326 Uris Hall
Augustin Chaintreau 3.00 75/69
COMS 4223 V01/18856  
Augustin Chaintreau 3.00 12/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 large-scale 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 70/100
COMS 4232 V01/15422  
Alexandr Andoni 3.00 4/99

COMS W4236 INTRO-COMPUTATIONAL COMPLEXITY. 3.00 points.

Lect: 3.

Prerequisites: (COMS W3261)
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 2023: COMS W4236
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4236 001/11228 M W 1:10pm - 2:25pm
524 Seeley W. Mudd Building
Henry Yuen 3.00 24/55
COMS 4236 V01/17093  
Henry Yuen 3.00 3/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 ALGORTHMS-COMPLEXITY II. 3.00 points.

COMS W4252 INTRO-COMPUTATIONAL 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.

Fall 2023: COMS W4252
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4252 001/11229 M W 8:40am - 9:55am
428 Pupin Laboratories
Rocco Servedio 3.00 51/100
COMS 4252 V01/17095  
Rocco Servedio 3.00 11/99

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.
Prerequisites: Comfort with basic discrete math and probability. Recommended: COMS W3261 or CSOR W4231. An introduction to modern cryptography, focusing on the complexity-theoretic foundations of secure computation and communication in adversarial environments; a rigorous approach, based on precise definitions and provably secure protocols. Topics include private and public key encryption schemes, digital signatures, authentication, pseudorandom generators and functions, one-way functions, trapdoor functions, number theory and computational hardness, identification and zero knowledge protocols

Fall 2023: COMS W4261
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4261 001/11230 T Th 10:10am - 11:25am
142 Uris Hall
Tal Malkin 3.00 74/105
COMS 4261 V01/18295  
Tal Malkin 3.00 5/99

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 2023: COMS W4281
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4281 001/11231 M W 11:40am - 12:55pm
326 Uris Hall
Henry Yuen 3.00 68/69

COMS W4419 INTERNET TECHNOLOGY,ECONOMICS,AND POLICY. 3.00 points.

Not offered during 2023-2024 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. Micro-economics 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 non-majors. 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)
Prerequisites: (COMS W3134 or COMS W3136 or COMS W3137) and (CSEE W3827) Hands-on introduction to solving open-ended 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. Team-oriented projects, student presentations, and in-class participation required

Fall 2023: COMS W4444
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4444 001/11232 M W 1:10pm - 2:25pm
327 Seeley W. Mudd Building
Kenneth Ross 3.00 18/33

COMS W4460 PRIN-INNOVATN/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.
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

Fall 2023: COMS W4460
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4460 001/11233 F 10:10am - 12:40pm
644 Seeley W. Mudd Building
William Reinisch 3.00 35/40
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 40/40

COMS W4560 INTRO-COMP APPL-HLTH CRE/BIOMD. 3.00 points.

Lect: 3.

Prerequisites: Experience with computers and a passing familiarity with medicine and biology. Undergraduates in their senior or junior years may take this course only if they have adequate background in mathematics and receive the instructor's permission.
Undergraduates in their senior or junior years may take this course only if they have adequate background in mathematics and receive permission from the instructor. An overview of the field of biomedical informatics, combining perspectives from medicine, computer science, and social science. Use of computers and information in healthcare and the biomedical sciences, covering specific applications and general methods, current issues, capabilities and limitations of biomedical informatics. Biomedical Informatics studies the organization of medical information, the effective management of information using computer technology, and the impact of such technology on medical research, education, and patient care. The field explores techniques for assessing current information practices, determining the information needs of healthcare providers and patients, developing interventions using computer technology, and evaluating the impact of those interventions

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.
Prerequisites: (COMS W3134 or COMS W3136 or COMS W3137) and any course on probability. Prior knowledge of Python is recommended. Provides a broad understanding of the basic techniques for building intelligent computer systems. Topics include state-space problem representations, problem reduction and and-or graphs, game playing and heuristic search, predicate calculus, and resolution theorem proving, AI systems and languages for knowledge representation, machine learning and concept formation and other topics such as natural language processing may be included as time permits

Fall 2023: COMS W4701
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4701 001/11234 T Th 10:10am - 11:25am
501 Schermerhorn Hall
Ansaf Salleb-Aouissi 3.00 170/180
COMS 4701 002/11235 T Th 11:40am - 12:55pm
501 Schermerhorn Hall
Ansaf Salleb-Aouissi 3.00 172/180
COMS 4701 V01/17097  
Ansaf Salleb-Aouissi 3.00 27/99
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 109/164
COMS 4701 002/12087 M W 4:10pm - 5:25pm
501 Northwest Corner
Tony Dear 3.00 130/164
COMS 4701 V01/17158  
Tony Dear 3.00 5/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.
Prerequisites: (COMS W3134 or COMS W3136 or COMS W3137) or the instructors 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

Fall 2023: COMS W4705
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4705 001/11236 M W 1:10pm - 2:25pm
309 Havemeyer Hall
Daniel Bauer 3.00 220/240
COMS 4705 002/11237 M W 1:10pm - 2:25pm
501 Schermerhorn Hall
Zhou Yu 3.00 88/100
COMS 4705 032/16894 W 7:00pm - 9:30pm
717 Hamilton Hall
Andrei Simion 3.00 59/80
COMS 4705 V01/20789  
Daniel Bauer 3.00 6/99
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 119/110
COMS 4705 002/12090 F 10:10am - 12:40pm
501 Schermerhorn Hall
Daniel Bauer 3.00 108/189
COMS 4705 V02/15423  
Daniel Bauer 3.00 17/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 text-to-speech 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
Nakul Verma 3.00 161/189
COMS 4721 V01/16718  
Nakul Verma 3.00 4/99

COMS W4725 Knowledge representation and reasoning. 3 points.

Lect: 3.Not offered during 2023-2024 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 case-based reasoning. Throughout the course particular attention is paid to design trade-offs 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 2023: COMS W4731
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4731 001/11238 M W 10:10am - 11:25am
501 Northwest Corner
Shree Nayar 3.00 89/100

COMS W4732 Computer Vision II: Learning. 3.00 points.

Advanced course in computer vision. Topics include convolutional networks and back-propagation, object and action recognition, self-supervised and few-shot 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 108/100
COMS 4732 V01/15424  
Carl Vondrick 3.00 38/99

COMS W4733 COMPUTATNL ASPECTS OF ROBOTICS. 3.00 points.

CC/GS: Partial Fulfillment of Science Requirement

Prerequisites: (COMS W3134 or COMS W3136COMS W3137)
Prerequisites: (COMS W3134 or COMS W3136COMS W3137) Introduction to robotics from a computer science perspective. Topics include coordinate frames and kinematics, computer architectures for robotics, integration and use of sensors, world modeling systems, design and use of robotic programming languages, and applications of artificial intelligence for planning, assembly, and manipulation

Spring 2024: COMS W4733
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4733 001/14014 F 1:10pm - 3:40pm
428 Pupin Laboratories
Tony Dear 3.00 147/147
COMS 4733 V01/18546  
Tony Dear 3.00 7/99

COMS W4735 VISUAL INTERFACES TO COMPUTERS. 3.00 points.

Lect: 3.

Prerequisites: (COMS W3134 or COMS W3136 or COMS W3137)
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 high-level 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 massively-parallel 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 massively-parallel 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 2023: COMS E4762
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4762 001/11239 M W 4:10pm - 5:25pm
451 Computer Science Bldg
David Knowles 3.00 90/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.
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

Fall 2023: COMS W4771
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4771 001/11240 T Th 1:10pm - 2:25pm
451 Computer Science Bldg
Daniel Hsu 3.00 84/110
COMS 4771 002/11241 T Th 2:40pm - 3:55pm
451 Computer Science Bldg
Daniel Hsu 3.00 79/110
COMS 4771 V01/18298  
Daniel Hsu 3.00 8/99
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 96/110
COMS 4771 002/12093 T Th 2:40pm - 3:55pm
451 Computer Science Bldg
Nakul Verma 3.00 98/110
COMS 4771 V01/16720  
Nakul Verma 3.00 10/99

COMS W4772 Advanced Machine Learning. 3 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 appearance-based models, principal and independent components analysis, dimensionality reduction, kernel methods, manifold learning, latent models, regression, classification, Bayesian methods, maximum entropy methods, real-time tracking, extended Kalman filters, time series prediction, hidden Markov models, factorial HMMS, input-output 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 high-level 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: k-means 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, non-linear 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 high-dimensional data analysis. Topics include high-dimensional 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 63/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: k-means 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, non-linear 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

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 3-layer causal hierarchy, causal bayesian networks, structural learning, the identification problem and the do-calculus, linear identifiability, bounding, and counterfactual analysis. The applied part includes intersection with statistics, the empirical-data sciences (social and health), and AI and ML

Fall 2023: COMS W4775
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4775 001/11242 M W 4:10pm - 5:25pm
750 Schapiro Cepser
Elias Bareinboim 3.00 35/60

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 3-layer causal hierarchy,  causal bayesian networks, structural learning, the identification problem and the do-calculus, linear identifiability, bounding, and counterfactual analysis. The applied part includes intersection with statistics, the empirical-data 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. 1-3 points.

Prerequisites: Approval by a faculty member who agrees to supervise the work.

A second-level 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 one-time 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

Fall 2023: COMS W4995
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4995 001/11243 M W 5:40pm - 6:55pm
633 Seeley W. Mudd Building
Stephen Edwards 3.00 57/70
COMS 4995 002/11244 F 10:10am - 12:40pm
608 Schermerhorn Hall
Bjarne Stroustrup 3.00 32/33
COMS 4995 003/11245 Th 4:10pm - 6:40pm
1127 Seeley W. Mudd Building
Homayoon Beigi 3.00 9/60
COMS 4995 004/11246 T Th 5:40pm - 6:55pm
1024 Seeley W. Mudd Building
Yongwhan Lim 3.00 29/50
COMS 4995 005/11247 M 7:00pm - 9:30pm
1127 Seeley W. Mudd Building
Yongwhan Lim 3.00 18/200
COMS 4995 006/11248 M W 11:40am - 12:55pm
415 Schapiro Cepser
Michelle Levine 3.00 23/40
COMS 4995 007/11249 T Th 4:10pm - 5:25pm
451 Computer Science Bldg
Hugh Thomas 3.00 76/80
COMS 4995 008/11250 T 4:10pm - 6:40pm
644 Seeley W. Mudd Building
Paul Blaer, Jason Cahill 3.00 38/40
COMS 4995 009/11251 F 1:10pm - 3:40pm
601 Fairchild Life Sciences Bldg
Nakul Verma 3.00 40/75
COMS 4995 010/11252 M W 2:40pm - 3:55pm
451 Computer Science Bldg
Richard Zemel 3.00 99/100
COMS 4995 011/11253 T Th 2:40pm - 3:55pm
428 Pupin Laboratories
Peter Belhumeur 3.00 103/120
COMS 4995 013/20652 T 1:10pm - 3:40pm
545 Seeley W. Mudd Building
Gary Zamchick 3.00 28/40
COMS 4995 014/20725 F 2:00pm - 4:00pm
253 Engineering Terrace
Shalmali Joshi 3.00 10/20
COMS 4995 020/12881 T 4:10pm - 6:40pm
833 Seeley W. Mudd Building
Vijay Pappu 3.00 129/120
COMS 4995 021/12882 Th 7:00pm - 9:30pm
417 International Affairs Bldg
Vijay Pappu 3.00 119/120
COMS 4995 030/16892 M 7:00pm - 9:30pm
833 Seeley W. Mudd Building
Andi Cupallari 3.00 62/120
COMS 4995 031/16893 M 7:00pm - 9:30pm
501 Northwest Corner
Andrei Simion 3.00 130/160
COMS 4995 V01/17101  
Stephen Edwards 3.00 2/99
COMS 4995 V03/17106  
Homayoon Beigi 3.00 3/99
COMS 4995 V05/17507  
Yongwhan Lim 3.00 1/99
COMS 4995 V10/17104  
Richard Zemel 3.00 18/20
COMS 4995 V20/17099  
Vijay Pappu 3.00 17/99
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 24/40
COMS 4995 002/12096 M W 5:40pm - 6:55pm
1024 Seeley W. Mudd Building
Yongwhan Lim 3.00 12/50
COMS 4995 003/12098 Th 4:10pm - 6:40pm
1127 Seeley W. Mudd Building
Christian Swinehart 3.00 40/40
COMS 4995 004/12099 T Th 5:40pm - 6:55pm
451 Computer Science Bldg
Austin Reiter 3.00 72/70
COMS 4995 005/12101 F 10:10am - 12:40pm
1127 Seeley W. Mudd Building
Michelle Levine 3.00 29/40
COMS 4995 006/12102 T 1:10pm - 3:40pm
1127 Seeley W. Mudd Building
Gary Zamchick 3.00 44/40
COMS 4995 008/12104 W 4:10pm - 6:40pm
451 Computer Science Bldg
Jae Lee, Hans Montero 3.00 109/110
COMS 4995 030/12956 T 7:00pm - 9:30pm
413 Kent Hall
Adam Kelleher 3.00 46/70
COMS 4995 032/12965 W 4:10pm - 6:40pm
329 Pupin Laboratories
Vijay Pappu 3.00 43/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 V31/16490  
Vijay Pappu 3.00 15/99

COMS W4996 Special topics in computer science, II. 3 points.

Lect: 3.Not offered during 2023-2024 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.
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, single-cycle and multi-cycle processor design, introduction to pipelined processors, caches, and virtual memory

Fall 2023: CSEE W3827
Course Number Section/Call Number Times/Location Instructor Points Enrollment
CSEE 3827 001/11287 T Th 11:40am - 12:55pm
309 Havemeyer Hall
Martha Kim 3.00 160/200
CSEE 3827 002/11288 T Th 1:10pm - 2:25pm
309 Havemeyer Hall
Martha Kim 3.00 162/200
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 152/152
CSEE 3827 002/12122 T Th 11:40am - 12:55pm
428 Pupin Laboratories
Daniel Rubenstein 3.00 147/147

CSEE W4119 COMPUTER NETWORKS. 3.00 points.

Prerequisites: Comfort with basic probability. Programming fluency in Python, C , Java, or Ruby (please see section course page for specific language requirements). 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

Fall 2023: CSEE W4119
Course Number Section/Call Number Times/Location Instructor Points Enrollment
CSEE 4119 001/13947 W 10:10am - 12:40pm
Cin Alfred Lerner Hall
Gil Zussman 3.00 81/120
CSEE 4119 002/17073 M W 2:40pm - 3:55pm
501 Northwest Corner
Ethan Katz-Bassett, Thomas Koch 3.00 21/120
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 111/110
CSEE 4119 V02/15427  
Xia Zhou 3.00 6/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 instruction-level parallelism, data-level 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 3.00 152/170

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 hands-on-networking 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 hands-on experience with engineering wide-area 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 application-level 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); system-level modelling and simulation; design examples.

Fall 2023: CSEE W4823
Course Number Section/Call Number Times/Location Instructor Points Enrollment
CSEE 4823 001/11992 T Th 2:40pm - 3:55pm
417 International Affairs Bldg
Mingoo Seok 3 102/120
CSEE 4823 V01/18559  
Mingoo Seok 3 0/99

CSEE W4824 COMPUTER ARCHITECTURE. 3.00 points.

Lect: 3.

Prerequisites: (CSEE W3827) or equivalent.
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. Instruction-level and thread-level parallelism. Data-level parallelism and graphics processing units. Multiprocessors. Cache coherence. Interconnection networks. Multi-core processors and systems-on-chip. Platform architectures for embedded, mobile, and cloud computing

Fall 2023: CSEE W4824
Course Number Section/Call Number Times/Location Instructor Points Enrollment
CSEE 4824 001/11290 M W 10:10am - 11:25am
501 Schermerhorn Hall
Simha Sethumadhavan 3.00 66/120
Spring 2024: CSEE W4824
Course Number Section/Call Number Times/Location Instructor Points Enrollment
CSEE 4824 001/18326 T Th 1:10pm - 2:25pm
413 Kent Hall
Tanvir Ahmed Khan 3.00 37/70

CSEE W4840 EMBEDDED SYSTEMS. 3.00 points.

Lect: 3.

Prerequisites: (CSEE W4823)
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 microprocessor-based 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 92/110

CSEE W4868 SYSTEM-ON-CHIP PLATFORMS. 3.00 points.

Prerequisites: (COMS W3157) and (CSEE W3827)
Prerequisites: (COMS W3157) and (CSEE W3827) Design and programming of System-on-Chip (SoC) platforms. Topics include: overview of technology and economic trends, methodologies and supporting CAD tools for system-level design, models of computation, the SystemC language, transaction-level modeling, software simulation and virtual platforms, hardware-software partitioning, high-level synthesis, system programming and device drivers, on-chip 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 2023: CSEE W4868
Course Number Section/Call Number Times/Location Instructor Points Enrollment
CSEE 4868 001/11291 T Th 11:40am - 12:55pm
633 Seeley W. Mudd Building
Luca Carloni 3.00 44/70

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.
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. String-matching algorithms, dynamic programming, hidden Markov models, expectation-maximization, 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 58/52
CBMF 4761 V01/15241  
Itsik Pe'er 3.00 0/99