Columbia University in the City of New York · Courses
COMS W
101 courses with the subject COMS W, each shown exactly as we captured it from the college's catalog, with every element we hold. Where the wording looks broken, that is our reading of the catalog, not the college's text.
COMS W1001INTRO TO INFORMATION SCIENCE3.00
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
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
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. Spring 2026: COMS W1004 Course Number Section/Call Number Times/Location Instructor Points Enrollment COMS 1004 001/12332 T Th 1:10pm - 2:25pm 501 Schermerhorn Hall Christian Murphy 3.00 122/189 COMS 1004 002/12333 T Th 2:40pm - 3:55pm 501 Schermerhorn Hall Christian Murphy 3.00 127/189 Fall 2026: COMS W1004 Course Number Section/Call Number Times/Location Instructor Points Enrollment COMS 1004 001/13512 M W 2:40pm - 3:55pm 309 Havemeyer Hall Paul Blaer 3.00 193/320 COMS 1004 002/13513 M W 5:40pm - 6:55pm 501 Northwest Corner Paul Blaer 3.00 74/164
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.
Prerequisites: Students must be enrolled in an introductory computing course. Corequisites: COMS W1001,COMS W1002,COMS W1004,COMS W1005,ENGI W1006,COMS X1016
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
Subject
COMS W
Credits (min)
1
Credits (max)
1
Credit unit
point
Type
course
Repeatable
May be repeated for credit if different languages are involved
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
Prerequisites: ENGI E1006 OR COMS W1002; or equivalent Python programming experience. Intermediate interdisciplinary course in computing intended for non-CS majors. 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
Prerequisites: (COMS W1004) or (COMS W1005) or (COMS W1007) or (ENGI E1006) COMS W1005 OR COMS W1007 OR ENGI E1006 OR COMS W1004 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
Prerequisites: (COMS W1004) or (COMS W1007) 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
Prerequisites: (COMS W3134) or (COMS W3137) COMS W3134 OR COMS W3137 C programming language and Unix systems programming. Also covers Git, Make, TCP/IP networking basics, C fundamentals
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)
Broader impact of computers. Social networks and privacy. Employment, intellectual property, and the media. Science and engineering ethics. Suitable for nonmajors
Prerequisites: (MATH UN2010 or MATH UN2015 or APMA E2101 or APMA E3101 or COMS W3251) and (MATH UN1201 or MATH UN1205 or APMA E2000) and (STAT UN1201 or MATH UN2015 or IEOR E3658) Familiarity with mathematical proof writing
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
Lect: 3. 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 W3998UNDERGRAD PROJECTS IN COMPUTER SCIENCE1.00-3.00
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
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 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
Subject
COMS W
Credits (min)
1
Credits (max)
1
Credit unit
point
Type
course
Repeatable
May be repeated for credit, but no more than 3 total points may be used toward the 128-credit degree requirement.
Prerequisites: (COMS W4111) and COMS W4111; 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
Prerequisites: (COMS W3134 or COMS W3136 or COMS W3137) and (COMS W3157 or COMS W4118 or CSEE W4119) COMS W3134, W3136, or W3137. COMS W3157 or good working knowledge of C and C++. 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
Prerequisites: (CSEE W3827) and CSEE W3827; Knowledge of C and programming tools as covered in COMS COMS W3136, COMS W3157, or COMS 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
Prerequisites: Comfort with basic probability and programming fluency in Python, C++, Java, or Ruby. 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
Prerequisites: CSOR W4246 OR STAT W4203; or equivalent as approved by faculty advisor. 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 W4137From Algorithmic Thinking to Development3.00
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
Prerequisites: COMS W3134 AND COMS W3157 AND CSEE W3827 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
Prerequisites: COMS W4111 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
Prerequisites: (COMS W3134) or (COMS W3136) or (COMS W3137) COMS W3134 OR COMS W3136 OR COMS W3137; 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. Due to significant overlap in content, only one of COMS 4160 or Barnard COMS 3160BC may be taken for credit
Subject
COMS W
Credits (min)
3
Credits (max)
3
Credit unit
points
Type
course
Repeatable
may be taken for credit Fall 2026: COMS W4160 Course Number Section/Call Number Times/Location Instructor Points Enrollment COMS 4160 001/13656 T Th 4:10pm - 5:25pm 451 Computer Scien
Prerequisites: COMS W3137, COMS W3251 recommended, and a good working knowledge of UNIX and C. Intended for graduate students and advanced undergraduates. 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
Prerequisites: (COMS W3134 or COMS W3136 or COMS W3137) 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
Prerequisites: (COMS W4160) or (COMS W4170) or COMS W4160 OR COMS W4170; Or 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
Prerequisites: Familiarity with elementary concepts of probability and data structures or experience programming with data 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
Prerequisites: see notes re: points COMS W4231 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
Prerequisites: (COMS W3261) 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
Prerequisites: COMS W3261 OR CSOR W4231; 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
Lect: 3. 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. Spring 2026: COMS W4281 Course Number Section/Call Number Times/Location Instructor Points Enrollment COMS 4281 001/12356 T Th 2:40pm - 3:55pm 451 Computer Science Bldg James Bartusek 3.00 81/100 Fall 2026: COMS W4281 Course Number Section/Call Number Times/Location Instructor Points Enrollment COMS 4281 001/13661 F 2:10pm - 4:40pm 330 Uris Hall Henry Yuen 3.00 57/60
COMS W4295Topics in Theoretical Computer Science3.00
Selected topics in theoretical computer science. Content and prerequisites vary between sections and semesters. May be repeated for credit. Check "topics courses" webpage on the department website for more information on each section
COMS W4419Internet Technology, Economics, and Policy3.00
Prerequisites: General engineering, economics, law or technology background. Programming background is not required. 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
Prerequisites: (COMS W3134 or COMS W3136 or COMS W3137) and COMS W3134 OR COMS W3136 OR COMS W3137; 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
Prerequisites: (COMS W3134 or COMS W3136 or COMS W3137) or Python programming experience, probability theory, and linear algebra recommended. Some previous or concurrent exposure to AI and machine learning is benefici Some previous or concurrent exposure to AI or Machine Learning is recommended but not required.
Prerequisites: (COMS W2132) or (COMS W3134) or (COMS W3136) or (COMS W3137) or (IEOR E2000) Programming proficiency in Python. Basic knowledge of probability theory and statistics. Familiarity with machine learning recommended.
Spring 2026: COMS W4721 Course Number Section/Call Number Times/Location Instructor Points Enrollment COMS 4721 001/11556 T Th 1:10pm - 2:25pm 142 Uris Hall Yining Liu 3.00 97/100 COMS 4721 002/12505 T Th 2:40pm - 3:55pm 142 Uris Hall Yining Liu 3.00 106/100 COMS 4721 C01/17685 Yining Liu 3.00 2/99
Prerequisites: This course presumes prior knowledge of machine learning equivalent to having taken an introductory course in ML. It also assumes the ability to code in Python.
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
Prerequisites: COMS W4731; Fundamentals of calculus, linear algebra, and Python programming. Students without any of these prerequisites are advised to contact the instructor prior to taking the course. 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
Prerequisites: (COMS W3134 or COMS W3136 or COMS W3137) and (COMS W3251 or MATH UN2010 or APMA E2101 or APMA E3101 or MATH UN2015) and (STAT GU4001 or IEOR E3658 or STAT UN1201 or MATH UN2015) Proficiency in Python or a similar programming language.
Prerequisites: (COMS W3134 or COMS W3136 or COMS W3137) 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 W4762Machine Learning for Functional Genomics3
Prerequisites: Proficiency in a high level programming language Python/R/Julia. An introductory machine learning class such as COMS W4771 Machine Learning will be helpful but is not required.
Prerequisites: (MATH UN1201 or MATH UN1205 or APMA E2000) and (COMS W3251 or MATH UN2010 or MATH UN2015) and (STAT UN1201 or STAT GU4001 or IEOR E3658 or MATH UN2015) and COMS W3203 and COMS W3134 General mathematical maturity. COMS W3770 is recommended for students who wish to refresh their math background.
Prerequisites: (COMS W4771) or COMS W4771; 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
Prerequisites: 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: (COMS W4771) and (COMS W3251 or MATH UN2010 or MATH UN2015) and (STAT UN1201 or STAT GU4001 or STAT GU4203 or IEOR E3658 or MATH UN2015) Foundational concepts, methods, applications, and recent advances in neural network algorithms
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