Portland State University Department of Computer Science

Master’s Degree (M.S.)

Introduction

The Master of Science (M.S.) in Computer Science is the initial graduate degree in the field. The master's program is designed to prepare students for advanced careers in the computing industry and/or for graduate work at the Ph.D. level. Students entering the program must have a bachelor's degree, typically in Computer Science. Students with a degree in another discipline may be admitted if they have adequate background in Computer Science; the Grad Prep program can be a useful bridge into the field.

The master's program requires the completion of an approved program of 45 credits, with a thesis option. Coursework includes core courses in theory and programming practice, plus a 9-credit concentration in one specialization area. The M.S. degree typically takes one and a half years of full-time study to complete. Students are also welcome to pursue the degree on a part-time basis.

Learning Outcomes


Upon completion of the M.S. program, students should be able to

  • analyze and prove the properties of algorithms, software, and computing systems using the theoretical underpinnings of Computer Science;
  • analyze, implement, extend, and modify a computing system;
  • absorb and communicate technical concepts and results in written and oral form;
  • demonstrate and apply deep expertise in a specific area of Computer Science.


Degree requirements

The 45 credits required for the M.S. degree fall into three categories: Core Requirements, Track Requirements, and Electives.

Core Requirements (6)

Students are encouraged to take these courses as early as possible in their graduate program.

One Theory course from:

  • CS 581 Theory of Computation (3)
  • CS 584 Algorithm Design & Analysis (3)
  • CS 578 Programming Language Semantics (3)

One Programming Practice course from:

Track Requirements (9)

All students in the CS Master's program must take three courses from one of the following tracks:

  • Artificial Intelligence & Machine Learning
  • Databases
  • Languages & Programming
  • Security
  • Software Engineering
  • Systems & Networking
  • Theory
  • Visual Computing

This track requirement is intended to ensure that each student obtains deep exposure to some specialized area of Computer Science. Note that the track selection appears on the student’s Plan of Study and DARS audit, but does not appear on the transcript or the diploma.

The list of required courses and approved electives for each track are listed below. The list of approved electives for a track may change over time; a course counts as approved if it is on the current list at the time it is taken. In addition to regularly numbered courses (CS511 and above), most tracks allow certain CS510 courses to be counted as electives. Occasionally, courses not listed can be allowed towards a track; enquiries about this should be directed to the CS Graduate Advisor.

Note: Courses marked ** are not regularly offered.

Artificial Intelligence & Machine Learning

The Artificial Intelligence & Machine Learning track 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 541 Artificial Intelligence (3)
  • CS 545 Machine Learning (3)
  • One course from the following:
  • CS 527 Introduction to Visual Computing (3)
  • CS 540 Deep Learning: Computational Structures and Programming (3)
  • CS 542 Advanced Artificial Intelligence: Combinatorial Games (3)**
  • CS 543 Advanced Artificial Intelligence: Combinatorial Search (3)**
  • CS 544 Natural Language Processing (3)
  • CS 546 Reinforcement Learning (3)
  • CS 549 Data Clustering (3)
  • CS 570 Machine Learning Seminar (3)**
  • STAT 671 Statistical Learning I (3)
  • STAT 672 Statistical Learning II (3)
  • STAT 673 Statistical Learning III (3)
  • SYSC 557 Artificial Life (4)
  • Any approved CS 510 Course in AI or Machine Learning


Databases

The Databases track 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 Intro to Database Management Systems (3)
  • Two courses from the following:
  • CS 530 Internet, Web, & Cloud Systems (3)
  • CS 536 Fundamentals of Data Engineering (3)
  • CS 537 Introduction to Data Mining (3)
  • CS 587 Database Management System Implementation (3)
  • CS 588 Cloud & Cluster Data Management (3)
  • Any approved CS 510 course in Databases

Languages & Programming

The Languages & Programming track 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 558 Programming Languages (3)
  • Two courses from the following:
  • CS 515 Parallel Programming (3)
  • CS 520 Object Oriented Programming (3)**
  • CS 523 Rust Programming (3)
  • CS 553 Design Patterns (3)
  • CS 557 Functional Programming (3)
  • CS 568 Functional Logic Programming (3)**
  • CS 577 Modern Language Processors (3)**
  • CS 578 Program Language Semantics (3)
  • Any approved CS 510 course in Languages & Programming

Security

