Graduate Programs

Computer Science M.S.

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.

See University Master’s degree requirements. The Master’s program in computer science consists of two options. The first option involves the completion of an approved program of 45 credits. The second option requires the completion of an approved program of 45 credits, which includes 6 to 9 credits of thesis. In both options, the coursework includes core courses in theory and programming practice, plus a 9-credit concentration in one of the tracks described below. For the thesis option, successful completion of a final oral examination covering the thesis is required. For more information, visit: https://www.pdx.edu/computer-science/master.

Core Course Requirement

One theory course from:

CS 581Theory of Computation

3

CS 584Algorithm Design and Analysis

3

CS 578Programming Language Semantics

3

Total Credit Hours: 3

One programming practice course from:

CS 558Programming Languages

3

Or any 500-level course designated by the department as a "Programming Intensive" course, as indicated by the "P" suffix in the corresponding 400-level course number.

Total Credit Hours: 3

Electives

Students must take enough electives to complete 45 total credits for the Master's degree. Electives can be any 500-level CS course and may include up to 6 credits of CS 505 (Reading and Conference) and CS 506 (Special Projects). CS 501 Research, CS 502 Independent Study, CS 504 Internship, and CS 509 Practicum credits cannot be applied. A limited number of credits taken outside Computer Science can count towards the elective requirements, with advisor approval. A minimum of 30 credits must be taken in Computer Science at Portland State University. Given this, students may use a combined total of 15 pre-admission, transfer, and non-CS credits toward their Master’s degree with advisor approval. One additional credit beyond the 15 credit limit can be used provided none of the courses is a 1-credit course.
  • Pre-admission credits (taken while not formally admitted to a PSU graduate program) can include both transfer and PSU credits. Pre-admission credits taken at PSU are requested via a DARS exception submitted to the Graduate School. This request should be made soon after admission to the graduate program.
  • Transfer credits refer to credits taken from another institution other than PSU. To request approval of transfer credits, complete and submit the GO-21M form (Proposed Transfer Credit) to the CS Graduate Advisor. Students should submit the GO-21 form during the first term of enrollment in the program, so there is sufficient time to complete any additional coursework that may be necessary. Any transfer credits must be approved before graduation paperwork can be processed. OHSU joint campus credits are considered transfer credits and are transferred via a different process. For more information, visit: www.pdx.edu/gradschool/joint-campus-registration.
  • Non-CS credits taken outside of Computer Science, such as ECE or Math, can count towards elective requirements once approved. 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.  Non-CS courses must be graduate level. All ETM courses are eligible to transfer but students are limited to using only one for the CS degree requirements.

Total Credit Hours: 30

Track Requirement

Take three courses from one of the following tracks:

Artificial Intelligence and Machine Learning

Covers modern algorithms underlying intelligent and learning systems. Examples of topics covered in 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.
CS 541Artificial Intelligence

3

CS 545Machine Learning

3

One course from the following*:
CS 542Advanced Artificial Intelligence: Combinatorial Games

3

CS 543Advanced Artificial Intelligence: Combinatorial Search

3

CS 546Advanced Topics in Machine Learning

3

CS 570Machine Learning Seminar

1

Stat 671Statistical Learning I

3

Stat 672Statistical Learning II

3

Stat 673Statistical Learning III

3

*Or any approved CS 510 course in Artificial Intelligence or Machine Learning.

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 586Introduction to Database Management Systems

3

And two courses from the following*:
CS 530Internet, Web, & Cloud Systems

3

CS 587Database Management Systems Implementation

3

CS 588Cloud and Cluster Data Management

3

CS 589Blockchain Development & Security

3

*Or any approved CS 510 course in Databases.

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.
CS 558Programming Languages

3

Two courses from the following*:
CS 515Parallel Programming

3

CS 520Object-Oriented Programming & Design

3

CS 553Design Patterns

3

CS 557Functional Programming

3

CS 578Programming 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 591Introduction to Computer Security

3

Two courses from the following*:
CS 530Internet, Web, & Cloud Systems

3

CS 576Computer Security Research Seminar

3

CS 585Cryptography

3

CS 592Malware Reverse Engineering

3

CS 593Digital Forensics

3

CS 595Web and Cloud Security

3

CS 596Network Security

3

*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.
CS 554Software Engineering

3

Two courses from the following*:
CS 530Internet, Web, & Cloud Systems

3

CS 552Building Software Systems with Components

3

CS 553Design Patterns

3

CS 555Software Specification and Verification

3

CS 556Software Implementation and Testing

3

CS 561Open 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 533Concepts of Operating Systems

3

CS 594Internetworking Protocols

3

One course from the following*:
CS 515Parallel Programming

3

CS 530Internet, Web, & Cloud Systems

3

CS 531Introduction to Performance Measurement, Modeling and Analysis

3

CS 535Accelerated Computing

3

CS 538Computer Architecture

3

CS 572Operating System Internals

3

CS 590Introduction to Multimedia Computing and Networking

3

CS 598Introduction to Wireless Network Protocols

3

ECE 586Computer Architecture

4

*Or any approved CS 510 course in Systems and Networking.

Theory

Focuses on the theoretical foundations of computer science. Examples of topics include algorithmic design and analysis, computational complexity, learning theory, cryptography, and quantum computing.
CS 581Theory of Computation

3

CS 584Algorithm Design and Analysis

3

One course from the following*:
CS 549Computational Geometry

3

CS 550Parallel Algorithms

3

CS 578Programming Language Semantics

3

CS 580Randomized Algorithms and Probabilistic Analysis

3

CS 582Theory of Computation: Advanced Topics

3

CS 583Introduction to Quantum Computer Science

3

CS 585Cryptography

3

*Or any approved CS 510 course in Theory

Total Credit Hours: 9

Total Credit Hours: 45

Cumulative Graduate GPA

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

Degree Program GPA

Students must have a GPA of 3.0 or above in all courses being used to meet the degree requirements. All graded courses must be passed with a grade of B- or better. Core requirements must be passed with a grade of B or better. All courses taken Pass/No Pass must be passed. Students must have the minimum number of credits needed for their degree before they can graduate.

Application for Graduation

Students must apply for graduation no later than the first Friday of the term in which they wish to graduate. Information about applying for graduation can be found at: https://www.pdx.edu/gradschool/applying-for-graduation.