# OSSU Academic Requirements This document contains the subjects the student must master to pass through this curriculum. The subject requirements are based on topics, rather than specific courses, because sometimes a certain course isn't available at the right time or doesn't fit the student's learning style. ## Subjects ### Programming #### Paradigms - Imperative programming - Procedural programming - Object-oriented programming - Functional programming - Logic programming #### Languages - C and/or C-derived languages - SQL - XML/HTML - JavaScript and/or related language - An ML-family language - A Lisp-family langauge - Python and/or Ruby ### Math - Logic and proofs - Discrete structures - Graph theory - Discrete probability - Linear algebra ### Systems - Memory - Caching - Virtualization - Concurrency - Compilers - Assembly - Networking ### Theory - Data structures - Sorting - Searching - Divide and conquer - Algorithms on graphs - Greedy algorithms - Trees - P and NP ### Applications - Software product management - REST - Databases - Computer graphics - Cybersecurity - Machine learning