2024-2025 Edition

Computer Science

Department Site: http://www.cs.barnard.edu
Office: 504 Milstein Center
Contact: 212-853-0305, inquiry-cs@barnard.edu
Department Administrator: David Thomas, inquiry-cs@barnard.edu

Mission

Barnard’s Computer Science department offers meaningful computing education and experiences to all Barnard students and partners with Columbia's Computer Science department to offer a major and minor in Computer Science. The department aims to expand students' use and understanding of computation and data analysis across disciplines; offer students opportunities to think critically about the social implications of technology, including how to harness it for social good; promote curricular and pedagogical advances in computer science and its multidisciplinary applications; and provide new models for engaging students and enhancing diversity in computing.

Student Learning Outcomes

Computer Science majors at Barnard study the foundations and applications of computing, as well as addressing the societal implications of computing technology. In conjunction with Columbia, a broad range of upper-level courses is available in topics including artificial intelligence, natural language processing, algorithms and complexity, cybersecurity, databases, user interfaces, and programming languages. Through these courses, students acquire the kind of flexibility needed in a rapidly changing field; they are prepared to engage in both applied and theoretical developments in computer science as they happen.

Programs of Study

The Computer Science department offers the following programs of study:

For the Major in Mathematics-Computer Science, see Mathematics.

Student Advising

Advising Resources

  • All Computer Science majors at Barnard are assigned a full-time faculty member from Barnard's Computer Science department as a major advisor. The major adviser can assist students in planning a program focused on personal interests while meeting major requirements.
  • Students who wish to declare a special major (including Information Science or Data Science) should contact Prof. Smaranda Muresan.
  • All Barnard CS majors are given an individualized CS Major Progress Check List, which is shared with their CS adviser, the CS chair, and the CS administrator. 
  • The department regularly holds an Open House/Program Planning Meeting every semester. For more information about this and other department events, see https://cs.barnard.edu/events

Guidance for First-Year Students

Students with no background in computer science may wish to take Introduction to Computational Thinking and Data Science COMS BC1016 and corequisite lab COMS BC1017, though it is not required.

Enrolling in Courses

  • Prerequisite courses for Mathematics Requirement: 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.
  • Most of our COMS BC3000-level courses have a “waitlist form” that needs to be filled out to be considered for the course, in addition to joining the waitlist.  The links to the forms can be found under each course in SSOL and the Course Directory.
  • COMS BC3997 New Directions in Computing is an undergraduate seminar for special topics in computing arranged as the need and availability arises. Topics are usually offered on a one-time basis, and the title of each section reflects the topic. Participation requires permission of the instructor. Since the content of this course changes each time it is offered, it may be repeated for credit with different topics.

Preparation for Graduate Study

Many Computer Science graduates step directly into career positions in computer science across industry and the public sectors, while others continue their formal education in graduate degree programs, including masters degrees and PhDs in Computer Science, as well as other pathways such as law school. The Computer Science 4+1 BA/MS Pathway is a special opportunity for students who wish to pursue an accelerated masters degree.

Computer Science 4+1 BA/MS Pathway

The Barnard/Columbia University 4+1 Pathways provide an option for students to make progress on graduate study while still an undergraduate, under the guidance of Barnard and Columbia advisors who help them develop their plans for accelerated completion of a masters degree. The Computer Science 4+1 pathway enables Barnard students to obtain a BA from Barnard and an MS from Columbia in a combined five years.

Barnard students majoring or minoring in Computer Science are eligible to apply for the Computer Science 4+1 pathway during their junior year. Accepted students will be given a Barnard Computer Science 4+1 advisor and have access to Columbia MS advisors; they can work with their Barnard and Columbia advisors to determine a study plan to enable completion of the MS in their 5th year.

For more information and application requirements, see cs.barnard.edu/4-1-computer-science.

Coursework Taken Outside of Barnard

Advanced Placement Credit

The Computer Science department does not grant any course exemptions for AP or other exam scores.

Computer Science Courses at Columbia University

Part of the School of Engineering and Applied Sciences, the Department of Computer Science at Columbia University provides many of the courses Barnard Computer Science students need to fulfill their major or minor requirements. There is no restriction on the number of courses that may be taken at Columbia for the programs of study in Computer Science at Barnard.

Transfer Credit

  • When students wish to transfer credit to Barnard from other institutions, their coursework is first evaluated for college elective credit by the Registrar’s Office. If they are approved, departments can consider these courses for credit toward the major or minor.
  • Transfer coursework can count in place of a major requirement if they can be deemed equivalent to a Barnard or Columbia class that counts for a requirement. They might also be countable as a COMS elective if they are a clear fit even if they are not equivalent to one of our classes, so long as you do not also take a Barnard or Columbia class that substantially overlaps with the content.
  • No more than 6 transfer courses can count for the major and no more than 3 transfer courses can count for the minor.
  • Computer science courses must be evaluated by Barnard’s or Columbia’s Computer Science department and mathematics courses must be evaluated by Barnard’s Mathematics department. Please contact the department for more information.

Study Abroad Credit

  • Classes taken abroad through Columbia-led programs (i.e., those administered by Columbia’s Center for Global Engagement) are treated as Columbia courses, equivalent to those taken on the Morningside Heights campus.
  • Classes taken abroad through other institutions or programs are treated as transfer credit and are subject to the same policies as other transfer courses. Accordingly, there will be a limit on the number of study abroad courses taken at other institutions that can be counted toward the major or minor.
  • To receive credit toward the major or minor for a study abroad course (whether taken through a Columbia program or another institution/program), students must submit a Study Abroad Approval form through Slate and obtain the approval of the Chair or departmental representative.

Summer Credit

  • Summer courses at Barnard are equivalent to Barnard courses taken during the academic year. 
  • Summer courses taken at other institutions (including Columbia) are considered transfer credit and are subject to the same policies governing other transfer courses. To receive major or minor credit for a summer course taken at another institution, students must submit a Summer Course form through Slate and have it approved by both the Registrar’s Office and the Chair or department representative.

Other Important Information

The Vagelos Computational Science Center

Computer Science works in close partnership with the Vagelos Computational Science Center (CSC), Barnard's home for powerful, interdisciplinary data exploration located on the 5th Floor of the Milstein Center. The CSC aims to prepare students for the dynamic and rapidly shifting world of computational science and technology. It facilitates students’ understanding of computational methods, application development, and general technological knowledge through its workshop series, public events, outreach, and projects. The CSC also serves as a resource for the greater Barnard community by providing students, researchers, faculty, and staff the tools and resources they need for the advancement of their scholarship and curricular development.

CS Help Room

Students in introductory and intermediate undergraduate courses in computer science can receive one-on-one tutoring through Barnard’s Computer Science Help Room.

For hours, see cs.barnard.edu/cs-help-room

Chair: Rebecca Wright (Druckenmiller Professor of Computer Science)

Associate Professor: Smaranda Muresan

Assistant Professors: Brian Plancher, Mark Santolucito, Lucy Simko, Corey Toler-Franklin, Tiffany Tseng

Roman Family Teaching and Research Fellow: Lisa Soros

For a list of other officers of the University offering courses in Computer Science, please see the Columbia Computer Science department website below:

https://www.cs.columbia.edu/people/faculty/

The Department of Computer Science offers a major and a minor. See below for information on:

  1. The New "Trackless" Major in Computer Science for Students Who Entered Barnard Fall 2023 or After
  2. The Old "Track-based" Major in Computer Science for Students Who Entered Barnard Before Fall 2023
  3. Major in Mathematics-Computer Science
  4. Minor in Computer Science

Major in Computer Science for Students Who Entered Barnard Fall 2023 or After:

As of Fall 2023, there is a new "trackless" version of the Computer Science curriculum. Students who joined Barnard before Fall 2023 will still follow the older, track-based CS curriculum, though we can allow the new version as an exception.

To declare a major in Computer Science, submit a major declaration form via Slate.

The “trackless” Computer Science major consists of 14-15 courses (a minimum of 44 points) to be distributed as follows.

