Computer Science
Departmental Representative:
Prof. Jonathan Gross
450 Computer Science
212-939-7000
gross@cs.columbia.edu
Computer Science Department: 212-939-7000
OFFICIAL MAKEUP DATES FOR UNIVERSITY HOLIDAYS
May 31, replaces the Memorial Day holiday.
July 5, replaces the Independence Day holiday
NOTE
The University reserves the right to withdraw or modify the courses of instruction or to change the instructors as may become necessary.
Click on course title to see course description and schedule.
Summer 2013
Computer Science
Runs from the week of May 28 to Jul 05
Students may receive credit for only one of the following two courses: COMS W1003 and COMS W1004. 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.
Course Fee: $5.00Runs from the week of May 28 to Jul 05
Intended primarily for engineering students. General introduction to
computer programming, with engineering applications. Structured program
design. Taught in MATLAB.
Runs from the week of Jul 08 to Aug 16
Prerequisites: COMS W1004 or knowledge of JAVA
Not intended for computer science majors. 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 four
courses: COMS W3133, W3134, W3137, and W3139.
Runs from the week of May 28 to Jul 05
Prerequisites: COMS W1007 or W1009.
Practical introduction to programming techniques and tools for professional
software construction. Provides overview of C for students with Java
background. Emphasizes systems-level programming skills for common
operating systems. Tools for debugging, profiling, and source code
management. Covers common abstractions such as serialization, Web-based
programming, RPC, scripting, and multi-language programming.Course Fee:
$5.00
Runs from the week of May 28 to Jul 05
Prerequisites: Any introductory course in computer programming.
Mathematical induction, counting arguments (permutations and combinations, elementary finite probability, recurrence relations, inclusion-exclusion principle), and topics in graph theory (isomorphism, planarity, circuits, trees, and directed graphs).
Course Fee: $5.00Runs from the week of Jul 08 to Aug 16
Prerequisites: COMS W3139 and W3203, or the equivalent.
Computability and models of computation. Regular languages, finite
automata, regular grammars, nondeterminism, regular expressions.
Context-free languages, push-down automata, context-free grammars, parsing.
Turing machines, general grammars, computability, the Chomsky hierarchy,
the Church-Turing thesis, other models of computation.Course Fee:
$5.00
Runs from the week of May 28 to Jul 05
Prerequisites: COMS W3134 or W3137 (equivalent courses taken elsewhere are acceptable as well) and Fluency in Java.
You need to get permission from the instructor if you do not have these prerequisites. This course is intended for both Computer Science majors as well as non-majors.
You will learn what a database system is, how you can design databases effectively and in a principled manner, and how you can develop applications using databases. The course will focus on relational and object-relational databases.
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;
object-relational databases; XML; query processing; physical database
tuning; transaction processing; security.
Runs from the week of Jul 08 to Aug 16
Prerequisites: COMS W3137 or equivalent, W3261, and CSEE W3827, or permission of the instructor.
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.
Runs from the week of Jul 08 to Aug 16
Prerequisites: COMS W3137 or W3139, and 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. Note:
This course is the same as CSOR W4231 (CS and IEOR Department).
Runs from the week of May 28 to Jul 05
Prerequisites: COMS W3139, or the equivalent.
Designed to provide a broad understanding of the basic techniques in use
today for building intelligent computer systems. State-space
representations, problem reduction, means-end analysis, and-or graphs.
Heuristic searching: depth-first, breadth-first, best-first, hill-climbing,
divide and conquer, minimax, alpha-beta. Predicate calculus, resolution
theorem proving, Horn clause theorem provers. AI systems and languages:
goals and contexts. Issues of knowledge and representation. Learning and
concept formation. LISP programming. Other topics as time permits.Course
Fee: $5.00