The Security track 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:
  • CS 530 Internet, Web, & Cloud Systems (3)
  • CS 575 Generative Security Application Engineering (3)
  • CS 576 Computer Security Seminar (3)**
  • CS 585 Cryptography (3)
  • CS 589 Introduction to Privacy-aware Computing (3)
  • CS 592 Malware Reverse Engineering (3)
  • CS 593 Digital Forensics (3)**
  • CS 595 Web and Cloud Security (3)
  • CS 596 Network Security (3)
  • Any approved CS 510 course in Security

Software Engineering

The Software Engineering track studies the principles, processes, techniques, and tools for building software systems. Topics include software requirements, design, development, validation, and maintenance.

  • CS 554 Software Engineering (3)
  • Two courses from the following:
  • CS 530 Internet, Web, & Cloud Systems (3)
  • CS 552 Building Software Systems w/ Components (3)**
  • CS 553 Design Patterns (3)
  • CS 555 Software Specification & Verification (3)**
  • CS 556 Software Implementation and Testing (3)**
  • CS 561 Open-source Software Development (3)
  • CS 563 Intro to Web Development (3)
  • CS 564 Front End Web Development (3)
  • CS 565 Full Stack Web Development (3)
  • Any approved CS 510 course in Software Engineering

Systems & Networking

The Systems & Networking track 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 516 Computers, Sound and Music (3)
  • CS 530 Internet, Web, & Cloud Systems (3)
  • CS 531 Introduction to Performance Measurement, Modeling and Analysis (3)
  • CS 535 Accelerated Computing (3)
  • CS 538 Computer Architecture (3)
  • CS 572 Operating Systems Internals (3)**
  • CS 590 Introduction to Multimedia Computing and Networking (3)
  • CS 598 Introduction to Wireless Network Protocols (3)
  • ECE 586 Computer Architecture (4)
  • Any approved CS 510 course in Systems & Networking

*CS 532 does not count towards the track

Theory

The Theory track 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 581 Theory of Computation (3)
  • CS 584 Algorithm Design and Analysis (3)
  • One course from the following:
  • CS 549 Data Clustering (3)
  • CS 550 Parallel Algorithms (3)**
  • CS 578 Programming Language Semantics (3)
  • CS 580 Randomized Algorithms and Probabilistic Analysis (3)**
  • CS 582 Theory of Computation: Advanced Topics (3)**
  • CS 583 Introduction to Quantum Computer Science (3)
  • CS 585 Cryptography (3)
  • Any approved CS 510 course in Theory

Visual Computing

The Visual Computing track covers foundational tools and techniques, and cutting-edge algorithms that enable computers to see, reason and interact with the world around us. Topics include computer vision, computational photography, image and video processing, 3D imaging, computer graphics and rendering, and virtual and augmented reality.

  • CS 527 Introduction to Visual Computing (3)
  • Two courses from the following:
  • CS 539 Introduction to Computational Imaging (3)
  • CS 540 Deep Learning: Computational Structures and Programming (3)
  • CS 547 Computer Graphics (3)
  • CS 548 Virtual Reality (3)
  • CS 590 Multimedia Computing and Networking (3)
  • Any approved CS 510 course in Visual Computing

Elective Requirements (30)

In addition to Core and Track courses, students must take enough electives to complete 45 total credits for the M.S. degree. Electives can be any 500-level CS course, with some exceptions as described below. Students may use electives to deepen their study within their chosen track or to gain broader exposure to a wider variety of CS topics.

The following restrictions apply to elective courses:

  • Coursework may include no more than 6 credits of CS 505 (Reading and Conference) and CS 506 (Special Projects).
  • Coursework may include no more than 3 credits of CS 504 (Internship). Review the rules regarding CS 504 (Internship).
  • CS 501 (Research), CS 502 (Independent Study), and CS 509 (Graduate Assistant Practicum) credits cannot be applied to the M.S.

A limited number of credits taken outside Computer Science can count towards the elective requirements, with advisor approval. Read more about Non-CS credits below.

If the student chooses to pursue the Thesis Option, 6-9 elective credits will be CS 503 Thesis.

Minimum Grade Requirements


