The Software Systems Track


The Software Systems track is for students who want to pursue knowledge of software development and software systems methodologies and technologies. Software plays the key role in practical, real-world computing systems and applications. This track enables students to understand and master classic and current software systems, and provides the fundamentals for later self-study of future software systems.


Track Advisor


Prof. Gail Kaiser is the advisor for Masters students following this track. E-mail: kaiser@cs.columbia.edu.

Overall Requirements

Students must complete at least a total of 30 graduate credits.

1. Fulfill the 12-credit core requirement; three core courses COMS W4115, COMS W4118, and COMS W4156 are prerequisites for this track.

2. Two required courses (6 credits): select 2 from the Required Track list below.

3. Six (6) elective credits selected from the Electives list below.

4. Six (6) credits of general elective graduate courses, at the 4000-level or above; at least 3 of these credits must be CS graduate courses.

5. Students using previous courses to fulfill core or track requirements may complete the 30 graduate credits by expanding their electives selected from the track or from other graduate courses; at most 3 credits overall may be from non-technical graduate courses.


Core Breadth Requirement:

Students must complete at least four Core courses out of the following six:

COMS W4115: Programming Languages and Translators

COMS W4118: Operating Systems

COMS W4156: Advanced Software Engineering

CSOR W4231: Analysis of Algorithms

COMS W4701: Artificial Intelligence

CSEE W4824: Computer Architecture


Candidates must complete the core courses W4115, W4118 and W4156, or equivalent courses, to develop a fundamental understanding of software systems. Ideally, students should complete these courses prior to pursuing track courses, but they may be taken concurrently with track courses. Note: In the case of students who first enrolled in the MS program any semester prior to Fall 2004, COMS W4156 is not required, but if taken can substitute for one of the required track courses.


Required Track Courses

Candidates are required to complete any two of the following courses:

COMS W4111: Database Systems

COMS W4117: Compilers and Interpreters

COMS W4170: User Interface Design

COMS W4172: 3D User Interface Design

COMS W4180: Network Security

COMS W4187: Security Architecture and Engineering

COMS W4444: Programming and Problem Solving

Students who have completed equivalent courses with grades of at least 3.0 may apply those courses to satisfy these requirements and then devote more credits to pursue additional elective courses, either from the track program electives or other graduate courses.


Elective Track Courses

Candidates are required to complete two courses (6 credits) from the following list of track electives:

COMS E6111: Advanced Database Systems

COMS E6113: Topics in Database Systems

COMS E6117: Topics in Programming Languages and Translators

COMS E6118: Operating Systems, II

COMS E6123: Programming Environments and Software Tools

COMS E6125: Web-Enhanced Information Management

COMS E6174: Interaction Design: A Perceptual Approach

COMS E6176: Mobile & Wearable Computing

COMS E6181: Advanced Internet Services

COMS E6183: Security

COMS E6184: Anonymity and Privacy

COMS E6901: Projects in Computer Science

COMS E6998/9: Topics in Computer Science

Topics in Computer Science and Projects in Computer Science electives must be approved as qualifying "software systems" by your advisor. Typically this would mean topics/projects offered by a software systems faculty member or by an affiliated adjunct.


General Electives

Candidates are required to complete at least 6 additional graduate credits at, or above, the 4000-level; at least 3 of these credits must be CS, the other 3 credits may be a technical or non-technical elective approved by your advisor. At most 3 credits overall of the 30 graduate credits required for the MS degree may be non-technical.

Note: The list of electives may be updated to reflect changes in the schedule of course offerings.