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.

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 W4995 Engineering Software as a Service can be substituted for COMS W4156 Advanced Software Engineering.)
  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-track” graduate courses.  Waived courses cannot be used to fulfill the breadth requirement nor the track electives.

1. BREADTH REQUIREMENT

Visit the breadth requirement page for more information.

2. REQUIRED TRACK COURSES

Course ID

Title

COMS W4115 Programming Languages and Translators
COMS W4118 Operating Systems I
COMS W4152* OR COMS W4156* Engineering Software as a Service OR Advanced Software Engineering

*Both COMS W4152 and W4156 offered only in the fall 

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

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.  Note some of the 4000-level electives are offered every semester and some are offered only one semester per year, while others are not offered regularly.  Check with your track advisor for planning.

Course ID

Title

COMS W4111 Introduction to Databases
COMS W4112 Database System Implementation
COMS W4113 Fundamentals of Large-Scale Distributed Systems
COMS W4117 Compilers and Interpreters
CSEE W4119 Computer Networks
COMS W4130 Principles and Practice of Parallel Programming
COMS W4170 User Interface Design
COMS W4181 Computer Security I
COMS W4444 Programming and Problem Solving
CSEE W4840 Embedded Systems
COMS W4995* Topics in Computer Science (Visit the topics courses page to see which COMS 4995 courses apply to this track.)

*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.

COMS W4187 Security Architecture and Engineering is no longer offered; students who took 4187 when it was offered in the past may include it as a 4000-level track course.   It has been replaced in the track by COMS W4181 Computer Security I.  Students who completed COMS W4186 Malware Analysis and Reverse Engineering prior to Fall 2020 may include it as a 4000-level track course.  It has been replaced in the track by CSEE W4840 Embedded Systems.  

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.  Note some of the 6000-level electives are offered only one semester per year, while others are not offered regularly.  Check with your track advisor for planning.

Course ID

Title

COMS E6111 Advanced Database Systems
COMS E6113 Topics in Database Systems
COMS E6114 Advanced Distributed Systems
COMS E6117 Topics in Programming Languages and Translators
COMS E6118 Operating Systems II
COMS E6121 Reliable Software
COMS E6156 Topics in Software Engineering
COMS E6156 Cloud Computing
COMS E6178 Human-Computer Interaction
COMS E6184 Anonymity & Privacy
COMS E6424 Hardware Security
COMS E6901* Projects in Computer Science (Advisor approval required)
COMS E6998* Topics in Computer Science (Visit the topics courses page to see which COMS 6998 courses apply to this track.)
CSEE 6863 Formal Verification of Hardware and Software Systems
EECS E6897 Distributed Storage Systems Big Data
ELEN E6883 An Introduction to Blockchain Technology

*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.  COMS E6900 Tutorial in Computer Science (with an appropriate faculty member) can be substituted for E6901 with the advisor’s approval.

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

5. GENERAL ELECTIVES

Students are required to complete at least 3 additional graduate points at or above the 4000-level approved by the track advisor.

Due to a significant overlap in course material, MS students not in the Machine Learning track can only take one of the following courses – COMS 4771, COMS 4721, ELEN 4903, IEOR 4525, STAT 4240, STAT 4400/4241/5241 – as part of their degree requirements.

Important note:

Remaining points toward the MS program must be chosen from either the Track Electives listed above or from the CS department at the 4000-level or higher. Students may also request to use at most 3 points of Non-CS/Non-Track coursework if approved by the process listed below.

  • Non-CS/Non-Track: CS MS students may request up to 3 points of Non-CS/Non-Track points to count toward their 30 point MS program. CS Track advisor may review and approve if the course is determined to be relevant to the CS MS track and sufficiently technical in nature. Students should send the Non-CS/Non-Track Form and the course syllabus to your Track Advisor for review.

** Known non-technical CS courses **

COMS W4995 The Business of Software Delivery
CSOR E4995 Financial Software Systems
COMS 4995 or 6998 Int Agile Project Management
COMS 4995 or 6998 Intro to DevOps

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 few years.

7. TRACK ADVISORS

Please direct all questions concerning the Software Systems Track to your designated advisor, which should be Prof. Junfeng Yang and Prof. Henning Schulzrinne.

8. GRADUATION

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


Last updated November 17, 2021