In addition to noting these requirements, students should review the more complete and detailed list of university master's degree requirements .

  • Students must maintain good academic standing with a cumulative graduate GPA of 3.00 or higher in all graduate credits earned at PSU and in all courses counted toward the M.S. program of study. Any student who has a cumulative GPA below 3.00 at the end of a term (based on at least 9 credits) will be placed on academic probation. A student on probation who is subsequently unable to reach a 3.00 GPA or higher in their next 9 graduate credit hours, or a student whose GPA falls below 3.00 for a second time, will be academically disqualified from the University.
  • All graded courses counted towards the M.S. must be passed with a grade of B- or better.
  • M.S. core requirements must be passed with a grade of B or better.
  • CS503/504/505/506 courses can be graded Pass/No-Pass, and if so, must be passed. These are the only Pass/NoPass credits that can be counted towards the M.S. degree. Classes taken Pass/No-Pass at PSU (prior to admission) or other institutions may not be transferred for credit.

M.S. Advising

The CS Graduate Advisor (gccs@pdx.edu) is the primary advisor for all M.S. students. Every M.S. student is required to maintain a Plan of Study form, which outlines both courses taken so far towards the degree and courses planned for the remainder of the program. The Plan of Study will also note any transfer and pre-admission courses, non-CS courses, and the student’s intended track. Full-time students should submit an initial Plan of Study to the CS Graduate Advisor by the end of the second term after the student’s formal admission to the program. Part-time students should submit their initial plan after completing 9 credits in the program. Approval from the CS Graduate Advisor will indicate an acceptable outline of the student’s coursework. However, the plan can be revised at any time by mutual agreement of the student and the CS Graduate Advisor. A final version of a student’s Plan of Study should be submitted by the student’s last term of the program. Students completing an M.S. thesis are required to have a faculty adviser who supervises their research on the thesis topic and chairs their thesis committee. The CS Graduate Advisor remains responsible for monitoring the student’s overall progress towards the degree.

Thesis Option

The thesis option gives M.S. students the opportunity to obtain training and experience in doing research about a specialized topic in Computer Science. It involves doing independent work to define, investigate, and report on a research topic, under supervision of a faculty advisor. Research work typically extends over several terms, and culminates in writing a thesis and giving an oral presentation about it (the “defense”).

Doing a thesis is an excellent way to explore a particular topic in depth, and to learn what the research process is like. Students interested in continuing on to obtain a Ph.D. are particularly encouraged to consider doing a thesis, since many Ph.D. programs look for research experience when making admissions decisions.

Students considering the thesis option should start looking for a suitable research topic and advisor no later than their third full-time term (after 18 credits). It is the student’s responsibility to identify a faculty member who is willing to advise them. Faculty are typically most willing to advise a student who has taken a class with them or whose interests overlap their research expertise.

The thesis option requires enrolling for 6-9 credits of CS 503 (Thesis), which count towards the required 45 credits for the M.S. Realistically, the amount of time and work required to complete the thesis may be greater than required for 6-9 ordinary course credits. The By Arrangement Approval Dashboard can be used to register for CS 503 credits (see here for more details). CS 503 is normally graded Pass/No Pass, but the grade is assigned only when the thesis defense is completed; until then the grade will show as In Progress (IP).

Students must follow PSU policies regarding thesis committee appointments, defense procedures, formatting requirements, and submission procedures. University requirements and additional information for a master’s thesis are outlined by the PSU Graduate School.

A thesis defense must take place in a meeting with the student and the appointed committee. It should be scheduled on a date that meets the GS deadline for the desired graduation term. A room for the thesis defense may be scheduled through the CS department (csoffice@pdx.edu). Thesis students will need to send their abstract and other required information and any requested equipment (e.g., video conferencing camera) at least two weeks in advance of the defense to the CS Graduate Advisor (gccs@pdx.edu).

Course Load

  • Full-time enrollment is 3 courses (at least 9 credits) per term.
  • Students taking fewer than 9 credits are considered part-time.
  • International students must normally take a minimum of at least 9 credits per term to maintain their status, but there are some exceptions. Information and help on this topic may be found here.
  • Teaching and research assistants are normally required to complete at least 9 graduate credits each quarter with a grade of B- or better, or a Pass; however, students completing the final two terms of their degree need only enroll for 5 graduate credits.
  • Approval is required to register in 11 credits or more during a given term. To request this, complete the Overload Approval form and submit it to the CS Graduate Advisor.
  • If a student is unable to register for any coursework during a given term, it is their responsibility to inform the CS Graduate Advisor and the Graduate School. For details, see the sections on Leave of Absence or Cancellation of Admission and Re-enrollment in the PSU Bulletin.
  • All coursework applied to the master’s program must be completed within the seven years prior to the awarding of the degree. For example, a course taken in Fall 2025 will be beyond the seven-year limit after Fall 2032. So, a student would need to graduate in Fall 2032 at the latest to include a Fall 2025 course.

