Programming Languages & Compilers Track

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.

Requirements

  • Four required courses:
    • 311 Algorithms
    • 377 Operating Systems
    • 410 Compilers
    • 530 Prog. Languages
  • Any two courses from the following:
    • 320 Software Engineering
    • 445 Information Systems
    • 535 Architecture (or CS391IB)
    • 499T/P or 496 (see note)
  • Two CS electives numbered 300 or above (not including 305).
  • 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.