Introduction
CMSC430 is the course I've most wanted to take during my time at UMD. I learned about it as a freshman and ever since I've looked forward to taking it. I thought it would be super interesting to design my own programming language.
The class was not so much what I expected, but I still really enjoyed it. I wish it had more focus on designing languages, but, to be fair, it is a compilers course.
This semester, Dr. Van Horn redesigned the course from scratch. In the past (looking at Fall 2018), I believe projects were written in OCaml, and it looks like Fall 2017 used Racket. This semester, projects were written in Racket*. Dr. Van Horn, instead of using PowerPoints, wrote fairly thorough notes (sample) for all of the topics.
Review of the course
The class started off pretty slow, with an easy project where we researched programming languages. Next was a fairly short project which was an introduction to Racket (similar to the introduction to OCaml project in 330). Then it really picked up with 5 long and difficult projects. For me, most of these projects took 30-40 hours and we had around a week for each (sometimes he gave extensions). There was a period of around a month where we had back-to-back-to-back difficult projects without much of a break in between. Then the projects started to slow down a bit.
Midterms were take-home and fairly difficult. There were occasional clicker questions. He recorded lectures. Our final project is pretty cool — he gave us a working compiler which compiles Racket (this is what we were working on throughout the semester), and we need to speed up the compiler.
Review of Dr. Van Horn
Dr. Van Horn has been a great professor. He clearly put in a lot of effort into designing the course. He's a good lecturer. From my point of view, he started off really strong in terms of getting projects and material out, but started to slow down toward the end.
Grading was a major issue throughout the semester. He still hasn't released grades for either of the midterms, and some of the projects took a while to grade. I don't personally care much, but I know some students do.
Dr. Van Horn uses Piazza and answers students' questions on it. He's definitely receptive to student feedback. He's clearly passionate about the topic and cares about students.
Overall, CMSC430 was one of my favorite courses I've taken at UMD. Dr. Van Horn is a great professor and did a good job designing the course. I highly encourage all CS majors take CMSC430, and any course with Dr. Van Horn.
* There's a thread from 2 years ago that is interesting. Dr. Van Horn designed and taught CMSC131A, which introduced students to programming using languages similar to Racket (instead of Java, which is what regular 131 is taught with). A TA, and Dr. Van Horn, responded to criticisms of the course. If you're interested in taking 430 (honestly, even if you aren't, it's still really interesting in my opinion), I encourage you to read it.
Subreddit
Post Details
- Posted
- 4 years ago
- Reddit URL
- View post on reddit.com
- External URL
- reddit.com/r/UMD/comment...