Points
COMPUTER SCIENCE CORE (6 required courses)
COMS W1004Introduction to Computer Science and Programming in Java3.00
COMS W3134Data Structures in Java3.00
COMS W3157ADVANCED PROGRAMMING4.00
COMS W3203DISCRETE MATHEMATICS4.00
COMS W3261COMPUTER SCIENCE THEORY3.00
CSEE W3827FUNDAMENTALS OF COMPUTER SYSTS3.00
MATHEMATICS REQUIREMENTS
A. CALCULUS III / MULTIVARIABLE CALCULUS (select one of the following)
MATH UN1201CALCULUS III3.00
MATH UN1205ACCELERATED MULTIVARIABLE CALC4.00
APMA E2000MULTV. CALC. FOR ENGI & APP SCI4.00
**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.
B. LINEAR ALGEBRA (select one of the following)
COMS W3251COMPUTATIONAL LINEAR ALGEBRA4.00
APMA E3101APPLIED MATH I: LINEAR ALGEBRA3.00
APMA E2101INTRO TO APPLIED MATHEMATICS3.00
MATH UN2010LINEAR ALGEBRA3.00
MATH UN2015Linear Algebra and Probability3.00
C. PROBABILITY (select one of the following)
STAT UN1201CALC-BASED INTRO TO STATISTICS3.00
STAT GU4001INTRODUCTION TO PROBABILITY AND STATISTICS3.00
IEOR E3658PROBABILITY FOR ENGINEERS3.00
MATH UN2015Linear Algebra and Probability3.00
** MATH UN2015 can double count for Linear Algebra and Probability requirements. This is the ONLY instance a course can double count.
AREA FOUNDATION COURSES (AFC)
Select 3 courses from the following list:
COMS W4111INTRODUCTION TO DATABASES3.00
COMS W4113FUND-LARGE-SCALE DIST SYSTEMS3.00
COMS W4115PROGRAMMING LANG & TRANSLATORS3.00
COMS W4118OPERATING SYSTEMS I3.00
CSEE W4119COMPUTER NETWORKS3.00
COMS W4152Engineering Software-as-a-Service3.00
COMS W4156ADVANCED SOFTWARE ENGINEERING3.00
COMS W4160COMPUTER GRAPHICS3.00
COMS W4167COMPUTER ANIMATION3.00
COMS W4170USER INTERFACE DESIGN3.00
COMS W4181SECURITY I3.00
CSOR W4231ANALYSIS OF ALGORITHMS I3.00
COMS W4236INTRO-COMPUTATIONAL COMPLEXITY3.00
COMS W4701ARTIFICIAL INTELLIGENCE3.00
COMS W4705NATURAL LANGUAGE PROCESSING3.00
COMS W4731Computer Vision I: First Principles3.00
COMS W4733COMPUTATIONAL ASPECTS OF ROBOTICS3.00
CBMF W4761COMPUTATIONAL GENOMICS3.00
COMS W4771MACHINE LEARNING3.00
CSEE W4824COMPUTER ARCHITECTURE3.00
CSEE W4868SYSTEM-ON-CHIP PLATFORMS3.00
COMPUTER SCIENCE ELECTIVES
3 courses from COMS/CSXX/XXCS that are at the 3000 level or higher and are at least 3-point courses

Major in Computer Science for Students Who Entered Barnard Before Fall 2023:

Students who joined Barnard before Fall 2023 follow the older, track-based CS curriculum, though students can switch to the new version with approval.

To declare a major in Computer Science, submit a major declaration form via Slate.

The tracks-based Computer Science major consists of 13-14 courses (a minimum of 41 points) to be distributed as follows.

Points
COMPUTER SCIENCE CORE (7 required courses)
COMS W1004Introduction to Computer Science and Programming in Java3.00
COMS W3134Data Structures in Java3.00
COMS W3157ADVANCED PROGRAMMING4.00
COMS W3203DISCRETE MATHEMATICS4.00
COMS W3261COMPUTER SCIENCE THEORY3.00
CSEE W3827FUNDAMENTALS OF COMPUTER SYSTS3.00
SELECT ONE OF THE FOLLOWING (required)
COMS W3251COMPUTATIONAL LINEAR ALGEBRA (RECOMMENDED)4.00
MATH UN2010LINEAR ALGEBRA3.00
MATH UN2015Linear Algebra and Probability3.00
APMA E3101APPLIED MATH I: LINEAR ALGEBRA3.00
APMA E2101INTRO TO APPLIED MATHEMATICS3.00
STAT GU4001INTRODUCTION TO PROBABILITY AND STATISTICS3.00
IEOR E4150INTRO-PROBABILITY & STATISTICS3.00
CALCULUS REQUIREMENT (select one of the following)
MATH UN1102CALCULUS II3.00
MATH UN1201CALCULUS III (PREFERRED)3.00
FOUNDATIONS TRACK
TRACK REQUIRED COURSES
CSOR W4231ANALYSIS OF ALGORITHMS I3.00
COMS W4236INTRO-COMPUTATIONAL COMPLEXITY3.00
BREADTH COURSE: any 3K or 4K COMS course not in track, 3 or more points
TRACK ELECTIVES - 2 from:
COMS W4203Graph Theory3.00
COMS W4252INTRO-COMPUTATIONAL LEARN THRY3.00
COMS W4261INTRO TO CRYPTOGRAPHY3.00
COMS E6232ANALYSIS OF ALGORITHMS II3.00
COMS E6261ADVANCED CRYPTOGRAPHY3.00
MATH UN3020NUMBER THEORY AND CRYPTOGRAPHY3.00
MATH UN3025MAKING, BREAKING CODES3.00
MATH GU4032FOURIER ANALYSIS3.00
MATH GU4041INTRO MODERN ALGEBRA I3.00
MATH GU4042INTRO MODERN ALGEBRA II3.00
MATH GU4061INTRO MODERN ANALYSIS I3.00
MATH GU4155PROBABILITY THEORY3.00
MATH G6238Enumerative Combinatorics4.50
APMA E4300COMPUT MATH:INTRO-NUMERCL METH3.00
CSPH G4801Mathematical Logic I3.00
CSPH G4802Math Logic II: Incompletness3.00
PHIL GU4431INTRODUCTION TO SET THEORY3.00
IEOR E4407GAME THEOR MODELS OF OPERATION3.00
IEOR E6608INTEGER PROGRAMMING3.00
IEOR E6613Optimization, I4.50
IEOR E6614OPTIMIZATION II4.50
IEOR E6711STOCHASTIC MODELING I4.50
IEOR E6712STOCHASTIC MODELING II4.50
EEOR E6616CONVEX OPTIMIZATION3.00
ELEN E6717Classical and Quantum Information Theory3.00
ELEN E6718ERROR CORRECTING CODES3.00
COMS W3902UNDERGRADUATE THESIS (with adviser approval)0.00-6.00
COMS W3998UNDERGRAD PROJECTS IN COMPUTER SCIENCE (with adviser approval)1.00-3.00
COMS W4901Projects in Computer Science (with adviser approval)1.00-3.00
COMS E6998TOPICS IN COMPUTER SCIENCE (with adviser approval)3.00
SOFTWARE SYSTEMS TRACK
TRACK REQUIRED COURSES
COMS W4115PROGRAMMING LANG & TRANSLATORS3.00
COMS W4118OPERATING SYSTEMS I3.00
COMS W4119COMPUTER NETWORKS3.00
BREADTH COURSE: any 3K or 4K COMS course not in track, at least 3 points
TRACK ELECTIVE - 1 from:
Any COMS W41xx3.00
Any COMS W48xx3.00
COMS W3107Clean Object-Oriented Design3.00
COMS BC3930Creative Embedded Systems3.00
COMS W4444PROGRAMMING & PROBLEM SOLVING3.00
COMS W3902UNDERGRADUATE THESIS (with adviser approval)0.00-6.00
COMS W3998UNDERGRAD PROJECTS IN COMPUTER SCIENCE (with adviser approval)1.00-3.00
COMS E6998TOPICS IN COMPUTER SCIENCE (with adviser approval)3.00
Any COMS E61xx (with adviser approval)3.00
INTELLIGENT SYSTEMS TRACK
TRACK REQUIRED COURSES - 2 from:
COMS W4701ARTIFICIAL INTELLIGENCE3.00
COMS W4705NATURAL LANGUAGE PROCESSING3.00
COMS W4706Spoken Language Processing3.00
COMS W4731Computer Vision I: First Principles3.00
COMS W4733COMPUTATIONAL ASPECTS OF ROBOTICS3.00
COMS W4771MACHINE LEARNING3.00
BREADTH COURSE: any 3K or 4K COMS course not in track, at least 3 points
TRACK ELECTIVES - 2 from:
COMS W3902UNDERGRADUATE THESIS (with adviser approval)0.00-6.00
COMS W3998UNDERGRAD PROJECTS IN COMPUTER SCIENCE (with adviser approval)1.00-3.00
COMS W4165COMPUT TECHNIQUES-PIXEL PROCSS3.00
COMS W4252INTRO-COMPUTATIONAL LEARN THRY3.00
Any COMS W47xx3.00
COMS W4901Projects in Computer Science (with adviser approval; can be repeated)1.00-3.00
COMS W4995TOPICS IN COMPUTER SCIENCE (with adviser approval)3.00
COMS W4996Special topics in computer science, II (with adviser approval)3.00
Any COMS E61xx
COMS E6998TOPICS IN COMPUTER SCIENCE (with adviser approval)3.00
APPLICATIONS TRACK
TRACK REQUIRED COURSES
COMS W4111INTRODUCTION TO DATABASES3.00
COMS W4170USER INTERFACE DESIGN3.00
BREADTH COURSE: any 3K or 4K COMS course not in track, at least 3 points
TRACK ELECTIVES - 2 from:
Any COMS W41xx course3.00
Any COMS W47xx course3.00
COMS W3107Clean Object-Oriented Design3.00
COMS BC3420PRIVACY IN A NETWORKED WORLD4.00
COMS BC3430Computational Sound3.00
COMS BC3930Creative Embedded Systems3.00
COMS W3902UNDERGRADUATE THESIS (with adviser approval)0.00-6.00
COMS W4995TOPICS IN COMPUTER SCIENCE (with adviser approval)3.00
COMS W4996Special topics in computer science, II (with adviser approval)3.00
Any COMS E69xx (with adviser approval)
VISION, GRAPHICS, INTERACTION, AND ROBOTICS TRACK
TRACK REQUIRED COURSES - 2 from:
COMS W4731Computer Vision I: First Principles3.00
COMS W4160COMPUTER GRAPHICS3.00
COMS W4167COMPUTER ANIMATION3.00
BREADTH COURSE: any 3K or 4K COMS course not in track, at least 3 points
TRACK ELECTIVES - 2 from:
COMS W4162Advanced Computer Graphics3.00
COMS W4165COMPUT TECHNIQUES-PIXEL PROCSS3.00
COMS W4167COMPUTER ANIMATION3.00
COMS W4170USER INTERFACE DESIGN3.00
COMS W41723D UI AND AUGMENTED REALITY3.00
COMS W4701ARTIFICIAL INTELLIGENCE3.00
COMS W4733COMPUTATIONAL ASPECTS OF ROBOTICS3.00
COMS W4735VISUAL INTERFACES TO COMPUTERS3.00
COMS W4771MACHINE LEARNING3.00
COMS W4995TOPICS IN COMPUTER SCIENCE3.00
COMS W3902UNDERGRADUATE THESIS (with adviser approval)0.00-6.00
COMS W3998UNDERGRAD PROJECTS IN COMPUTER SCIENCE (with adviser approval)1.00-3.00
COMS W4901Projects in Computer Science (with adviser approval)1.00-3.00
COMS W4995TOPICS IN COMPUTER SCIENCE (with adviser approval)3.00
COMS W4996Special topics in computer science, II (with adviser approval)3.00
Any COMS E69xx (with adviser approval)
COMBINATION TRACK (with adviser and chair approval)
3 CS COURSES (3000-level or above, at least 3 points each)
3 COURSES FROM ANOTHER DISCIPLINE (3000-level or above, at least 3 points each)

