Foundations of Computer Science
The Foundations of Computer Science track is intended for students who wish to develop state-of-the-art knowledge of the theoretical foundations of Computer Science. The theory of computation plays a crucial role in providing solid foundations for all areas of Computer Science, including systems, artificial intelligence, security, and circuit design. This track will help you develop leading-edge knowledge of theoretical Computer Science and its applications.
SUMMARY OF REQUIREMENTS
- Complete a total of 30 points (Courses must be at the 4000 level or above)
- Maintain at least a 2.7 overall GPA. (No more than 1 D is permitted).
- Complete the Columbia Engineering Professional Development & Leadership (PDL) requirement
- Satisfy breadth requirements
- Take at least 6 points of technical courses at the 6000 level
- At most, up to 3 points of your degree can be Non-CS/Non-track If they are deemed relevant to your track and sufficiently technical in nature. Please submit the course syllabus to your CS Faculty Advisor for review, and then forward the approval confirmation email to ms-advising@cs.columbia.edu
1. Breadth Courses
Visit the breadth requirement page for more information.
2. Required Track Courses
Students are required to complete the two following courses: CSOR W4231 and COMS W4236. Students who have taken equivalent courses in the past and received grades of at least a B may apply for waivers and take other CS courses instead.
Course ID |
Title |
CSOR W4231 | Analysis of Algorithms I |
COMS W4236 | Intro. to Computational Complexity |
3. Track Electives Part I
Students are required to complete 1 of the following courses:
Course ID |
Title |
COMS W4203 | Graph Theory |
COMS W4205 | Combinatorial Theory |
COMS W4241 | Numerical Algorithms and Complexity |
COMS W4252 | Introduction to Computational Learning Theory |
COMS W4261 | Introduction to Cryptography |
COMS W4281 | Introduction to Quantum Computing |
4. Track Electives Part II
Students are required to complete 9 points out of the following Electives II list, excluding the course already taken; at least 6 points must be at the 6000-level:
Course ID |
Title |
COMS W4203 | Graph Theory |
COMS W4205 | Combinatorial Theory |
COMS W4241 | Numerical Algorithms and Complexity |
COMS W4252 | Introduction to Computational Learning Theory |
COMS W4261 | Introduction to Cryptography |
COMS W4281 | Introduction to Quantum Computing |
CSEE E6180 | Performance Analysis |
COMS W4995 | Visit the topics courses page to see which COMS 4995 courses apply to this track. |
COMS E6204 | Topics in Graph Theory |
COMS E6232 | Analysis of Algorithms II |
COMS E6253 | Computational Learning Theory II |
COMS E6261 | Advanced Cryptography |
COMS E6291 | Theoretical Topics in C.S. |
COMS E6901 | Projects in Computer Science (Advisor approval required) |
COMS E6998 | Visit the topics courses page to see which COMS 6998 courses apply to this track. |
CSPH G4802 | Incompleteness Results in Logic |
STAT 4001 (previously known as SIEO 4150) | Intro. to Probability and Statistics |
IEOR E4407 | Game Theoretic Models of Operation |
IEOR E6400 | Scheduling: Deterministic Models |
IEOR E6603 | Combinatorial Optimization |
IEOR E6606 | Advanced Topics in Network Flows |
IEOR E6608 | Integer Programming |
IEOR E6610 | Approximation Algorithms |
IEOR E6613 | Optimization I |
IEOR E6614 | Optimization II |
IEOR 6616 | Convex Optimization |
IEOR E6711 | Stochastic Models I |
IEOR E6712 | Stochastic motels II |
IEOR E8100 | Doctoral Seminar on Convex Optimization |
ELEN 6717 | Information Theory |
ELEN E6718 | Algebraic Coding Theory |
ELEN E6970 | Resource Allocation and Networking Games |
* STAT 4001 taken Spring 2018 or prior may count as a substitute for Probability and Statistics/Advanced Data Analysis
5. General Electives
Students must complete the remaining credits with General Elecevtives at the 4000 level or higher. These courses can be selected from the Track Electives listed above or from the CS department (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.
- At most, up to 3 points of your degree can be Non-CS/Non-track If they are deemed relevant to your track and sufficiently technical in nature. Please submit the course syllabus to your CS Faculty Advisor for review, and then forward the approval confirmation email to ms-advising@cs.columbia.edu
- IEOR E4550y: Entrepreneurial Business Creation for Engineers is a known non-track course
Please note:
-
Students who waive track requirements by using previous courses must still complete 30 graduate credits. This can be done by expanding their elective selection to include courses listed as required track courses and elective track courses; or by taking other graduate courses
-
Due to a significant overlap in course material, MS students not in the Machine Learning track can only take 1 of the following courses – COMS 4771, ELEN 4903, IEOR 4525, STAT 4240, STAT 4400/4241/5241 – as part of their degree requirements
-
The Degree Progress Checklist should be used to keep track of your requirements. If you have questions for your Track Advisor or CS Advising, you should have an updated Checklist prepared
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.
Please note that some Data Science Institute courses, such as COMS/CSEE W4121 (Computer Systems for Data Science), do not count towards the CS MS degree. If you have any questions, please contact your advisor or CS Advising.