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.