Major in Mathematics—Computer Science

For a description of the joint Major in Mathematics—Computer Science, see Mathematics.

Minor in Computer Science

Barnard students can declare a minor only once they have all of the required courses completed or in progress, and this must be done by March 1 of the senior year. Courses for the major and minor may not overlap. (The minor department chair can request an exception to this policy for a maximum of two overlapping courses if the minor requires more than 18 credits, the major requires more than 40 credits, and the overlapping courses are explicitly required for both.)

To declare Computer Science as a minor, submit a minor declaration form via Slate.

The Computer Science minor consists of the following six courses (a minimum of 19 points): 

  1. COMS W1004 Introduction to Computer Science and Programming in Java (3pts)
  2. COMS W3134 Data Structures in Java (3pts) or COMS W3137 HONORS DATA STRUCTURES & ALGOL (4pts)
  3. COMS W3203 DISCRETE MATHEMATICS (4pts)
  4. One of the following three courses: COMS W3157 ADVANCED PROGRAMMING (4pts); COMS W3261 COMPUTER SCIENCE THEORY (3pts); or CSEE W3827 FUNDAMENTALS OF COMPUTER SYSTS (3pts)
  5. Any 3000-level or 4000-level COMS/CSXX/XXCS course of at least 3 points.
  6. Any 3000-level or 4000-level COMS/CSXX/XXCS course of at least 3 points or one linear algebra, probability, or statistics course from the following: APMA E3101 APPLIED MATH I: LINEAR ALGEBRA, APMA E2101 INTRO TO APPLIED MATHEMATICS, MATH UN2010 LINEAR ALGEBRA, MATH UN2015 Linear Algebra and Probability, IEOR E3658 PROBABILITY FOR ENGINEERS, STAT UN1201 CALC-BASED INTRO TO STATISTICS, or STAT GU4001 INTRODUCTION TO PROBABILITY AND STATISTICS 

Barnard College Computer Science Courses

COMS BC1016 Introduction to Computational Thinking and Data Science. 3.00 points.

This course and its co-requisite lab course will introduce students to the methods and tools used in data science to obtain insights from data. Students will learn how to analyze data arising from real-world phenomena while mastering critical concepts and skills in computer programming and statistical inference. The course will involve hands-on analysis of real-world datasets, including economic data, document collections, geographical data, and social networks. The course is ideal for students looking to increase their digital literacy and expand their use and understanding of computation and data analysis across disciplines. No prior programming or college-level math background is required

Fall 2024: COMS BC1016
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 1016 001/00123 T Th 6:10pm - 7:25pm
328 Milbank Hall
Lisa Soros 3.00 21/42
COMS 1016 002/00124 T Th 2:40pm - 3:55pm
328 Milbank Hall
Lisa Soros 3.00 35/42
Spring 2025: COMS BC1016
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 1016 001/00458 M W 11:40am - 12:55pm
203 Diana Center
Tiffany Tseng 3.00 0/40
COMS 1016 002/00459 M W 1:10pm - 2:25pm
203 Diana Center
Tiffany Tseng 3.00 0/40

COMS BC1017 Introduction to Computational Thinking and Data Science - Lab. 1.00 point.

This is the co-requisite lab to COMS BC 1016 (Introduction to Computational Thinking and Data Science) This course will introduce students to the methods and tools used in data science to obtain insights from data. Students will learn how to analyze data arising from real-world phenomena while mastering critical concepts and skills in computer programming and statistical inference. The course will involve hands-on analysis of real-world datasets, including economic data, document collections, geographical data, and social networks. This class is ideal for students looking to increase their digital literacy and expand their use and understanding of computation and data analysis across disciplines. No prior programming or math background is required

