The PL&C track has programming language design and implementation at its core. Programming languages are notations for expressing methodical thought. Despite a huge range of languages, there is a clearly identifiable pool of ideas and concepts from which all languages draw. Courses in programming language design aim to identify and discuss such general concepts and how they apply to several specific languages. Courses in language implementation, which mainly includes language compilation, aim to present how languages can be defined, recognized, translated, and optimized for efficient execution. Language design and implementation is a central topic in advanced computer science. As such, the track serves as strong preparation for graduate studies or industrial software development.
Note: All course numbers refer to CS courses unless designated otherwise. Only 3 credits of 499T/P OR 496 count toward major requirements, regardless of whether it is listed in the menu. All courses x90-x99 require approval of the Undergraduate Program Director to be applied toward degree.