The Bachelor of Arts degree in computer science encourages students to obtain broad exposure to the arts, humanities, and social sciences, while at the same time providing them with the appropriate computer science background necessary for graduate study or a professional career. Computers have an impact on nearly all areas of human endeavor. Therefore, the department also offers several courses intended for students who do not plan a computer science major or concentration. The computer science major offers maximum flexibility by providing students with a range of options for the specialization of their degree program. Students study a common core of fundamental topics, supplemented by a track that identifies specific areas for deeper study.
The foundations track prepares students for advanced work in fundamental theoretical and mathematical aspects of computing, including analysis of algorithms, scientific computing, and security. The systems track prepares students for immediate employment in the computer industry as well as advanced study in such areas as software engineering, operating systems, computer-aided digital design, computer architecture, programming languages, and user interfaces. The artificial intelligence track provides specialization for the student interested in natural language processing and systems capable of exhibiting “human-like” intelligence. The applications track is for students interested in the implementation of interactive multimedia content for the Internet and wireless applications. The vision and graphics track exposes students to computer vision, graphics, human-computer interaction and robotics. A combination track is available to students who wish to pursue an interdisciplinary course of study combining computer science and another field in the arts, humanities, mathematics, natural sciences, or social sciences. A student planning a combination track should be aware that one additional course is required to complete this option.
Computer Science Course Descriptions
DEPARTMENTAL OFFICE
450
Computer Science Building; (212) 939-7000
http://www.cs.columbia.edu/education/undergrad
DIRECTOR OF UNDERGRADUATE STUDIES
Adam Cannon
459 Computer Science Building; (212) 939-7016
cannon@cs.columbia.edu
ASSISTANT DIRECTOR OF ACADEMIC PROGRAMS
Remiko O. Moss
450 Computer Science Building; (212) 939-7002
remimoss@cs.columbia.edu
DEPARTMENTAL ADVISORS
For students whose last names begin with A-L:
Luis Gravano
706 CEPSR; (212) 939-7064
gravano@cs.columbia.edu
www.cs.columbia.edu/~gravano
For students whose last names begin with M-Z:
Mihalis Yannakakis
455 Computer Science Building; (212) 939-7145
mihalis@cs.columbia.edu
www.cs.columbia.edu/~mihalis
FACULTY
Professors
Alfred V. Aho
Peter K. Allen
Peter Belhumeur
Steven M. Bellovin
Steven K. Feiner
Jonathan L. Gross
Julia Hirschberg
Gail E. Kaiser
John R. Kender
Kathleen R. McKeown
Shree K. Nayar
Kenneth A. Ross
Henning G. Schulzrinne
Salvatore J. Stolfo
Joseph F. Traub
Stephen H. Unger
Henryk Wozniakowski
Mihalis Yannakakis
Yechiam Yemini
Associate Professors
Stephen Edwards
Luis Gravano
Angelos D. Keromytis
Vishal Misra
Jason Nieh
Steven M. Nowick
Ravi Ramamoorthi
Rocco Servedio
Assistant Professors
Adam Cannon
Luca Carloni
Eitan Grinspun
Shlomo Hershkop
Tony Jebara
Tal Malkin
Itsik Pe’er
Adjunct Faculty
Alexander Biliris
Markus Hofmann
Prabhakar Kudva
William B. Paley
Anargyros Papageorgiou
Alexander Pasik
Michael Rabin
Dragomir Radev
David Sturman
Bernard Yee
Mordechai Yung
REQUIREMENTS FOR A
MAJOR IN COMPUTER SCIENCE
All majors should confer
with the program consultant each term in planning their programs of study.
Students considering a major in computer science are encouraged to talk to a
program consultant during their first or second year. The requirements that
follow are special to this department and must be read in conjunction with the
general requirements for the bachelor's degree. This program is a major revision
from prior years. As a rule, no more than 12 transfer credits will be accepted
toward the major.
Program of study:
This program allows the most freedom possible in selecting a specialized track and completing the requirements during the junior and senior years. It is particularly important to complete the core requirements and to seek advice from a track consultant to better plan your course of study as early as possible. The first two introductory courses (W1004 and W1007) are taught in Java. The next two, Advanced Programming (W3157) and Data Structures and Algorithms (W3139), are taught in C/C++ so students will become multilingual. Programming classes make use of an extensive array of computing facilities available on campus.
Please see the program QuickGuide at http://www.cs.columbia.edu/education/undergrad/ccguide.
Required courses: 41 or 44 credits.
REQUIREMENTS FOR A CONCENTRATION IN COMPUTER SCIENCE
Program of study: 23 credits.
Required courses:
REQUIREMENTS FOR A MAJOR IN COMPUTER SCIENCE-MATHEMATICS
Departmental Advisers:
Computer
Science:
To be announced.
Mathematics:
Patrick X. Gallagher
517
Math
(212) 854-4346
pxg@math.columbia.edu
The goal of this joint major is to provide substantial background in each of these two disciplines, focusing on some of the parts of each which are closest to the other. Students intending to pursue a Ph.D. program in either discipline are urged to take additional courses, in consultation with their advisers.
Required courses: This program requires a total of at least 46 credits: 20 credits in computer science, 21 credits in mathematics, and two 3-credit electives in either computer science or mathematics.
Computer Science
Mathematics
Electives
Note: All required and elective courses must be passed with a grade of C- or better to count toward the major.
COURSES OF INSTRUCTION (for a detailed description of each course, see the Computer Science Course Descriptions)