Principles of language design, abstraction, syntax and parsing, operational semantics (declaration, allocation, evaluation, run-time environment, typing, activation), and programming language paradigms (procedural, object- oriented, functional, logic programming). Prerequisites: AUCSC 112 (2021), or AUCSC 211 and AUSCI 235. Corequisite: AUCSC 250 and AUMAT 250.