CS 505 (Reading & Conference) and CS 506 (Special Project) Credits

Students who are interested in exploring a specific topic or conducting a special research or other project for credit have the option to register for CS 505 (Reading & Conference) and/or CS 506 (Special Project) credits. A maximum of 6 credits of CS 505 and CS 506 can be counted towards the CS Master’s degree elective requirements.

Examples:

  • CS 505 Reading & Conference: the student will study a textbook on a particular topic; complete the end of chapter problems; and discuss/present their chapter summaries, exercise solutions, and other content with the supervising faculty member.
  • CS 506 Special Project: the student will gather and analyze data or research an agreed topic and write up their results in a presentable format under the guidance of the supervising faculty member.

Students first need to find a faculty member to supervise these credits. The faculty member can help the student to develop their idea, to ensure that it is consistent with the academic goals of the program, and to determine the appropriate course number, credit number, and project scope. They will assign the final grade at the end of the term. CS505/506 credits are normally graded Pass/NoPass, but the student and faculty member may choose to use letter grading instead.

The By Arrangement Approval Dashboard can be used to register for CS 505/506 credits. A brief but meaningful description of the intended work is required. Either the student or the faculty member can initiate a request, and once both have approved it, the request is automatically forwarded to the Department for approval and then to the Registrar’s Office for processing.


Pre-admission, Transfer, and Non-CS Credits

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 CS Graduate Advisor approval (gccs@pdx.edu). 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 before the term of formal graduate admission at PSU) can include both transfer and PSU credits. Pre-admission credits taken at PSU are requested via a DARS exception submitted to the Graduate School by the CS Graduate Advisor. 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, the student should complete and submit the GO-21M form (Proposed Transfer Credit) and M.S. Plan of Study form, along with course syllabi for the proposed transfer credit to the CS Graduate Advisor. Students should submit the GO-21M 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 appear on the PSU transcript, but are considered transfer credits and must be listed on the GO-21M.
  • Non-CS credits taken outside of Computer Science can count towards elective requirements with approval of the CS Graduate Advisor. Non-CS courses must be graduate level. Courses from Math or ECE are routinely approved; courses from other departments must be relevant to the student’s M.S. program. All Engineering and Technology Management (ETM) courses are approved, but at most 4 ETM credits (normally one course) can be counted towards the CS M.S.

To determine whether a non-CS course can count, the student should first check with the Graduate Advisor to see if the course has been approved in the past. If the course has not already been approved, the student should submit the following information to the Graduate Advisor, who will pass it to the CS graduate committee for review:

  • Course information. Title, description, syllabus, and other materials that may help the evaluation.
  • A rationale that explains why this course is relevant to the CS degree.
  • An up to date M.S. Plan of Study that incorporates the non-CS course.

Teaching Assistantships

An M.S. student with appropriate background and interests may sometimes be supported as a Teaching Assistant, which carries a monthly stipend and a tuition and fee remission. See Graduate Assistantships for more information.

Graduation Procedure

Students are responsible for taking the following steps in order to graduate:

  • Follow the university’s outline for Master’s degrees.
  • Apply for graduation by the first Friday of the first week of the anticipated term of graduation. See the Graduate Candidate Deadlines for specific dates. This application will trigger a DARS audit of degree requirements, which will be reviewed and adjusted as necessary by the CS Graduate Advisor in Week 5 of the graduating term.
  • Submit a revised Plan of Study (if coursework has changed since the initial filing) to the CS Graduate Advisor.
  • For Thesis students, submit the GO-16 form to the Graduate School at least one term ahead of the intended See the Graduate Candidate Deadlines for specific dates.

Commonly Needed Forms and Links

M.S. Plan of Study

GO-21M Proposed Transfer Credit (Master’s Level)

GO-16 Appointment of Master's Thesis or Doctoral Dissertation Committee (for thesis option)

By Arrangement Dashboard

PSU Academic Calendar