I took a similar class. What surprised me was that depending on the teacher the classes were significantly different. For most of my friends it was more of a survey of different programming languages. They covered like 4 r 5 languages.
When I took it, the teacher taught LISP to start with, then taught us about compilers, BNF grammar, tokenizing, lex, yacc etc. We had write a compiler (translator) to compile the BNF code we were given. The BNF was a stripped down Pascal. Think ints, for loops, if statements, long expressions (abc * bxy - (delta/time .... I think variable names where like normal. Implementing BNF was very much a recursion exercise.
I did not like the teacher, but it really upped my programming skills.
When I took it, the teacher taught LISP to start with, then taught us about compilers, BNF grammar, tokenizing, lex, yacc etc. We had write a compiler (translator) to compile the BNF code we were given. The BNF was a stripped down Pascal. Think ints, for loops, if statements, long expressions (abc * bxy - (delta/time .... I think variable names where like normal. Implementing BNF was very much a recursion exercise.
I did not like the teacher, but it really upped my programming skills.