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