I suppose it could be systems if you are building a compiler or vm, but that to me is different that programming languages.
You had an (mostly theoretical) Automata and Formal Languages course, which had regular/context free languages (including regexs), grammars, and pumping lemma. lex/flex/yacc/bison, recursive descent, and LL(1) LR(n), LALR were in a Compilers course. Programming Language exposure to a functional language (ML) and a logic language (Prolog) plus some other stuff was the Programming Language course.
Type Theory, lambda calculus, and so on is relegated to advanced graduate courses that are given when a faculty member feels like it.
The theory and practical realms are very tightly intertwined in programming/computer science/whatever you want to call it as long as it isn't "information technology".
On the other hand, the portion of "math" that is applicable computer science/software development/whatever is pretty distinct from much of the "math" in math departments.
Personally, when I chose electives I chose systems electives: Operating Systems, Databases, Networks, Programming Languages, Graphics, etc. In these classes the bulk of the work consisted of programming in C.