Computer Science M.S. Degree Requirements
Students can complete the MS degree requirements through one of two pathways:
Thesis
In the Thesis pathway, students complete MS-level graduate coursework and engage in academic research that leads to a master’s thesis.
Non-thesis
In the Non-thesis pathway, students fulfill all degree requirements solely through graduate coursework. All courses that are taken by a student must be offered in-person at IU Indianapolis campus.
The coursework is organized into three categories:
- Foundations
- Systems
- Computer Science Core
Foundations (3 cr.)
Choose one:
- CSCI-B 501 Theory of Computing
- CSCI-B 503 Algorithms Design and Analysis (Fall and Spring)
- CSCI-B 504 Introduction to Cryptography (Fall)
Systems (3 cr.)
Choose one:
- CSCI-P 536 Advanced Operating Systems (Spring)
- CSCI-P 538 Computer Networks (Fall)
- CSCI-B 543 Computer Architecture (Fall)
Computer Science courses (18 cr.)
Select six 500 level or higher CSCI-B or CSCI-P courses offered as in-person at IU Indianapolis campus.
Pathway-related courses
Thesis
The Thesis pathway is suitable for highly motivated students ready to engage in
research that may lead to publishable results. Students must secure a commitment from a primary faculty advisor within the Computer Science department by the end of their second semester. The thesis or project must be completed over two consecutive semesters—either two semesters or one semester and the summer session—with students registering for 3 credits in each semester (totaling 6 credits).
Students must form a three-member thesis committee at the beginning of the second semester of thesis credit enrollment. The primary faculty advisor serves as the committee chair, and two additional CS faculty members serve as committee members. Students enrolled in CSCI-Y 792 must produce an MS thesis approved by the committee. Students enrolled in CSCI-Y 793 must develop a professional-quality open-source software package (with accompanying user manual) and release it on GitHub or another
public software repository. Students in both CSCI-Y 792 and CSCI-Y 793 must pass an oral examination (thesis defense) conducted by their committee.
Non-thesis
Students must complete two additional 500-level or higher courses (6 credit
hours). These may be:
- Two courses from the Computer Science department, or
- One course from Computer Science and one course from another department in Luddy Indianapolis (from the approved list below).
CS courses must be CSCI-B or CSCI-P courses offered in person at the IU Indianapolis campus. Among these 6 credits, no more than 3 credits may be earned through Graduate Independent Study (CSCI-Y 790).
The course selected from another department must come from the approved list below. (Note: The list below can change over the time)
- INFO-H 541 Interaction Design Practice
- INFO-H 543 Interaction Design Methods
- INFO-H 561 Meaning and Form in HCI
- INFO-H 563 Psychology of HCI
- INFO-H 564 Prototyping for Interactive Systems
- INFO-H 565 Collaborative and Social Computing
- INFO-H 566 Experience Design for Ubiquitous Computing
- INFO-H 570 Tangible and Embodied Interaction
- INFO-H 581 Experience Design and Evaluation of Access Technologies
- INFO-H 583 Conversational User Interfaces
Students complete 30 credit hours of study in CSCI courses at the 500 level or above.
Of the 30 required hours, students must select one course each from 4 different "foundational" categories for 12 credit hours. There are 6 categories from which to select the 4, as listed below:
Networking and Security
- CSCI 53300 Wireless Sensor Networks (CSCI-B Sensor Networks and IoT)
- CSCI 53600 Data Communication & Computer Networks (CSCI-P 538 Computer Networks)
- CSCI 55500 Cryptography (CSCI-B 504 Introduction to Cryptography)
Databases and Intelligent Systems
- CSCI 54100 Database Systems (CSCI-B 561 Advanced Database Concepts)
- CSCI 54900 Intelligent Systems (CSCI-B 551 Elements of Artificial Intelligence)
- CSCI 57300 Data Mining (CSCI-B 565 Data Mining)
- CSCI 57800 Machine Learning (CSCI-B 555 Machine Learning)
Visualization and Graphics
- CSCI 55000 Computer Graphics (CSCI-B 581 Computer Graphics)
- CSCI 55200 Data Visualization (CSCI-P 583 Data Visualization)
- CSCI 55700 Image Processing/Computer Vision (CSCI-B 657 Computer Vision)
Software Engineering
- CSCI 50600 Management of the Software Development Process (CSCI-P 632 Object-Oriented Software Management)
- CSCI 50700 Object-Oriented Design & Programming (CSCI-P 532 Object-Oriented Software Development)
- CSCI 50900 Software Quality Assurance (CSCI-P 567 Software Quality Assurance)
Theory
- CSCI 52000 Computational Methods in Analysis (CSCI-P 573 Introduction to Scientific Computing)
- CSCI 56500 Programming Languages (CSCI-B 522 Programming Language Foundations)
- CSCI 58000 Algorithm Design Analysis & Implementation (CSCI-B 503 Algorithms Design and Analysis)
Systems
- CSCI 50200 Compiling and Programming Systems (CSCI-P 523/ENGR-E 513 Compilers)
- CSCI 50300 Operating Systems (CSCI-P 536 Advanced Operating Systems)
- CSCI 50400 Concepts of Computer Organization (CSCI-B 543 Computer Architecture)
- CSCI 53200 Cloud Computing Systems (CSCI-B 516 Engineering Cloud Computing)
- CSCI 53700 Introduction to Distributed Systems (CSCI-B 534/ENGR-E 510 Distributed Systems)