Fall 2024: COMS BC1017
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 1017 001/00176 M 11:00am - 12:50pm
516 Milstein Center
Lisa Soros 1.00 14/25
COMS 1017 002/00177 M 2:10pm - 4:00pm
516 Milstein Center
Lisa Soros 1.00 23/25
COMS 1017 003/00178 F 10:10am - 11:50am
516 Milstein Center
Lisa Soros 1.00 12/25
COMS 1017 004/00179 F 2:10pm - 4:00pm
516 Milstein Center
Lisa Soros 1.00 7/25
Spring 2025: COMS BC1017
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 1017 001/00461 W 5:00pm - 6:30pm
516 Milstein Center
Tiffany Tseng 1.00 0/25
COMS 1017 002/00468 Th 10:00am - 11:30am
516 Milstein Center
Tiffany Tseng 1.00 0/25
COMS 1017 003/00469 Th 1:00pm - 2:30pm
516 Milstein Center
Tiffany Tseng 1.00 0/25
COMS 1017 004/00470 Th 3:00pm - 4:30pm
516 Milstein Center
Tiffany Tseng 1.00 0/25

COMS BC3099 INDEPENDENT STUDY. 1.00-4.00 points.

Course can be taken for 1-4 points.

Independent Study. Instructor permission required

Fall 2024: COMS BC3099
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 3099 002/00958  
Lucy Simko 1.00-4.00 2/5
COMS 3099 003/00959  
Brian Plancher 1.00-4.00 3/5
COMS 3099 004/00960  
Lisa Soros 1.00-4.00 6/5
COMS 3099 005/00967  
Corey Toler-Franklin 1.00-4.00 1/5

COMS BC3159 Parallel Optimization for Robotics. 3.00 points.

Many stages of state-of-the-art robotics pipelines rely on the solutions of underlying optimization algorithms. Unfortunately, many of these approaches rely on simplifications and conservative approximations in order to reduce their computational complexity and support online operation. At the same time, parallelism has been used to significantly increase the throughput of computationally expensive algorithms across the field of computer science. And, with the widespread adoption of parallel computing platforms such as GPUs, it is natural to consider whether these architectures can benefit robotics researchers interested in solving computationally constrained problems online. This course will provide students with an introduction to both parallel programming on CPUs and GPUs as well as optimization algorithms for robotics applications. It will then dive into the intersection of those fields through case studies of recent state-of-the-art research and culminate in a team-based final project

Fall 2024: COMS BC3159
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 3159 001/00021 M W 1:10pm - 2:25pm
405 Milbank Hall
Brian Plancher 3.00 44/85

COMS BC3162 DEVELOPING ACCESSIBLE USER INTERFACES. 3.00 points.

Introduction to access technology and the development of accessible systems. In this course, students build and evaluate various access technologies. Topics include: text-to-speech, speech recognition, screen readers, screen magnification, alternative input, tactile displays, and web transformation. This course teaches students the deep inner workings of today’s user interface technology and serve as a guide for building the user interfaces of the future

COMS BC3364 Introduction to Contextual Design for Technology. 3 points.

Introduces methods and tools used in Contextual Inquiry (CI) specifically the early stages of software design focused on meeting user needs. Key concepts include user research, contextual design, design thinking, ideation, iterative design, prototyping, and design documentation. Projects utilize software tools used in the industry.

COMS BC3420 PRIVACY IN A NETWORKED WORLD. 4.00 points.

The ubiquity of computers and networks in business, government, recreation, and almost all aspects of daily life has led to a proliferation of online sensitive data: data that, if used improperly, can harm the data subjects. As a result, concern about the use, ownership, control, privacy, and accuracy of these data has become a top priority. This seminar course focuses on both the technical challenges of handling sensitive data, the privacy implications of various technologies, and the policy and legal issues facing data subjects, data owners, and data users

Fall 2024: COMS BC3420
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 3420 001/00246 W 4:10pm - 6:00pm
502 Diana Center
Rebecca Wright 4.00 25/24
Spring 2025: COMS BC3420
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 3420 001/00471 T 9:00am - 10:50am
119 Milstein Center
Lucy Simko 4.00 0/24

COMS BC3430 Computational Sound. 3.00 points.

In this course, we explore the variety of roles that computation can play in the analysis, creation, and performance of music. We start with the fundamentals of sound in the digital domain, covering issues of representation and audio synthesis. We then move through various synthesis techniques including the additive, subtractive, frequency modulation (FM), and amplitude modulation (AM) synthesis. After covering some core DSP techniques, we put these concepts into performative practice by exploring “live coding”. In the space of live coding, we examine various programming language designs to understand how various domain specific languages (DSLs) support live coding. For the third module, we turn our focus to automated composition and analysis, addressing challenges in music information retrieval, generative art, and autonomous improvisation systems. All the while, we continue to develop our fluency in live coding by putting new topics to practice

COMS BC3930 Creative Embedded Systems. 3.00 points.

Ubiquitous computing is creating new canvases and opportunities for creative ideas. This class explores the use of microprocessors, distributed sensor networks, IoT, and intermedia systems for the purposes of creative expression. The course is delivered in a mixed lecture and lab format that introduces the fundamental concepts and theory behind embedded systems as well as issues particular to their creative employment. The key objective of the course is for students to conceive of and implement creative uses of computation

Fall 2024: COMS BC3930
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 3930 001/00180 T Th 11:40am - 12:55pm
516 Milstein Center
Tiffany Tseng 3.00 24/24

COMS BC3997 NEW DIRECTIONS IN COMPUTING. 1.00-3.00 points.

This is an undergraduate seminar for special topics in computing arranged as the need and availability arises. Topics are usually offered on a one-time basis. Participation requires permission of the instructor. Since the content of this course changes each time it is offered, it may be repeated for credit

Fall 2024: COMS BC3997
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 3997 001/00137 M W 10:10am - 11:25am
152 Horace Mann Hall
Smaranda Muresan 1.00-3.00 52/60
COMS 3997 002/00735 M W 11:40am - 12:55pm
325 Milbank Hall
Corey Toler-Franklin 1.00-3.00 5/32
COMS 3997 003/00744 T Th 1:10pm - 2:25pm
207 Milbank Hall
Lucy Simko 1.00-3.00 21/24
Spring 2025: COMS BC3997
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 3997 004/00573 M 2:10pm - 4:00pm
406 Barnard Hall
Lucy Simko 1.00-3.00 0/16
COMS 3997 005/00574 T Th 6:10pm - 7:25pm
324 Milbank Hall
Lisa Soros 1.00-3.00 0/35
COMS 3997 006/00575 T Th 10:10am - 11:25am
140 Horace Mann Hall
Smaranda Muresan 1.00-3.00 0/35

Columbia University Computer Science Courses 

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 2024: COMS W1002
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 1002 001/11915 T Th 1:10pm - 2:25pm
417 International Affairs Bldg
Adam Cannon 4.00 52/160
COMS 1002 002/11916 T Th 1:10pm - 2:25pm
330 Uris Hall
Adam Cannon, Eugenia Antic 4.00 15/60
COMS 1002 003/11917 T Th 2:40pm - 3:55pm
417 International Affairs Bldg
Adam Cannon 4.00 131/300
COMS 1002 004/11918 T Th 2:40pm - 3:55pm
415 Schapiro Cepser
Philippe Chlenski, Adam Cannon 4.00 29/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 2024: COMS W1004
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 1004 001/11919 M W 2:40pm - 3:55pm
309 Havemeyer Hall
Paul Blaer 3 253/320
COMS 1004 002/11920 M W 5:40pm - 6:55pm
417 International Affairs Bldg
Paul Blaer 3 173/320
Spring 2025: COMS W1004
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 1004 001/11948 T Th 11:40am - 12:55pm
Room TBA
Adam Cannon 3 0/398
COMS 1004 002/11949 T Th 1:10pm - 2:25pm
Room TBA
Adam Cannon 3 0/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 W1011 INTERMED COMPUTER PROGRAMMING. 3.00 points.

COMS W1012 COMPUTING IN CONTEXT REC. 0.00 points.

