Computer Science M.S. Degree Requirements
The coursework is divided into four categories: foundations, systems, computer science core, and the creativity requirement. For the creativity requirement, students can choose from several options, including courses in computer science, data science, human–computer interaction (HCI), an internship, and thesis or project.
Foundations (3 cr.)
Choose one:
- CSCI-B 501 Theory of Computing
- CSCI-B 503 Algorithms Design and Analysis (Fall and Spring)
- CSCI-B 505 Applied Algorithms
Systems (3 cr.)
Choose one:
Computer Science Courses (15 cr.)
Select five CSCI-B or CSCI-P courses at the 500 level or higher:
Data Science and AI
- CSCI-B 551 Elements of Artificial Intelligence
- CSCI-B 555 Machine Learning (INFO-H 515) (Fall)
- CSCI-P 558 Deep Learning (Fall and Spring)
- CSCI-B 561 Advanced Database Concepts (Fall)
- CSCI-B 565 Data Mining (Fall)
- CSCI-B 651 Natural Language Processing (Spring) P: CSCI-B 551 or CSCI-B 555 or INFO-H 515
Visual Computing
- CSCI-B 581 Advanced Computer Graphics
- CSCI-B 657 Computer Vision
- CSCI-P 583 Data Visualization (Spring)
Networks and Security
- CSCI-B 504 Introduction to Cryptography (Spring)
- CSCI-B 516 Engineering Cloud Computing (Fall and Spring)
- CSCI-P 538 Computer Networks (Fall)
- CSCI-P 539 Sensor Networks and the Internet of Things (Spring)
- CSCI-B 544 Security for Networked Systems
- CSCI-B 547 Systems and Protocol Security and Information Assurance
- CSCI-B 570 Wireless and Mobile Security (Spring)
- CSCI-B 577 Security Engineering (Fall)
Software Engineering
- CSCI-P 532 Object-Oriented Software Development (Spring)
- CSCI-P 565 Software Engineering I
- CSCI-P 566 Software Engineering II (P: CSCI-P 565) (Fall)
- CSCI-P 567 Software Quality Assurance (Fall)
- CSCI-P 632 Object-Oriented Software Management
Systems
- CSCI-B 534 Distributed Systems
- CSCI-B 543 Computer Architecture (Spring)
- CSCI-P 523 Programming Language Implementation P: CSCI-B 521
- CSCI-P 536 Advanced Operating Systems (Spring)
- CSCI-B 575 Quantum Computing and Applications (Fall)
Additional Computer Science Courses
- CSCI-B 501 Theory of Computing
- CSCI-B 505 Applied Algorithms
- CSCI-B 521 Programming Language Principles
- CSCI-B 522 Programming Language Foundations
- CSCI-B 541 Hardware System Design I
- CSCI-B 546 Malware Epidemic: Threat and Defense
- CSCI-B 555 Machine Learning
- CSCI-B 557 Music Information Processing: Audio
- CSCI-B 590 Topics in Computer Science
- CSCI-C 591 Research Seminar
- CSCI-B 599 Teaching in Computer Science
- CSCI-B 609 Topics in Algorithms and Computing Theory
- CSCI-B 649 Topics in Systems
- CSCI-B 659 Topics in Artificial Intelligence
- CSCI-G 901 Advanced Research
- CSCI-P 515 Specification and Verification
- CSCI-P 523 Programming Language Implementation
- CSCI-P 542 Hardware System Design II
- CSCI-P 556 Applied Machine Learning
May include an independent study:
Creativity Requirement (9 cr.)
Choose from:
- Computer Science (CSCI-B, CSCI-P)
- Data Science (see list below)
- Human–Computer Interaction (see list below)
- INFO-I 595 Professional Internship
Up to 6 credit hours of:
- CSCI-Y 790 Graduate Independent Study
- CSCI-Y 791 Graduate Independent System Development
- CSCI-Y 792 Master’s Thesis
- CSCI-Y 793 Master’s Software Thesis
- INFO-H 695 Thesis/Project in Applied Data Science
- INFO-H 694 Thesis/Project in Human Computer Interaction
Data Science
- INFO-H 501 Introduction to Data Science
- INFO-H 611 Mathematical and Logical Foundations of Informatics (test-out available)
- LIS-S 511 Database Design (test-out available)
- PBHL-B 670 Introduction to Biostatistics in R (or PSY 60000 Statistical Inference or INFO-B 518 Applied Statistical Methods for Biomedical Informatics
- INFO-H 515 Statistical Learning (prerequisite: PBHL-B 670 or PSY 60000)
- INFO-H 516 Cloud Computing for Data Science (prerequisites: graduate database course and programming experience)
- INFO-H 517 Visualization Design, Analysis, and Evaluation (prerequisite: programming experience)
- INFO-H 518 Deep Learning Neural Networks
- INFO-P 502 Modeling Crisis
- LIS-S 506 Introduction to Research or INFO-I 575 Informatics Research Design
- NEWM-N 510 Web Database Development
Human-Computer Interaction
- 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-I 575 Informatics Research Design
- INFO-H 581 Experience Design and Evaluation of Access Technologies
- INFO-H 582 UX Design Ethics
- INFO-H 583 Conversational User Interfaces
Thesis or Project
The Thesis/Project is available to highly motivated students ready to carry out publishable research. Students must prepare a prospectus and gain a commitment from a primary faculty advisor with research interests in computer science by the end of the first semester. By the end of the second semester, students must complete a course on research design and methods (e.g. LIS-S 506, or INFO-I 575), if indicated by the advisor. The thesis or project must be completed in two semesters or in a semester and summer. Thesis students register for a total of 6 credits, and project students register for a total of 3–6 credits. Students must prepare and defend a research proposal with a timeline of deliverables in addition to the thesis or project.
Nonmajor Courses (not for credit)
- CSCI-A 521 Computing Tools for Scientific Research
- CSCI-A 538 Network Technologies and Systems Administration
- CSCI-A 548 Mastering the World-Wide Web
- CSCI-A 590 Topics in Programming
- CSCI-A 591 Introduction to Computer Science
- CSCI-A 592 Introduction to Software Systems
- CSCI-A 593 Computer Structures
- CSCI-A 594 Data Structures
- CSCI-A 595 Fundamentals of Computing Theory
- CSCI-A 596 Programming Languages
- CSCI-A 597 Introduction to Programming I
Other Computer Science Courses
- CSCI-T 599 Topics in Computer Science Education
- CSCI-Y 799 Computer Science Colloquium
- CSCI-Y 890 Thesis Readings and Research
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)