Computer scientists, therefore, function in a wide variety of roles, ranging from pure theory and design to programming and marketing. The computer science curriculum at Columbia places equal emphasis on theoretical computer science and mathematics and on experimental computer technology. The vast amount of disk space is backed up by a 2.1TB DLT7000 and a 600GB Exabyte robotic tape unit. Undergraduate Program Computer science majors at Columbia study an integrated curriculum, partially in areas with an immediate relationship to the computer, such as programming languages, operating systems, and computer architecture, and partially in theoretical computer science and mathematics. Thus, students obtain the background to pursue their interests both in applications and in theoretical developments.
Practical experience is an essential component of the computer science program.
Qualified majors sometimes serve as consultants at the Computer Center, which operates several labs with microcomputers and terminals available at convenient locations on the campus. Upper-level students in computer science may assist faculty members with research projects, particularly in the development of software. Ongoing faculty projects include algorithmic analysis, computational complexity, software tool design, distributed computation, modeling and performance evaluation, computer networks, computer architecture, CAD for digital systems, computer graphics, programming environments, expert systems, natural language processing, computer vision, robotics, multicomputer design, user interfaces, VLSI applications, artificial intelligence, combinatorial modeling, virtual environments, and microprocessor applications. Students are strongly encouraged to arrange for participation by consulting individual faculty members. Most graduates of the computer science program at Columbia step directly into career positions in computer science with industry or government, or continue their education in graduate degree programs.