Fall 2024: COMS W1012
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 1012 001/11921 Th 7:10pm - 8:00pm
227 Seeley W. Mudd Building
Adam Cannon 0.00 33/40
COMS 1012 002/11922 Th 7:10pm - 8:00pm
644 Seeley W. Mudd Building
Adam Cannon 0.00 32/40
COMS 1012 003/11923 F 10:10am - 11:00am
307 Uris Hall
Adam Cannon 0.00 40/40
COMS 1012 004/11924 F 2:00pm - 2:50pm
307 Uris Hall
Adam Cannon 0.00 27/40
COMS 1012 005/11925 Th 7:10pm - 8:00pm
415 Schapiro Cepser
Adam Cannon 0.00 14/40
COMS 1012 006/11926 Th 7:10pm - 8:00pm
825 Seeley W. Mudd Building
Adam Cannon 0.00 11/40
COMS 1012 007/11927 F 9:00am - 9:50am
307 Uris Hall
Adam Cannon 0.00 27/40
COMS 1012 008/11928 Th 7:10pm - 8:00pm
401 Chandler
Adam Cannon 0.00 9/30
COMS 1012 009/11929 F 10:10am - 11:00am
608 Schermerhorn Hall
Adam Cannon 0.00 7/30
COMS 1012 010/11930 Th 7:10pm - 8:00pm
233 Seeley W. Mudd Building
Adam Cannon 0.00 20/30
COMS 1012 011/11931 F 11:00am - 11:50am
307 Uris Hall
Adam Cannon 0.00 10/30

COMS W1103 HONORS INTRO COMPUTER SCIENCE. 3.00 points.

COMS W1404 EMERGING SCHOLARS PROG SEMINAR. 1.00 point.

Pass/Fail only.

Prerequisites: the instructor's permission. Corequisites: COMS W1002 or COMS W1004 or COMS W1007
Corequisites: COMS W1004,COMS W1007,COMS W1002
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 2024: COMS W1404
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 1404 001/11996 F 8:40am - 9:55am
253 Engineering Terrace
Adam Cannon 1.00 7/16
COMS 1404 002/11997 F 10:10am - 11:25am
253 Engineering Terrace
Adam Cannon 1.00 8/16
COMS 1404 003/11998 F 11:40am - 12:55pm
253 Engineering Terrace
Adam Cannon 1.00 5/16
COMS 1404 004/11999 F 1:10pm - 2:25pm
253 Engineering Terrace
Adam Cannon 1.00 5/16
COMS 1404 005/12000 F 2:40pm - 3:55pm
253 Engineering Terrace
Adam Cannon 1.00 5/16
COMS 1404 006/12001 F 4:10pm - 5:25pm
337 Seeley W. Mudd Building
Adam Cannon 1.00 2/16
COMS 1404 007/12002 F 9:30am - 10:45am
337 Seeley W. Mudd Building
Adam Cannon 1.00 8/16
COMS 1404 008/12003 F 11:00am - 12:15pm
Room TBA
Adam Cannon 1.00 0/16
COMS 1404 009/12004 F 12:30pm - 1:45pm
337 Seeley W. Mudd Building
Adam Cannon 1.00 3/16
COMS 1404 010/12005 F 2:00pm - 3:15pm
337 Seeley W. Mudd Building
Adam Cannon 1.00 9/16
Spring 2025: COMS W1404
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 1404 001/11950 F 8:40am - 9:55am
Room TBA
Adam Cannon 1.00 0/16
COMS 1404 002/11951 F 10:10am - 11:25am
Room TBA
Adam Cannon 1.00 0/16
COMS 1404 003/11952 F 11:40am - 12:55pm
Room TBA
Adam Cannon 1.00 0/16
COMS 1404 004/11953 F 1:10pm - 2:25pm
Room TBA
Adam Cannon 1.00 0/16
COMS 1404 005/11954 F 2:40pm - 3:55pm
Room TBA
Adam Cannon 1.00 0/16
COMS 1404 006/11955 F 4:10pm - 5:25pm
Room TBA
Adam Cannon 1.00 0/16
COMS 1404 007/11956 F 9:30am - 10:45am
Room TBA
Adam Cannon 1.00 0/16
COMS 1404 008/11957 F 11:00am - 12:15pm
Room TBA
Adam Cannon 1.00 0/16
COMS 1404 009/11958 F 12:30pm - 1:45pm
Room TBA
Adam Cannon 1.00 0/16
COMS 1404 010/11959 F 2:00pm - 3:15pm
Room TBA
Adam Cannon 1.00 0/16

COMS W2132 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

COMS W2702 AI in Context. 3.00 points.

An interdisciplinary introduction to the history, development and modern application of artificial intelligence in a variety of contexts. Context subjects and teaching staff will vary by semester

Fall 2024: COMS W2702
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 2702 001/20900 M W 10:10am - 11:25am
833 Seeley W. Mudd Building
Seth Cluett, Dennis Tenen, Adam Cannon, Katja Vogt, Vishal Misra, Chris Wiggins 3.00 73/120

COMS W3011 INTERMED COMPUTER PROGRAMMING. 3.00 points.

COMS W3101 PROGRAMMING LANGUAGES. 1.00 point.

Lect: 1.

Prerequisites: Fluency in at least one programming language.
Introduction to a programming language. Each section is devoted to a specific language. Intended only for those who are already fluent in at least one programming language. Sections may meet for one hour per week for the whole term, for three hours per week for the first third of the term, or for two hours per week for the first six weeks. May be repeated for credit if different languages are involved

COMS W3102 DEVELOPMENT TECHNOLOGY. 1.00-2.00 points.

Lect: 2. Lab: 0-2.

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

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

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

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 2024: COMS W3134
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 3134 001/11932 M W 4:10pm - 5:25pm
301 Uris Hall
Brian Borowski 3 212/250
COMS 3134 002/11933 M W 5:40pm - 6:55pm
301 Uris Hall
Brian Borowski 3 122/250
Spring 2025: COMS W3134
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 3134 001/11962 M W 2:40pm - 3:55pm
Room TBA
Paul Blaer 3 0/320
COMS 3134 002/11963 M W 5:40pm - 6:55pm
Room TBA
Paul Blaer 3 0/164

COMS W3136 ESSENTIAL DATA STRUCTURES. 4.00 points.

Prerequisites: (COMS W1004) or (COMS W1005) or (COMS W1007) or (ENGI E1006)
A second programming course intended for nonmajors with at least one semester of introductory programming experience. Basic elements of programming in C and C , arraybased data structures, heaps, linked lists, C programming in UNIX environment, 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 2024: COMS W3136
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 3136 001/15424 T Th 5:40pm - 6:55pm
141 Uris Hall
Timothy Paine 4.00 30/65

COMS W3137 HONORS DATA STRUCTURES & ALGOL. 4.00 points.

Prerequisites: (COMS W1004) or (COMS W1007)
Corequisites: COMS W3203
An honors introduction to data types and structures: arrays, stacks, singly and doubly linked lists, queues, trees, sets, and graphs. Programming techniques for processing such structures: sorting and searching, hashing, garbage collection. Storage management. Design and analysis of algorithms. Taught in Java. Note: Due to significant overlap, students may receive credit for only one of the following three courses: COMS W3134, W3136, or W3137

COMS W3157 ADVANCED PROGRAMMING. 4.00 points.

Lect: 4.

Prerequisites: (COMS W3134) or (COMS W3137)
C programming language and Unix systems programming. Also covers Git, Make, TCP/IP networking basics, C fundamentals

Fall 2024: COMS W3157
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 3157 001/11934 T Th 4:10pm - 5:25pm
417 International Affairs Bldg
Jae Lee 4.00 314/398
COMS 3157 002/21191 F 12:10pm - 2:00pm
326 Uris Hall
Jae Lee 4.00 28/50
Spring 2025: COMS W3157
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 3157 001/11964 M W 4:10pm - 5:25pm
Room TBA
Brian Borowski 4.00 0/175
COMS 3157 002/11965 M W 5:40pm - 6:55pm
Room TBA
Brian Borowski 4.00 0/175

COMS W3202 FINITE MATHEMATICS. 3.00 points.

COMS W3203 DISCRETE MATHEMATICS. 4.00 points.

Lect: 3.

