Columbia University in the City of New YorkWebsiteAcademic Catalog
Computer ScienceDepartment Website
BS Degree in Computer Sciencesource 1
CS Courses
- Computing in ContextorCOMS W1002 (4)introCOMS W1002: Computing in Context
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
Intro to Comp for Eng/App SciENGI E1006 (3)engrENGI E1006: Intro to Comp for Eng/App SciAn interdisciplinary course in computing intended for first year SEAS students. Introduces computational thinking, algorithmic problem solving and Python programming with applications in science and engineering. Assumes no prior programming background
- Introduction to Computer Science and Programming in JavaCOMS W1004 (3)introCOMS W1004: Introduction to Computer Science and Programming in Java
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.
- Data Structures in JavaorCOMS W3134 (3)introCOMS W3134: Data Structures in 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.
Honors Data Structures & AlgorithmsCOMS W3137 (4)introCOMS W3137: Honors Data Structures & AlgorithmsAn 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
- Discrete MathematicsCOMS W3203 (4)mathCOMS W3203: Discrete Mathematics
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)
- orIntro to Applied MathematicsorAPMA E2101 (3)mathAPMA E2101: Intro to Applied Mathematics
A unified, single-semester introduction to differential equations and linear algebra with emphases on (1) elementary analytical and numerical technique and (2) discovering the analogs on the continuous and discrete sides of the mathematics of linear operators: superposition, diagonalization, fundamental solutions. Concepts are illustrated with applications using the language of engineering, the natural sciences, and the social sciences. Students execute scripts in Mathematica and MATLAB (or the like) to illustrate and visualize course concepts (programming not required)
Applied Math I: Linear AlgebraororAPMA E3101 (3)mathAPMA E3101: Applied Math I: Linear AlgebraMatrix algebra, elementary matrices, inverses, rank, determinants. Computational aspects of solving systems of linear equations: existence-uniqueness of solutions, Gaussian elimination, scaling, ill-conditioned systems, iterative techniques. Vector spaces, bases, dimension. Eigenvalue problems, diagonalization, inner products, unitary matrices
Linear Algebra and ProbabilityMATH UN2015 (3)mathMATH UN2015: Linear Algebra and ProbabilityLinear algebra with a focus on probability and statistics. The course covers the standard linear algebra topics: systems of linear equations, matrices, determinants, vector spaces, bases, dimension, eigenvalues and eigenvectors, the Spectral Theorem and singular value decompositions. It also teaches applications of linear algebra to probability, statistics and dynamical systems giving a background sufficient for higher level courses in probability and statistics. The topics covered in the probability theory part include conditional probability, discrete and continuous random variables, probability distributions and the limit theorems, as well as Markov chains, curve fitting, regression, and pattern analysis. The course contains applications to life sciences, chemistry, and environmental life sciences. No a prior i background in the life sciences is assumed. This course is best suited for students who wish to focus on applications and practical approaches to problem solving. It is recommended to students majoring in engineering, technology, life sciences, social sciences, and economics. Math majors, joint majors, and math concentrators must take MATH UN2010 Linear Algebra, which focuses on linear algebra concepts and foundations that are needed for upper-level math courses. MATH UN2015 (Linear Algebra and Probability) does NOT replace MATH UN2010 (Linear Algebra) as prerequisite requirements of math courses. Students may not receive full credit for both courses MATH UN2010 and MATH UN2015
- Computer Science TheoryCOMS W3261 (3)theoryCOMS W3261: Computer Science Theory
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
- Fundamentals of Computer Systs.CSEE W3827 (3)sysCSEE W3827: Fundamentals of Computer Systs.
Fundamentals of computer organization and digital logic. Boolean algebra, Karnaugh maps, basic gates and components, flipflops and latches, counters and state machines, basics of combinational and sequential digital design. Assembly language, instruction sets, ALU’s, single-cycle and multi-cycle processor design, introduction to pipelined processors, caches, and virtual memory
- pick 3
Introduction to DatabasesCOMS W4111 (3)sysCOMS W4111: Introduction to DatabasesThe 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
Fund-Large-Scale Dist SystemsCOMS W4113 (3)sysCOMS W4113: Fund-Large-Scale Dist SystemsDesign 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
Programming Lang & TranslatorsCOMS W4115 (3)plsCOMS W4115: Programming Lang & TranslatorsModern 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
Operating Systems ICOMS W4118 (3)sysCOMS W4118: Operating Systems IDesign 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
Computer NetworksCOMS W4119 (3)sysCOMS W4119: Computer NetworksIntroduction 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
Engineering Software-as-a-ServiceCOMS W4152 (3)softengCOMS W4152: Engineering Software-as-a-ServiceModern 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
Computer GraphicsCOMS W4160 (3)graphicsCOMS W4160: Computer GraphicsIntroduction 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
Computer AnimationCOMS W4167 (3)graphicsCOMS W4167: Computer AnimationTheory 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).
User Interface DesignCOMS W4170 (3)humansCOMS W4170: User Interface DesignIntroduction 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
Intro-Computational ComplexityCOMS W4236 (3)theoryCOMS W4236: Intro-Computational ComplexityDevelops 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
Artificial IntelligenceCOMS W4701 (3)aiCOMS W4701: Artificial IntelligenceProvides 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
Natural Language ProcessingCOMS W4705 (3)aiCOMS W4705: Natural Language ProcessingComputational 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
Computer Vision I: First PrinciplesCOMS W4731 (3)aiCOMS W4731: Computer Vision I: First PrinciplesIntroductory 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
Machine LearningCOMS W4771 (3)aiCOMS W4771: Machine LearningTopics 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
Computer ArchitectureCSEE W4824 (3)sysCSEE W4824: Computer ArchitectureFocuses on advanced topics in computer architecture, illustrated by case studies from classic and modern processors. Fundamentals of quantitative analysis. Pipelining. Memory hierarchy design. Instruction-level and thread-level parallelism. Data-level parallelism and graphics processing units. Multiprocessors. Cache coherence. Interconnection networks. Multi-core processors and systems-on-chip. Platform architectures for embedded, mobile, and cloud computing
System-On-Chip PlatformsCSEE W4868 (3)sysCSEE W4868: System-On-Chip PlatformsDesign and programming of System-on-Chip (SoC) platforms. Topics include: overview of technology and economic trends, methodologies and supporting CAD tools for system-level design, models of computation, the SystemC language, transaction-level modeling, software simulation and virtual platforms, hardware-software partitioning, high-level synthesis, system programming and device drivers, on-chip communication, memory organization, power management and optimization, integration of programmable processor cores and specialized accelerators. Case studies of modern SoC platforms for various classes of applications.
Analysis of Algorithms ICSOR E4231 (3)algsCSOR E4231: Analysis of Algorithms IIntroduction to the design and analysis of efficient algorithms. Topics include models of computation, efficient sorting and searching, algorithms for algebraic problems, graph algorithms, dynamic programming, probabilistic methods, approximation algorithms, and NP-completeness
Math/Stat Courses
- Multv. Calc. For Engi & App SciorAPMA E2000 (4)mathAPMA E2000: Multv. Calc. For Engi & App Sci
Differential and integral calculus of multiple variables. Topics include partial differentiation; optimization of functions of several variables; line, area, volume, and surface integrals; vector functions and vector calculus; theorems of Green, Gauss, and Stokes; applications to selected problems in engineering and applied science
Calculus IIIorMATH UN1201 (3)mathMATH UN1201: Calculus IIIVectors in dimensions 2 and 3, complex numbers and the complex exponential function with applications to differential equations, Cramers rule, vector-valued functions of one variable, scalar-valued functions of several variables, partial derivatives, gradients, surfaces, optimization, the method of Lagrange multipliers. (SC)
Accelerated Multivariable CalcMATH UN1205 (4)mathMATH UN1205: Accelerated Multivariable CalcVectors in dimensions 2 and 3, vector-valued functions of one variable, scalar-valued functions of several variables, partial derivatives, gradients, optimization, Lagrange multipliers, double and triple integrals, line and surface integrals, vector calculus. This course is an accelerated version of MATH UN1201 - MATH UN1202.
- Introduction to Probability and StatisticsorSTAT GU4001 (3)mathSTAT GU4001: Introduction to Probability and Statistics
A calculus-based tour of the fundamentals of probability theory and statistical inference. Probability models, random variables, useful distributions, conditioning, expectations, law of large numbers, central limit theorem, point and confidence interval estimation.
Calc-Based Intro to StatisticsorSTAT UN1201 (3)mathSTAT UN1201: Calc-Based Intro to StatisticsDesigned for students who desire a strong grounding in statistical concepts with a greater degree of mathematical rigor than in STAT W1111. Random variables, probability distributions, pdf, cdf, mean, variance, correlation, conditional distribution, conditional mean and conditional variance, law of iterated expectations, normal, chi-square, F and t distributions, law of large numbers, central limit theorem, parameter estimation, unbiasedness, consistency, efficiency, hypothesis testing, p-value, confidence intervals, maximum likelihood estimation.
Linear Algebra and ProbabilityorMATH UN2015 (3)mathMATH UN2015: Linear Algebra and ProbabilityLinear algebra with a focus on probability and statistics. The course covers the standard linear algebra topics: systems of linear equations, matrices, determinants, vector spaces, bases, dimension, eigenvalues and eigenvectors, the Spectral Theorem and singular value decompositions. It also teaches applications of linear algebra to probability, statistics and dynamical systems giving a background sufficient for higher level courses in probability and statistics. The topics covered in the probability theory part include conditional probability, discrete and continuous random variables, probability distributions and the limit theorems, as well as Markov chains, curve fitting, regression, and pattern analysis. The course contains applications to life sciences, chemistry, and environmental life sciences. No a prior i background in the life sciences is assumed. This course is best suited for students who wish to focus on applications and practical approaches to problem solving. It is recommended to students majoring in engineering, technology, life sciences, social sciences, and economics. Math majors, joint majors, and math concentrators must take MATH UN2010 Linear Algebra, which focuses on linear algebra concepts and foundations that are needed for upper-level math courses. MATH UN2015 (Linear Algebra and Probability) does NOT replace MATH UN2010 (Linear Algebra) as prerequisite requirements of math courses. Students may not receive full credit for both courses MATH UN2010 and MATH UN2015
Science Courses
Other Courses
- 7 × Free Elective
History of the Major
2024 | |
2023 | Drop track (depth) elective requirements. Require both Linear Algebra and Probability instead picking one. |
2022 | |
2021 | |
2020 | |
2019 | |
2018 | |
2017 |