Upper-Division Courses

Oregon State University

 

Senior Software Engineering Project

Using the Scrum agile framework, working to create an effective solution based on customers’ specifications

 

Scientific Visualization

Using OpenGL to visualize scientific data, such as point clouds, contour plots, isosurfaces, and streamlines

Machine Learning and Data Mining

Supervised and unsupervised learning algorithms, as well as reinforcement learning to control results

 

Software Engineering II

Version control, code coverage, unit testing, random testing, debugging, and test driven development

Introduction to Parallel Programming

Understanding parallel architectures, programming paradigms, and algorithms

 

Computer Graphics Shaders

Using fragment, vertex, geometry, and tessellation shaders to generate different effects with GLSL

Introduction to Mathematical Statistics

Probability, random variables, expectation, discrete, continuous, and multivariate distributions

 

Operating Systems II

Concurrent processes, job scheduling, multiprocessing, networking, file systems, and performance evaluation

Other Relevant Courses

 

Programming Language Fundamentals

Imperative, functional, object oriented, and logic programming paradigms, scoping, syntactics, and semantics

 

Data Structures

Trees, graphs, queues, vectors, stacks, heaps, linked lists, and time-complexity analysis

Computer Architecture and Assembly Language

Coverage of the MASM language: implementing addressing, arithmetic, argument passing, and modularization

 

Analysis of Algorithms

Greedy algorithms, linear and dynamic programming, P and NP problems

 

Writing in Business

Knowing your audience in professionally generating emails, resumes, reports, and social media

Introduction to Theory of Computation

Models of computation, including finite automata, formal grammar, and Turing machines

 

Web Development

HTML, CSS, Javascript, handlebars, Node.js, client vs. server code

 

Technical Writing

Producing clean, precise, organized, and factually based documents with relevant and pleasing visuals

Introduction to Computer Networks

Packet and circuit switching, TCP/IP and UCP protocols, data transfer, congestion control, packet forwarding

 

Linear Algebra I

Matrix arithmetic, systems of linear equations, subspaces, eigenvalues and eigenvectors