Prerequisites: Any introductory course in computer programming.
Logic and formal proofs, sequences and summation, mathematical induction, binomial coefficients, elements of finite probability, recurrence relations, equivalence relations and partial orderings, and topics in graph theory (including isomorphism, traversability, planarity, and colorings)

Fall 2024: COMS W3203
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 3203 001/11935 M W 4:10pm - 5:25pm
301 Pupin Laboratories
Tony Dear 4.00 198/270
Spring 2025: COMS W3203
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 3203 001/13386 M W 2:40pm - 3:55pm
Room TBA
Tony Dear 4.00 0/164

COMS W3210 Scientific Computation. 3 points.

CC/GS: Partial Fulfillment of Science Requirement

Prerequisites: two terms of calculus.

Introduction to computation on digital computers. Design and analysis of numerical algorithms. Numerical solution of equations, integration, recurrences, chaos, differential equations. Introduction to Monte Carlo methods. Properties of floating point arithmetic. Applications to weather prediction, computational finance, computational science, and computational engineering.

COMS W3251 COMPUTATIONAL LINEAR ALGEBRA. 4.00 points.

COMS W3261 COMPUTER SCIENCE THEORY. 3.00 points.

CC/GS: Partial Fulfillment of Science Requirement

Prerequisites: (COMS W3203)
Corequisites: COMS W3134,COMS W3136,COMS W3137
Regular languages: deterministic and 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 2024: COMS W3261
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 3261 001/11936 T Th 8:40am - 9:55am
451 Computer Science Bldg
Tal Malkin 3.00 109/110
COMS 3261 002/11937 T Th 10:10am - 11:25am
451 Computer Science Bldg
Tal Malkin 3.00 100/110
Spring 2025: COMS W3261
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 3261 001/11966 T Th 1:10pm - 2:25pm
Room TBA
Josh Alman 3.00 0/120
COMS 3261 002/11967 T Th 2:40pm - 3:55pm
Room TBA
Josh Alman 3.00 0/120

COMS W3410 COMPUTERS AND SOCIETY. 3.00 points.

Lect: 3.

Broader impact of computers. Social networks and privacy. Employment, intellectual property, and the media. Science and engineering ethics. Suitable for nonmajors

Fall 2024: COMS W3410
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 3410 001/11938 W 4:10pm - 6:40pm
303 Uris Hall
Ronald Baecker 3.00 56/67

COMS W3902 UNDERGRADUATE THESIS. 0.00-6.00 points.

Prerequisites: Agreement by a faculty member to serve as thesis adviser.
An independent theoretical or experimental investigation by an undergraduate major of an appropriate problem in computer science carried out under the supervision of a faculty member. A formal written report is mandatory and an oral presentation may also be required. May be taken over more than one term, in which case the grade is deferred until all 6 points have been completed. Consult the department for section assignment

COMS W3995 Special Topics in Computer Science. 3 points.

Lect: 3.

Prerequisites: the instructor's permission.

Consult the department for section assignment. Special topics arranged as the need and availability arise. Topics are usually offered on a 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 COMPUTER SCIENCE. 1.00-3.00 points.

Prerequisites: Approval by a faculty member who agrees to supervise the work.
Independent project involving laboratory work, computer programming, analytical investigation, or engineering design. May be repeated for credit. Consult the department for section assignment

COMS W3999 FIELDWORK. 1.00-2.00 points.

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 may be required. May not be used as a technical or nontechnical elective or as a GTE (general technical elective). May not be taken for pass/fail credit or audited

COMS 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 2024: COMS W4111
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4111 001/11939 T Th 10:10am - 11:25am
207 Mathematics Building
Luis Gravano 3.00 157/150
COMS 4111 002/11940 T Th 8:40am - 9:55am
301 Uris Hall
Eugene Wu 3.00 93/175
COMS 4111 003/11941 F 10:10am - 12:40pm
309 Havemeyer Hall
Donald Ferguson 3.00 266/250
COMS 4111 V03/18703  
Donald Ferguson 3.00 18/99
Spring 2025: COMS W4111
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4111 001/11968 M W 2:40pm - 3:55pm
Room TBA
Kenneth Ross 3.00 0/250
COMS 4111 002/11969 F 10:10am - 12:40pm
Room TBA
Donald Ferguson 3.00 0/250

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 2024: COMS W4113
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4113 001/11942 F 10:10am - 12:40pm
451 Computer Science Bldg
Roxana Geambasu 3.00 94/110
COMS 4113 V01/17521  
Roxana Geambasu 3.00 8/99

COMS W4115 PROGRAMMING LANG & TRANSLATORS. 3.00 points.

Lect: 3.

Prerequisites: (COMS W3134 or COMS W3136 or COMS W3137) and (COMS W3261) and (CSEE W3827) or equivalent, or the instructor's permission.
Modern programming languages and compiler design. Imperative, 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 2024: COMS W4115
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4115 001/11943 T Th 11:40am - 12:55pm
451 Computer Science Bldg
Baishakhi Ray 3.00 77/100
COMS 4115 V01/18705  
Baishakhi Ray 3.00 5/99
Spring 2025: COMS W4115
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4115 001/11970 M W 4:10pm - 5:25pm
Room TBA
Ronghui Gu 3.00 0/120

COMS W4118 OPERATING SYSTEMS I. 3.00 points.

Lect: 3.

Prerequisites: (CSEE W3827) and knowledge of C and programming tools as covered in COMS W3136, W3157, or W3101, or the instructor's permission.
Design and implementation of operating systems. Topics include process management, process synchronization and interprocess communication, memory management, virtual memory, interrupt handling, processor scheduling, device management, I/O, and file systems. Case study of the UNIX operating system. A programming project is required

Fall 2024: COMS W4118
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4118 001/11944 T Th 4:10pm - 5:25pm
501 Northwest Corner
Jason Nieh 3.00 79/160
COMS 4118 V01/17522  
Jason Nieh 3.00 7/99
Spring 2025: COMS W4118
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4118 001/11971 T Th 4:10pm - 5:25pm
Room TBA
Kostis Kaffes 3.00 0/160

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 W4137 From Algorithmic Thinking to Development. 3.00 points.

Algorithmic problem-solving and coding skills needed to devise solutions to interview questions for software engineering positions. Solutions are implemented in Python, Java, C, and C . Approaches include brute-force, hashing, sorting, transform-and-conquer, greedy, and dynamic programming. Focus on experimentation and team work

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

COMS W4153 Cloud Computing. 3.00 points.

Software engineering skills necessary for developing cloud computing and software-as-a-service applications, covering topics such as service-oriented architectures, message-driven applications, and platform integration. Includes theoretical study, practical application, and collaborative project work

Fall 2024: COMS W4153
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4153 001/14010 F 1:10pm - 3:40pm
309 Havemeyer Hall
Donald Ferguson 3.00 307/310
COMS 4153 V01/18778  
Donald Ferguson 3.00 17/99

COMS W4156 ADVANCED SOFTWARE ENGINEERING. 3.00 points.

Lect: 3.

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

Fall 2024: COMS W4156
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4156 001/11945 T Th 10:10am - 11:25am
833 Seeley W. Mudd Building
Gail Kaiser 3.00 120/120
COMS 4156 V01/17608  
Gail Kaiser 3.00 7/99

COMS W4160 COMPUTER GRAPHICS. 3.00 points.

Lect: 3.

Prerequisites: (COMS W3134) or (COMS W3136) or (COMS W3137) COMS W4156 is recommended. Strong programming background and some mathematical familiarity including linear algebra is required.
Introduction to computer graphics. Topics include 3D viewing and projections, geometric modeling using spline curves, graphics systems such as OpenGL, lighting and shading, and global illumination. Significant implementation is required: the final project involves writing an interactive 3D video game in OpenGL

Spring 2025: COMS W4160
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4160 001/11972 T Th 6:40pm - 7:55pm
Room TBA
Hadi Fadaifard 3.00 0/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

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 2025: COMS W4167
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4167 001/11973 T Th 4:10pm - 5:25pm
451 Computer Science Bldg
Changxi Zheng 3.00 0/75

