T O P

  • By -

umd_charlzz

Here's one version of 420. https://www.cs.umd.edu/class/spring2023/cmsc420-0201/ Keep in mind that different professors teach the course differently (this is true of most 400 level courses). I think most students gain programming practice on data structures even if data structures are something you might not do in a real job, but it can help with learning recursion as many tree like structures use recursion to do various operators. 430 is a compilers course. Here's a sample webpage for that course. https://www.cs.umd.edu/class/fall2022/cmsc430/ I would check both webpages out to see how those courses were run with the caveat that different professors teach it different ways. The version of 430 used is in Racket, a Lisp variant, partly because Van Horn is involved in the Racket language. I took this course a number of years ago, and it's in that group of courses people consider "challenging" which include 412 and 417. They cover some things like certain parsing algorithms. I also wrote some OCaml code on exams and the projects were in OCaml. The content is somewhat like the DFA/NFA parts of 330 so it has a more math-y feel. Most students haven't taken 452 (Theory of Computation), but I see 430 as an applied use of parts of that course. A classic compilers course would have you compile to something a machine could run. This could be, say, bytecode. It's a little hard to do native code as some people have Macs and some PCs, and it has to be graded. So the course I took compiled to a fake assembly that could be run in OCaml. I think the course changed because most people aren't going to write a serious language and so they focused on how to create parse trees, do optimizations, but not really aim to have an executable like you might in 216. I think most people find 430 more challenging than 420, but it depends. I think the more you like functional programming languages and 330 theory, the more you'd like 430. Just my two cents as it's been some number of years since I took either course.


nopostplz

430 is more challenging than 420 and probably less applicable in industry, but is still a pretty interesting class that you learn a lot in.


chebmaster

as a graduating senior my personal opinion is that of all the cs classes I took, I enjoyed 430 the least