The master’s program in computer science is designed to prepare students for advanced careers in the computer industry, to create a research environment in computer science, and to prepare students for graduate work at the Ph.D. level.
Theory Requirement
One theory course from:
CS 581 | Theory of Computation | 3 |
CS 584 | Algorithm Design and Analysis | 3 |
CS 578 | Programming Language Semantics | 3 |
Total Credit Hours: 3
Practice Requirement
One programming practice course from:
Or any 500-level course designated by the department as a programming-intensive course.
Total Credit Hours: 3
Electives
You must take enough electives to have at least 45 total credits for the degree. Electives can be any 500 level CS course. 15 elective credits can be from outside of Computer Science, such as ECE or Math. These non-CS courses must be graduate level and either belong to a list of pre-approved courses or have advisor approval. Students should obtain advisor approval in advance to avoid the risk of taking a course that will not be approved. To request approval, submit a plan of study with the courses listed to the Graduate Advisor. Please note that non-PSU pre-admission credits are considered credits from outside our department.
Total Credit Hours: 30
Track Requirement
Take three courses from one of the following tracks:
Databases
Covers concepts, languages, implementation and application of database management systems. Other topics that have been offered in the track include formal foundations of databases, databases for cloud and cluster environments, and data stream systems.
CS 586 | Introduction to Database Management Systems | 3 |
And two courses from the following*:
CS 587 | Database Management Systems Implementation | 3 |
CS 588 | Cloud and Cluster Data Management | 3 |
CS 589 | Principles of Database Systems | 3 |
*Or any approved
CS 510 course in Databases.
Artificial Intelligence and Machine Learning
Covers modern algorithms underlying intelligent and learning systems. Examples of topics covered in courses on this track include knowledge representation, planning, reasoning, combinatorial and adversarial search methods, natural language processing, computer vision, statistical machine learning, and evolutionary and reinforcement learning.
One course from the following*:
CS 542 | Advanced Artificial Intelligence: Combinatorial Games | 3 |
CS 543 | Advanced Artificial Intelligence: Combinatorial Search | 3 |
CS 546 | Advanced Topics in Machine Learning | 3 |
CS 570 | Machine Learning Seminar | 1 |
Stat 671 | Statistical Learning I | 3 |
Stat 672 | Statistical Learning II | 3 |
Stat 673 | Statistical Learning III | 3 |
*Or any approved
CS 510 course in Artificial Intelligence or Machine Learning.
Languages and Programming
Focuses on the design, implementation, and use of programming languages. It includes exposure to a variety of programming paradigms, experience using programming languages to express the essential abstractions of a problem domain, courses on programming language implementation, and the study of formal methods for specifying and reasoning about programs and programming languages.
Two courses from the following*:
CS 515 | Parallel Programming | 3 |
CS 520 | Object-Oriented Programming & Design | 3 |
CS 553 | Design Patterns | 3 |
CS 557 | Functional Programming | 3 |
CS 578 | Programming Language Semantics | 3 |
*Or any approved
CS 510 course in Languages and Programming.
Security
Focuses on protecting computing systems and user data from unauthorized access and use. Topics include cryptography, network and host-based access control, vulnerability analysis, penetration testing, and reverse engineering.
CS 591 | Introduction to Computer Security | 3 |
Two courses from the following*:
*Or any approved
CS 510 course in Security.
Software Engineering
Studies the principles, processes, techniques, and tools for building software systems. Topics include software requirement, design, development, validation, and maintenance.
Two courses from the following*:
CS 552 | Building Software Systems with Components | 3 |
CS 553 | Design Patterns | 3 |
CS 555 | Software Specification and Verification | 3 |
CS 556 | Software Implementation and Testing | 3 |
CS 561 | Open Source Software Development Laboratory | 3 |
*Or any approved
CS 510 course in Software Engineering.
Systems and Networking
Studies the design and implementation of operating systems, wired and wireless computer networks including high performance computer systems, data centers, cloud computing architectures, distributed systems, fault tolerance, concurrency, systems programming, and theoretical topics related to these areas.
CS 533 | Concepts of Operating Systems | 3 |
CS 594 | Internetworking Protocols | 3 |
One course from the following*:
CS 515 | Parallel Programming | 3 |
CS 538 | Computer Architecture | 3 |
CS 572 | Operating System Internals | 3 |
CS 598 | Introduction to Wireless Network Protocols | 3 |
*Or any approved
CS 510 course in Systems and Networking.
Total Credit Hours: 9
You must apply for graduation no later than the first Friday of the term you wish to graduate.
The application for graduation can be found at: http://www.pdx.edu/ogs/forms
You must have a graduate GPA of 3.0 or above in all graduate level coursework taken at PSU to graduate from a master's degree, doctoral degree, or graduate certificate program at PSU.
You must have a GPA of 3.0 or above in all courses being used to meet your degree requirements. The number of credits being used to meet your degree requirements appears below along with the GPA for those courses. You must have the minimum number of credits needed for your degree before you can graduate.