Computer Science MS & PHD | Program Details

Master of Science Program Requirements

The Master of Science (M.S.) in Computer Science is the first graduate degree in the field, and can take one and a half years of full-time study to complete. The master's program is designed to prepare students for advanced careers in the computing industry, to create a research environment in computer science, and to prepare students for graduate work at the Ph.D. level. Students entering the program must have a bachelor's degree and/or adequate background in computer science. 

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.

Core (6 Credits)Track (9 Credits)Electives (30 Credits)

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

One Theory course from:

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

One Programming Practice course from:

  • CS 558 Programming Languages
  • Any 500-level course designated by the department as programming-intensive 
     

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

View the list of required courses and approved electives for each track below.
 

Students must take enough electives to complete 45 total credits for the MS degree. Electives can be any 500-level CS course (see specific notes regarding CS 501-509 coursework below). 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.

Required Courses by Track

As part of the degree requirements for the CS Master's program, students must complete three courses from one of the following tracks. Track substitutions with other courses in the topic area may be permitted with the approval of the CS Graduate Advisor (gccs@pdx.edu).

The Artificial Intelligence and Machine Learning track 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. 

  • CS 541 Artificial Intelligence
  • CS 545 Machine Learning
  • One additional course from an approved list.

The Database 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
  • Two additional courses from an approved list. 

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
  • Two additional courses from an approved list. 

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
  • Two additional courses from an approved list. 

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

  • CS 554 Software Engineering
  • Two additional courses from an approved list. 

The Systems and 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
  • CS 594 Internetworking Protocols
  • Two additional courses from an approved list. 

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
  • CS 584 Algorithm Design and Analysis
  • Two additional courses from an approved list. 

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
  • Two additional courses from an approved list.

Doctoral Program Requirements

The doctoral degree program in Computer Science is designed to prepare students for advanced research or university teaching in the field and is intended for those who will pursue research in the field. The degree is usually required to teach computer science at the university level, and for employment in prestigious industrial research laboratories.

Because completion of the degree requires presentation of a dissertation comprised of original research, the time required is not pre-determined. Four to six years of full-time work are typical, less if the student enters with a Master's degree in computer science.

Students must meet the University deadlines for establishing their committee and defending and submitting their dissertation. The program consists of the following steps. Details for each step can be found in the Computer Science Graduate Student Handbook.

  • Obtain Residency: Review the University’s requirement for satisfying the doctoral residency requirement for a doctoral degree program to determine how you’ll satisfy the requirement.
  • Advising: Upon admission to the doctoral program, the CS Director of graduate studies will assign you a faculty advisor to advise and meet with you in regular consultation concerning your program of study and research. Your CS faculty advisor approves the courses in your program, including non-CS courses and courses taken outside of PSU. You are also assigned to three additional faculty members that make up an advisory committee during your first term (they may come from different research areas from your faculty advisor). The role of the committee is to monitor your progress, offer academic guidance, and provide a resource in resolving academic or advising issues.
  • Coursework: The student must complete an approved program of 90 graduate credits, including 18 credits of core courses and 27 credits of dissertation research.
    • Core Courses (18 credits) - Generally expected to be completed by the end of the second year.
    • Other Elective Courses (27 credits): Any graduate level courses in Computer Science, subject to guidance listed under Departmental Requirements
    • CS 601 Research or Other Elective Credits (18 credits)
    • CS 603 Dissertation Research Credits (27 credits)
  • Research Proficiency Examination: You are required to take the Research Proficiency Exam (RPE) to satisfy the University’s comprehensive exam requirement, which measures your knowledge within your domain of research.
  • Dissertation Committee: After passing the comprehensive exam and identifying a dissertation research topic, a dissertation committee will be appointed to the student and will take over the role of the advisory committee.
  • Dissertation Proposal: Dissertation proposal requirements are listed in the Computer Science Graduate Student Handbook.
  • Dissertation: Under the direction and consultation of the dissertation committee, you must complete a dissertation consisting of original research. 

Dissertation Defense: After preparation of the written dissertation, a candidate’s dissertation committee will conduct a dissertation defense. The candidate is expected to prepare an oral presentation on the research methodology and results. 

Other Resources