Computer Science

Course Listing

Computer Science

Departmental Representative:
Adam Cannon
450 Computer Science
212-939-7000
ac1076@columbia.edu

Computer Science Department: 212-939-7000

To request a syllabus, please contact the course instructor. You can find contact information for an instructor on the university directory.

COMS S1004D Introduction to Computer Science and Programming in Java. 3 points.

Columbia University students may receive credit for only one of the following two courses: W1004 and W1005.

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.

Summer 2019: COMS S1004D
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 1004 001/73687  
3 0

COMS S3134Q Data Structures in JAVA. 3 points.

Due to significant overlap, students may receive credit for only one of the following three courses: W3134, W3136, and W3137.

Prerequisites: COMS W1004 Introduction to Computer Science and Programming in Java 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.

Summer 2019: COMS S3134Q
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 3134 001/11307  
3 0

COMS S3203D Discrete Mathematics: Introduction to Combinatorics and Graph Theory. 3 points.

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

Summer 2019: COMS S3203D
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 3203 001/21435  
3 0

COMS S3261D Computer Science Theory. 3 points.

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.

Summer 2019: COMS S3261D
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 3261 001/12523  
3 0

COMS S3261Q Computer Science Theory. 3 points.

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.

Summer 2019: COMS S3261Q
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 3261 002/71255  
3 0

COMS S4701D Artificial Intelligence. 3 points.

Prerequisites: COMS W3134 Data structures in Java, COMS W3136 Data Structures with C/C++, or COMS W3137 Honors Data Structures and Algorithms.

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.

Summer 2019: COMS S4701D
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4701 001/72471  
3 0

COMS S4705D Natural Language Processing. 3 points.

Prerequisites: COMS W3134 or COMS W3136 or COMS W3137 or or the instructor's permission.

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.

Summer 2019: COMS S4705D
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4705 001/26698  
3 0

COMS S4771D Machine Learning. 3 points.

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.    

Summer 2019: COMS S4771D
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4771 001/19003  
3 0

COMS S4995D Topics in Computer Science: Fundamentals of Game Design. 3 points.

Prerequisites: COMS W4771 or equivalent

This course presents an overview of the history of computer games and the theory of gaming. Topics include game genres, content, patterns, playability, suspension of disbelief and immersion, storytelling, and game balance and fairness.

Summer 2019: COMS S4995D
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4995 001/10091  
3 0

COMS S4995Q Topics in Computer Science: Deep Learning. 3 points.

Covers fundamental algorithms and methods, including backpropagation, differentiable programming, optimization, regularization techniques, and information theory behind DNN’s. Key deep learning architectures are described in detail including convolution neural networks (CNN, ResNet, DenseNet) with derivation from convolutional sparse coding, recurrent neural networks (LSTM, GRU) and attention, variational autoencoders (VAEs), and generative adversarial networks (GANs). Deep reinforcement learning is covered with examples, from basic principles of Markov Decision Processes, value-based and policy-based methods, Deep Q-Networks, policy gradient methods, through Monte Carlo tree search, expert iteration, and implementation of AlphaZero. Topics from visualization of neural networks, adversarial attacks against deep nets, and meta learning are presented. Assignments use the TensorFlow and PyTorch programming frameworks, and a final deep learning project is based on a process, data challenge, or research topic.

Summer 2019: COMS S4995Q
Course Number Section/Call Number Times/Location Instructor Points Enrollment
COMS 4995 002/70039  
3 0

CSEE S3827Q Fundamentals of Computer Systems. 3 points.

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.

Summer 2019: CSEE S3827Q
Course Number Section/Call Number Times/Location Instructor Points Enrollment
CSEE 3827 001/27914  
3 0

CSEE S4824D Computer Architecture. 3 points.

Focuses on advanced topics in computer architecture, illustrated by case studies from classic and modern processors. Fundamentals of quantitative analysis. Pipelining. Memory hierarchy design. Instruction-level and thread-level parallelism. Data-level parallelism and graphics processing units. Multiprocessors. Cache coherence. Interconnection networks. Multi-core processors and systems-on-chip. Platform architectures for embedded, mobile, and cloud computing.

Summer 2019: CSEE S4824D
Course Number Section/Call Number Times/Location Instructor Points Enrollment
CSEE 4824 001/63560  
3 0

CSOR S4231D Analysis of Algorithms. 3 points.

Prerequisites: COMS W3134, COMS W3136, or COMS W3137, and COMS W3203.

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

Summer 2019: CSOR S4231D
Course Number Section/Call Number Times/Location Instructor Points Enrollment
CSOR 4231 001/20219  
3 0

ENGI S1006D Introduction to Computing for Engineers and Applied Scientists. 3 points.

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

Summer 2019: ENGI S1006D
Course Number Section/Call Number Times/Location Instructor Points Enrollment
ENGI 1006 001/64776  
3 0

ENGI S1006Q Introduction to Computing for Engineers and Applied Scientists. 3 points.

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

Back to Courses Page