Study fundamental concepts on which programming of languages are based, and execution models supporting them. Topics include values, variables, bindings, type systems, control structures, exceptions, concurrency, and modularity. Learn how to select a language and to adapt to a new language. Prereqs., CSCI 2270 and one of CSCI 2400 or ECEN 2120. Prerequisites: Restricted to Computer Science (CSMR) or all other College of Engineering majors only.