COMS W4170 USER INTERFACE DESIGN. 3.00 points.

CC/GS: Partial Fulfillment of Science Requirement

Prerequisites: (COMS W3134 or COMS W3136 or COMS W3137)
Introduction to the theory and practice of computer user interface design, emphasizing the software design of graphical user interfaces. Topics include basic interaction devices and techniques, human factors, interaction styles, dialogue design, and software infrastructure. Design and programming projects are required

Fall 2024: COMS W4170
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4170 001/11946 T Th 1:10pm - 2:25pm
833 Seeley W. Mudd Building
Brian Smith 3.00 120/120
COMS 4170 V01/17523  
Brian Smith 3.00 6/99
Spring 2025: COMS W4170
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4170 001/11975 M W 1:10pm - 2:25pm
Room TBA
Lydia Chilton 3.00 0/398

COMS W4172 3D UI AND AUGMENTED REALITY. 3.00 points.

CC/GS: Partial Fulfillment of Science Requirement

Prerequisites: (COMS W4160) or (COMS W4170) or the instructor's permission.
Design, development, and evaluation of 3D user interfaces. Interaction techniques and metaphors, from desktop to immersive. Selection and manipulation. Travel and navigation. Symbolic, menu, gestural, and multimodal interaction. Dialogue design. 3D software support. 3D interaction devices and displays. Virtual and augmented reality. Tangible user interfaces. Review of relevant 3D math

Spring 2025: COMS W4172
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4172 001/11976 T Th 1:10pm - 2:25pm
Room TBA
Steven Feiner 3.00 0/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 2024: COMS W4181
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4181 001/11947 M W 1:10pm - 2:25pm
1127 Seeley W. Mudd Building
Suman Jana 3.00 44/65
COMS 4181 V01/17631  
Suman Jana 3.00 4/5

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 2025: COMS W4182
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4182 001/11977 F 1:10pm - 3:40pm
Room TBA
John Koh 3.00 0/40

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 2024: COMS W4186
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4186 001/12324 Th 4:10pm - 6:40pm
545 Seeley W. Mudd Building
Michael Sikorski 3.00 40/40
COMS 4186 V01/18706  
Michael Sikorski 3.00 8/99

COMS W4203 Graph Theory. 3 points.

Lect: 3.

Prerequisites: (COMS W3203)

General introduction to graph theory. Isomorphism testing, algebraic specification, symmetries, spanning trees, traversability, planarity, drawings on higher-order surfaces, colorings, extremal graphs, random graphs, graphical measurement, directed graphs, Burnside-Polya counting, voltage graph theory.

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.

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 2025: COMS W4223
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4223 001/14256 T Th 4:10pm - 5:25pm
Room TBA
Augustin Chaintreau 3.00 0/75

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 2025: COMS W4232
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4232 001/11978 T Th 2:40pm - 4:00pm
Room TBA
Alexandr Andoni 3.00 0/80

COMS W4236 INTRO-COMPUTATIONAL COMPLEXITY. 3.00 points.

Lect: 3.

Prerequisites: (COMS W3261)
Develops a quantitative theory of the computational difficulty of problems in terms of the resources (e.g. time, space) needed to solve them. Classification of problems into complexity classes, reductions, and completeness. Power and limitations of different modes of computation such as nondeterminism, randomization, interaction, and parallelism

Fall 2024: COMS W4236
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4236 001/11948 M W 8:40am - 9:55am
451 Computer Science Bldg
Xi Chen 3.00 34/70
COMS 4236 V01/17552  
Xi Chen 3.00 4/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.

COMS W4261 INTRO TO CRYPTOGRAPHY. 3.00 points.

Lect: 2.5.

Prerequisites: Comfort with basic discrete math and probability. Recommended: COMS W3261 or CSOR W4231.
An introduction to modern cryptography, focusing on the 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

Spring 2025: COMS W4261
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4261 001/13820 M 7:00pm - 9:30pm
451 Computer Science Bldg
Allison Bishop 3.00 0/80

COMS W4281 INTRO TO QUANTUM COMPUTING. 3.00 points.

Lect: 3.

Prerequisites: Knowledge of linear algebra. Prior knowledge of quantum mechanics is not required although helpful.

Introduction to quantum computing. Shor's factoring algorithm, Grover's database search algorithm, the quantum summation algorithm. Relationship between classical and quantum computing. Potential power of quantum computers.

Fall 2024: COMS W4281
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4281 001/11949 M W 10:10am - 11:25am
209 Havemeyer Hall
Henry Yuen 3.00 110/110

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.

Spring 2025: COMS W4419
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4419 001/11979 M W 4:10pm - 5:25pm
Room TBA
Henning Schulzrinne 3.00 0/40

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)
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 2024: COMS W4444
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4444 001/11950 M W 1:10pm - 2:25pm
337 Seeley W. Mudd Building
Kenneth Ross 3.00 32/31

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.
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 2024: COMS W4460
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4460 001/13626 F 10:10am - 12:40pm
829 Seeley W. Mudd Building
William Reinisch 3.00 39/40
Spring 2025: COMS W4460
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4460 001/11980 M W 8:40am - 9:55am
Room TBA
William Reinisch 3.00 0/40

COMS W4701 ARTIFICIAL INTELLIGENCE. 3.00 points.

CC/GS: Partial Fulfillment of Science Requirement

Prerequisites: (COMS W3134 or COMS W3136 or COMS W3137) and any course on probability. Prior knowledge of Python is recommended.
Prior knowledge of Python is recommended. Provides a broad understanding of the basic techniques for building intelligent computer systems. Topics include 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 2024: COMS W4701
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4701 001/11951 T Th 10:10am - 11:25am
501 Schermerhorn Hall
Ansaf Salleb-Aouissi 3.00 186/180
COMS 4701 002/11952 T Th 11:40am - 12:55pm
501 Schermerhorn Hall
Ansaf Salleb-Aouissi 3.00 200/180
COMS 4701 V01/17524  
Ansaf Salleb-Aouissi 3.00 18/99
Spring 2025: COMS W4701
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4701 001/13152 M W 4:10pm - 5:25pm
Room TBA
Tony Dear 3.00 0/164

COMS W4705 NATURAL LANGUAGE PROCESSING. 3.00 points.

Lect: 3.

Prerequisites: (COMS W3134 or COMS W3136 or COMS W3137) or the instructor's permission.
Computational approaches to natural language generation and understanding. Recommended preparation: some previous or concurrent exposure to AI or Machine Learning. Topics include information extraction, summarization, machine translation, dialogue systems, and emotional speech. Particular attention is given to robust techniques that can handle understanding and generation for the large amounts of text on the Web or in other large corpora. Programming exercises in several of these areas

Fall 2024: COMS W4705
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4705 001/11953 F 10:10am - 12:40pm
417 International Affairs Bldg
Daniel Bauer 3.00 257/275
COMS 4705 002/11954 M W 4:10pm - 5:25pm
451 Computer Science Bldg
Zhou Yu 3.00 78/100
COMS 4705 V01/17525  
Daniel Bauer 3.00 21/99
Spring 2025: COMS W4705
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4705 001/11981 M W 10:10am - 11:25am
451 Computer Science Bldg
Daniel Bauer 3.00 0/110

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 2025: COMS W4721
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4721 001/15963 M W 2:40pm - 3:55pm
Room TBA
John Paisley 3.00 0/170

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 2024: COMS W4731
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4731 001/11955 M W 10:10am - 11:25am
451 Computer Science Bldg
Shree Nayar 3.00 80/95

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 2025: COMS W4732
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4732 001/13738 T Th 10:10am - 11:25am
451 Computer Science Bldg
Carl Vondrick 3.00 0/100

COMS W4733 COMPUTATIONAL ASPECTS OF ROBOTICS. 3.00 points.

CC/GS: Partial Fulfillment of Science Requirement

Prerequisites: (COMS W3134 or COMS W3136COMS W3137)
Introduction to fundamental problems and algorithms in robotics. Topics include configuration spaces, motion and sensor models, search and sampling-based planning, state estimation, localization and mapping, perception, and learning

