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 as well as construction of future software systems.

1. Summary of Requirements

Students must complete at least a total of 30 graduate points and must maintain at least 2.7 overall GPA in order to be eligible for the MS degree in Computer Science.

  1. Required track courses: COMS W4115, COMS W4118 and COMS 4156.  (COMS W4156 is not required for students who first enrolled in the MS program prior to Fall 2014.)
  2. Four breadth courses, two of which can be covered by the track requirements, plus one course chosen from Theory and the other from AI and Apps.
  3. Two 4000-level elective track courses (6 points) selected from the list of section 3.
  4. Two 6000-level elective track courses (6 points) selected from the list of section 4.
  5. Three points of general elective graduate courses.
  6. Students using previously taken courses to waive one or more of the required track courses may complete the 30 graduate points by expanding their electives, selected either from the track or from other graduate courses; at most three points overall may be "non-CS/non-technical" graduate courses.  Imported courses cannot be used to fulfill the track electives. 

2. Breadth Requirement

Students are required to satisfy the Breadth Requirement by taking 1 course from Group 1, 1 course from Group 2, 1 course from Group 3, and 1 more course from any of the three groups. Track courses taken at Columbia can also satisfy the breadth requirement.

Group  Courses
Group 1 (Systems)

All CS 41xx courses except CS 416x and CS 417x
All CS 48xx courses, EECS 4340 and CS 4444

Group 2 (Theory) All CS 42xx courses including CSOR W4231
Group 3 (AI and Apps) All CS 47xx courses, and CS 416x and CS 417x


3. 4000-level Elective Track Courses

Students are required to complete at least two 4000-level courses (6 points) selected from the following list of track courses:

Course ID

Title

COMS W4111

Introduction to Databases

COMS W4112

Database System Implementation

COMS W4117

Compilers and Interpreters

COMS W4130

Principles and Practice of Parallel Programming

COMS W4156

Advanced Software Engineering (this course is required, not an elective, for students first enrolling in Fall 2014 or thereafter)

COMS W4170

User Interface Design

COMS W4187

Security Architecture and Engineering

COMS W4444

Programming and Problem Solving

COMS W4460

Principles of Innovation and Entrepreneurship (no longer offered after AY 2013-2014)

COMS W4995*

Topics in Computer Science


*Topics in Computer Science (4995) sections must be approved as qualifying "software systems" track courses by your Software Systems Track Advisor. Typically this would mean topics offered by a software systems faculty member or by an affiliated adjunct.

Check the registrar's website for definitive information as to which courses are offered a given semester.

4. 6000-level Elective Track Courses

Students are required to complete at least two 6000-level courses (6 points) selected from the following list of track courses: 

Course ID

Title

COMS E6111

Advanced Database Systems

COMS E6117

Topics in Programming Languages and Translators

COMS E6118

Operating Systems II

COMS E6121

Reliable Software

COMS E6123

Programming Environments and Software Tools

COMS E6125

Web-Enhanced Information Management (no longer offered after AY 2013-2014)

COMS E6901*

Projects in Computer Science

COMS E6998*

Topics in Computer Science (Spring 14: Cloud and Mobile Security, Privacy and Online Social Networks, Cloud & Big Data)


*Projects in Computer Science (6901) and Topics in Computer Science (6998) courses must be approved as qualifying "software systems" electives by your Software Systems Track Advisor. Typically this would mean topics/projects offered by a software systems faculty member or by an affiliated adjunct. Although rarely used, COMS E6900 Tutorial in Computer Science can be substituted for E6901 with the advisor's approval. 

5. General Electives

Candidates are required to complete at least three additional graduate points at or above the 4000 level approved by the track advisor. At most three points overall of the 30 graduate points required for the MS degree may be "non-technical".

Important note: Not all COMS or SEAS courses qualify as "technical", a few are considered "non-technical" (most non-SEAS courses are considered "non-technical", but a few may be deemed "technical").  Please complete a non-tech approval form, get your advisor's approval, and forward it to Janine Maslov or Remi Moss. 

** Known non-technical CS course **

COMS W4995 The Business of Software Delivery

6. Track Planning


Please visit the Directory of Classes to get the updated course listings. Please also note that not all courses are offered every semester, or even every year. A few courses are offered only once every two or three years or even less frequently. For more information, please see the SEAS Bulletin CS course-offering schedule (This schedule can change due to unforeseeable circumstances; thus, it should only be used as a reference).

7. Contact

Please direct all questions concerning the Software Systems Track to your designated advisor, which should be , or . However, track students seeking approvals for CPT or OPT should instead contact .

8. Graduation

Candidates preparing for graduation should submit a completed application for degree to the Registrar's Office and submit a track graduation form to CS Student Services.


Last updated: 6/18/2014