Track Courses

Master's Program in Computer Science

Track Courses

As part of the degree requirements for the CS Master's program, students must complete three courses from one of the following tracks: 

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

Track substitutions with other courses in the topic area may be permitted with the approval of the CS Graduate Advisor (gccs@pdx.edu).

Artificial Intelligence & Machine Learning

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 (3)
  • CS 545 Machine Learning (3)
  • 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 (3)
    • STAT 671: Statistical Learning I (3)
    • STAT 672: Statistical Learning II (3)
    • STAT 673: Statistical Learning III (3)
    • SYSC 557 Artificial Life (4)
    • OHSU CS 623 Deep Learning (3)*
    • OHSU CS 562 Natural Language Processing*
    • OHSU 5/692 Ethics in AI and Machine Learning Research*
    • Any approved CS 510 Course in AI or Machine Learning

*Courses taken through the Joint Campus Program are considered transfer courses.


 

Databases

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 (3)
  • Two courses from the following:
    • CS 530 Internet, Web, & Cloud Systems (3)
    • CS 587 Database Management System Implementation (3)
    • CS 588 Cloud & Cluster Data Management (3)
    • CS 589 Principles of Database Systems (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 553 Design Patterns (3)
    • CS 557 Functional Languages (3)
    • CS 568 Functional Logic Planning (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 576 Computer Security Seminar (3)**
    • CS 585 Cryptography (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 requirement, 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 565 Full Stack Web Development (3)
    • Any approved CS 510 course in Software Engineering

 

Systems & Networking

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 (3)
  • CS 594 Internetworking Protocols (3)
  • One course from the following:
    • CS 515 Parallel Programming (3)
    • CS 530 Internet, Web, & Cloud Systems (3)
    • CS 531 Introduction to Performance (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