<p>A typical CS major would have the following lower division courses:</p>
<p>Introductory sequence covering CS concepts and data structures; includes programming assignments, though schools vary in programming languages used.
Computer organization, machine structures, or similar course; typically includes assembly language programming assignments.
Discrete math, probability, and statistics.</p>
<p>Other lower division requirements may include:</p>
<p>Math: calculus, linear algebra – engineering-focused majors may have multivariable calculus and differential equations.
Science: engineering-focused majors typically have a physics requirement.
Electronics: engineering-focused majors may have an EE or electronics requirement.</p>
<p>Typical upper division CS courses that should be available:</p>
<p>Algorithms and complexity. *
Theory of computation, languages, and automata.
Operating systems. *
Compilers.
Networks. *
Databases. *
Security and cryptography. *
Software engineering. *
Digital systems, computer architecture design, or other hardware courses.
Electives like graphics, artificial intelligence, etc.</p>
<ul>
<li>= Courses whose concepts are frequently seen in industry software jobs.</li>
</ul>