COMS W4735 VISUAL INTERFACES TO COMPUTERS. 3.00 points.

Lect: 3.

Prerequisites: (COMS W3134 or COMS W3136 or COMS W3137)
Visual input as data and for control of computer systems. Survey and analysis of architecture, algorithms, and underlying assumptions of commercial and research systems that recognize and interpret human gestures, analyze imagery such as fingerprint or iris patterns, generate natural language descriptions of medical or map imagery. Explores foundations in human psychophysics, cognitive science, and artificial intelligence

COMS W4737 Biometrics. 3 points.

CC/GS: Partial Fulfillment of Science Requirement

Prerequisites: a background at the sophomore level in computer science, engineering, or like discipline.

In this course. we will explore the latest advances in biometrics as well as the machine learning techniques behind them. Students will learn how these technologies work and how they are sometimes defeated. Grading will be based on homework assignments and a final project. There will be no midterm or final exam. This course shares lectures with COMS E6737. Students taking COMS E6737 are required to complete additional homework problems and undertake a more rigorous final project. Students will only be allowed to earn credit for COMS W4737 or COMS E6737 and not both.

COMS W4762 Machine Learning for Functional Genomics. 3 points.

Prerequisites: Proficiency in a 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 W4771 MACHINE LEARNING. 3.00 points.

Lect: 3.

Prerequisites: Any introductory course in linear algebra and any introductory course in statistics are both required. Highly recommended: COMS W4701 or knowledge of Artificial Intelligence.
Topics from generative and discriminative machine learning including least squares methods, support vector machines, kernel methods, neural networks, Gaussian distributions, linear classification, linear regression, maximum likelihood, exponential family distributions, Bayesian networks, Bayesian inference, mixture models, the EM algorithm, graphical models and hidden Markov models. Algorithms implemented in MATLAB

Fall 2024: COMS W4771
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4771 001/11957 T Th 2:40pm - 3:55pm
451 Computer Science Bldg
Nakul Verma 3.00 85/110
COMS 4771 V01/17526  
Nakul Verma 3.00 7/99
Spring 2025: COMS W4771
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4771 001/11982 T Th 1:10pm - 2:25pm
451 Computer Science Bldg
Nakul Verma 3.00 0/110
COMS 4771 002/11983 T Th 2:40pm - 3:55pm
451 Computer Science Bldg
Nakul Verma 3.00 0/110

COMS W4772 ADVANCED MACHINE LEARNING. 3.00 points.

Lect: 3.

Prerequisites: (COMS W4771) or instructor's permission; knowledge of linear algebra & introductory probability or statistics is required.
An exploration of advanced machine learning tools for perception and behavior learning. How can machines perceive, learn from, and classify human activity computationally? Topics include 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 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

Fall 2024: COMS W4774
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4774 001/11958 T Th 1:10pm - 2:25pm
451 Computer Science Bldg
Nakul Verma 3.00 42/50

COMS W4775 Causal Inference. 3.00 points.

Prerequisites: Discrete Math, Calculus, Statistics (basic probability, modeling, experimental design), some programming experience.

Prerequisites: see notes re: points
Causal Inference theory and applications. The theoretical topics include the 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 2024: COMS W4775
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4775 001/11959 M W 4:10pm - 5:25pm
750 Schapiro Cepser
Elias Bareinboim 3.00 59/60

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 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.

Fall 2024: COMS W4901
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4901 024/12683  
Julia Hirschberg 1-3 8/45

COMS W4910 CURRICULAR PRACTICAL TRAINING. 1.00 point.

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 2024: COMS W4995
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4995 001/11960 T 4:10pm - 6:40pm
829 Seeley W. Mudd Building
Jason Cahill, Paul Blaer 3.00 34/35
COMS 4995 002/11961 F 10:10am - 12:40pm
644 Seeley W. Mudd Building
Bjarne Stroustrup 3.00 33/33
COMS 4995 003/11962 M W 1:10pm - 2:25pm
633 Seeley W. Mudd Building
Stephen Edwards 3.00 46/70
COMS 4995 004/11963 W 4:10pm - 6:40pm
833 Seeley W. Mudd Building
Hans Montero, Jae Lee 3.00 24/110
COMS 4995 005/11964 T Th 2:40pm - 3:55pm
428 Pupin Laboratories
Peter Belhumeur 3.00 122/125
COMS 4995 006/11965 T Th 5:40pm - 6:55pm
644 Seeley W. Mudd Building
Itsik Pe'er 3.00 7/40
COMS 4995 007/11966 T Th 5:40pm - 6:55pm
451 Computer Science Bldg
Yongwhan Lim 3.00 7/100
COMS 4995 008/11967 T 1:10pm - 3:40pm
829 Seeley W. Mudd Building
Gary Zamchick 3.00 35/40
COMS 4995 009/11968 W 10:10am - 12:40pm
415 Schapiro Cepser
Michelle Levine 3.00 11/40
COMS 4995 010/11969 Th 4:10pm - 6:40pm
633 Seeley W. Mudd Building
Homayoon Beigi 3.00 31/60
COMS 4995 011/13628 T Th 4:10pm - 5:25pm
451 Computer Science Bldg
Hugh Thomas 3.00 108/110
COMS 4995 012/15929 W 7:00pm - 9:30pm
451 Computer Science Bldg
Yihao Zhang 3.00 8/50
COMS 4995 030/13530 M 7:00pm - 9:30pm
833 Seeley W. Mudd Building
Andi Cupallari 3.00 82/120
COMS 4995 031/13532 W 7:00pm - 9:30pm
501 Schermerhorn Hall
Andrei Simion 3.00 142/178
COMS 4995 032/13534 T 4:10pm - 6:40pm
402 Chandler
Vijay Pappu 3.00 133/126
COMS 4995 033/13533 Th 7:00pm - 9:30pm
402 Chandler
Vijay Pappu 3.00 130/130
COMS 4995 V03/17527  
Stephen Edwards 3.00 6/99
COMS 4995 V10/17528  
Homayoon Beigi 3.00 4/99
COMS 4995 V30/21158  
Andi Cupallari 3.00 0/99
COMS 4995 V32/17555  
Vijay Pappu 3.00 29/99
Spring 2025: COMS W4995
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4995 001/11984 M W 8:40am - 9:55am
451 Computer Science Bldg
Timothy Roughgarden 3.00 0/60
COMS 4995 002/11985 T 1:10pm - 3:40pm
Room TBA
Gary Zamchick 3.00 0/40
COMS 4995 003/11986 Th 4:10pm - 6:40pm
Room TBA
Christian Swinehart 3.00 0/40
COMS 4995 005/13153 F 12:10pm - 2:00pm
Room TBA
Suman Jana 3.00 0/20
COMS 4995 006/13749 M 4:10pm - 6:40pm
Room TBA
Elias Bareinboim 3.00 0/40
COMS 4995 007/13154 T Th 10:10am - 12:40pm
Room TBA
Andrew Blumberg 3.00 0/30
COMS 4995 008/13387 M W 2:40pm - 3:55pm
Room TBA
Jae Lee 3.00 0/60
COMS 4995 009/13388 M W 5:40pm - 6:55pm
Room TBA
Jae Lee 3.00 0/110
COMS 4995 010/13389 M W 2:40pm - 3:55pm
Room TBA
Corey Toler-Franklin 3.00 0/45
COMS 4995 011/13753 T Th 2:40pm - 3:55pm
Room TBA
Richard Zemel 3.00 0/120
COMS 4995 012/13758 F 1:10pm - 3:40pm
Room TBA
Yongwhan Lim 3.00 0/25
COMS 4995 030/15959 T 7:00pm - 9:30pm
Room TBA
Adam Kelleher 3.00 0/70
COMS 4995 031/15960 W 7:00pm - 9:30pm
Room TBA
Andrei Simion 3.00 0/80
COMS 4995 032/15961 W 7:00pm - 9:30pm
Room TBA
Vijay Pappu 3.00 0/80

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.