Hacker News new | ask | show | jobs
by goda90 719 days ago
Maybe it was just how tough on grading my professor was but I had a hard time with a class called "Concepts of Programming Languages". It covered stuff like syntax, typing, garbage collection, etc. My professor was on the Racket dev team, and the whole class was done in Racket. He was actually pretty thorough about recording lectures and notes so it can be found here: https://jeapostrophe.github.io/courses/2013/fall/330/course/
1 comments

Probably the hardest CS undergraduate course I took was "Principles of Programming Languages" which was similar to this, and another course mentioned in this thread. Not sure if it was not taught well or was just inherently difficult. Covered programming paradigms (object-oriented - Java, functional - Common Lisp, and logical - Prolog), designing a language with an abstract syntax tree and then parsing and executing it etc. A lot to cram into one course I guess.
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.