Reviews for CMSC430

Information Review
Jose Calderon
CMSC430

Expecting an A+
juiceman
03/07/2024
Did you think the exams or other major assignments were fair? Yes, projects and exams were fair, based on what’s covered in lecture and course notes. --- Did you think the professor had reasonable expectations of the students in the course overall? Expectations were reasonable. Come to class or don’t, but make sure to read and keep up with the course notes. Jose did want us to engage deeply with the concepts… thinking of our examples and test cases. --- Were you a fan of the professor's teaching style? Loved Jose’s teaching style. You can tell he really cares. He did a mix of chalk board and live coding. I liked how he showed his coding process (test-driven development) and using documentation. --- Was the workload appropriate for the number of credits? Yup, 4 main coding projects + 1 final project. 2 smaller assignments. Semester projects took 6-8 hours. Final project took longer, 10-12 hours. Two midterms, take home, 24 hours, 4-8 hours, median for both midterms was 95. --- Was this course a waste of time or was it beneficial in some way? I think this course was beneficial. Even though I may not write another compiler in my career, I did learn to be more pedantic. I had to be really careful in planning my pseudocode before writing my code. I learned how to trace through and debug low level code (Assembly). I think the course is reminiscent of drawing memory diagrams with the stack and heap in CMSC131/132… except now we’re producing assembly code to do so for Racket code. I personally enjoyed working with stack and heap, but maybe it's not the most industry practical course. --- How much support were you given throughout the semester (office hours, extra resources, etc.)? Piazza responses were god tier… Pierce! Jose offered plenty of office hours by appointment; he was always willing to discuss ideas and even do code reviews. There was also a good amount of TA office hours; however, there were frequent cancellations without replacement. --- TLDR: If you liked the memory diagrams in 131/132, the lexer/parser project in 330, and especially the assembly project in 216, then you’ll thoroughly enjoy this course. It’s a manageable workload and gives more exposure to lower-level programming. You’ll learn the difference between compile vs run time ;)
Jose Calderon
CMSC430

Expecting an A+
Anonymous
12/24/2023
Jose is the best lecturer I've ever had. It's sad that he's no longer teaching at UMD. Hopefully, he will come back in the future. The lectures were interesting, and the projects were straightforward. They were designed to help us actually understand the concepts. I didn't really understand heap/stack in 216, but 430 helped me truly get it.
David Van Horn
CMSC430

Expecting an A
Anonymous
12/21/2023
Very good class, would recommend taking if you're looking for an actually not too bad and fun 400 level CS class. I thought it was one of the better organized courses I've taken at UMD, but a lot can be said for DVH's part in that. He was pretty much absent from every Piazza post relying on TAs and Jose to respond and emailing him was basically throwing away an email into the void. With that being said, I didn't have much issues with the course. The TAs are brilliant and make up for this lack of responsiveness and he does record his lectures which is a huge plus! Overall, good professor who cares about your learning. Would recommend.
Jose Calderon
CMSC430

Anonymous
12/17/2023
incredible for 430. very passionate about the course and wants his students to do well. Exams aren't bad and the projects are doable if you start them early. Cool course.
Jose Calderon
CMSC430

Expecting an A
Anonymous
12/12/2023
This is a great class. I had 330 with Roger Eastman and thought it was super boring. This class is about 100 times better. José is very clear and knows a lot about compilers. I recommend skimming the notes for the week on Sunday before attending class. The projects are pretty easy in my opinion. The exams this year were take home and similar to a project. The pace can be kind of slow. Unfortunately, I don't think he will teach this class again, but if he ever comes back, I recommend choosing José.
William Wegand
CMSC430

Expecting an A
Anonymous
12/11/2023
William is the goat, every time I went to his office hours, I left smiling. Very helpful on all the projects and post exam material.
David Van Horn
CMSC430

Expecting a B
kcanha
12/02/2023
Most checked out professor ever, course was terribly organized. Apparently he did not interact with the TAs all semester and it showed. Projects were almost always posted late. Sometimes posted to course website, sometimes to piazza, never told where. We were told there would be a lecture quiz posted after each class, there have been 4 total. I'm about to take the final and exam 1 regrades aren't out yet, exam 2 initial scores (autograder) aren't out yet almost a week after taking it. TAs don't show up for office hours. Lectures were monotonous and hard to pay attention to. If you are able to pay attention he explains stuff alright, he does a good job answering questions in person. He is a nice enough guy.
Jose Calderon
CMSC430

Expecting an A-
Justacoder
11/16/2023
One of the better Professors at UMD. His compiler class is well organized and well run. It is clear Jose is passionate and knowledgeable about compilers, his lectures some of the best, they are engaging and topics are well explained in detail. Projects can be tricky and they do build on each other, notes and lecture material should give you enough more of an understanding to get them done. Projects have public and secret test, getting the public test done will usually grantee a good grade, you'll probably miss a couple of test, it is honestly better to just take a high score rather than spending hours trying to get a hundred. Exams are take home coding assignments, they can take a bit of time but usually fine in terms of difficulty.
David Van Horn
CMSC430

Expecting a B
Anonymous
06/29/2023
Had him this summer for 430. One of the most well put together classes I've ever taken. Seriously. A lot of time went into the design of this course, so that you wouldn't spend hours and hours sifting through documentation for an answer. Most upper level classes will say its the students job to find out what functions to use to solve a problem, and what resources to get there. But everything you need for this class is in the notes and in lecture, so you can spend more time thinking about the theory, and doing projects then sifting through pages and pages of documentation. They even made a language to simplify x86 to only instructions that are relevant. On top of that, DVH lectures very well, attempting to explain those notes and boiler plate code with live coding examples. He doesn't just teach off slides he actually shows you what to do and tells you why he's doing it that way. Very good lecturer. But don't get me wrong this class isn't easy, you definitely will have to think your way through the projects and some projects I was just grateful to get a C. But I took it in the summer so maybe less time made it harder, I don't know. After one of the project deadlines passed that a lot of people struggled on, DVH spent 3+ hours walking through the solution on top of doing lecture that day. Him and his TA are also very responsive. This summer Pierce was one of the TA's and one of the best ones I've ever had. Anyways, take this class if you liked the interpreter project of 330 and the MIPs project of 216, because its sort of a blend of those 2 projects. This is one of those classes where effort and consistency will get you farther than intuition and I really think the staff gives you every tool you need to succeed.
Jose Calderon
CMSC430

Expecting a B
Anonymous
06/23/2023
I had Jose for CMSC216 and CMSC330 and CMSC430. The first thing I want to bring up is that Jose is unlike any other professor/instructor at UMD (With the exception of Dave Mount). Not only does Jose know the ins and outs of everything he is teaching, but he has a passion for teaching what he knows. He'll make sure to give you an answer that is as fully correct as he can make it. He really wants his students to understand everything he is teaching and will go to great lengths to help them understand. His office hours are amazing and will really push the student to learn the concepts when they are struggling. He has helped clarify a lot of things for me especially in CMSC330 when the topics of NFA's and DFA's were killing me. He's also really funny and has a great sense of humor. It's important to note that CMSC430 IS A HARD CLASS. Seriously, it's really hard and a lot of people don't expect that because of Jose's amazing reviews (which he deserves). But it's important to understand that CMSC430 is essentially CMSC216 + CMSC330. In CMSC430, you will get thrown into the belly of the beast with about two weeks to learn the Racket programming language (which is a Functional programming language). So yeah if you suffered and hated Ocaml in CMSC330, you're going to learn even more functional programming that has the most ridiculous syntax imaginable (lookup what a racket program looks like) and the most useless error messages possible (Highly recommend using chatGPT to see what your error messages mean. Saved me a ton of googling). However, if you were a fan of functional programming and loved lambda calculus then this class won't be that bad. It will be tedious but it won't be horrific. It also matters how many other classes you are taking at the same time because this class has such a heavy work load. Projects: The projects are the bulk of the grade in this class. But these projects are so much different than lower level cs class projects. You can dedicate a ton of time in CMSC216 and CMSC330 to try and pass every test. In CMSC430, don't waste your time. If you get an 89% on a project, it's not worth the stress of 5 hours in the middle of the night and the destruction of your brain cells to bump it up to a 93% especially when the problems in the code might be so minor where you really understood the concept the project was trying to teach you but there was a small implementation error. Trust me, getting an 80% on a CMSC430 project a few times is okay. Writing the assembly is not that bad. Just review and comment what each line does in your example programs and you begin to understand it all pretty well. It can get pretty tedious when you're writing a program in a function programming language where the job of the program you're writing is to spit out assembly code in a specific order. Make sure to read the lecture notes Jose gives, don't just watch the videos. Also most importantly, don't cheat on the online exams. Jose will most likely catch you and you really don't want the stress of an XF or a 0 on an exam hanging over your shoulders. We didn't get our second exam back for 2 months because of cheating and some people didn't get told they were caught until after the end of the semester because they were doing a giant analysis to determine who was cheating. If you fail an exam, try again and study harder and go to him for help. I got a B on the first exam, totally bombed the second exam, and had about a B average for the projects. I got a really high grade on the final project and ended up with a B. It's a class worth taking because I think it's essential to know how a programming language is made considering the fact that cs majors constantly use programming languages. It's gonna be a lot of work though.
Jose Calderon
CMSC430

Expecting a B
Anonymous
05/31/2023
If you really like low level programming and have a good grasp on computer fundamentals, go for it. If you are looking for this class to provide you with an introduction to compilers and to understand the big picture not just the little details, do not take this course. He switches back and forth between examples and even after watching his videos and reading his notes and knowing exactly what he's doing, the way he explains examples is so so confusing. If he made videos for the later topics in the course this would not have been that big of an issue though. My biggest complaints were how unorganized the professor and staff were (Aside from the lecture notes that are from previous years), how horrific the communication was (dates would be changed, assignments would be posted and the only way to know was to constantly stress-search through the hundredddssss of discord posts) and grading was very unreasonable.
Jose Calderon
CMSC430

Expecting an A-
Anonymous
05/29/2023
Jose has incredible passion for teaching and really cares about his students, and the lectures reflect that. Definitely take Jose if you have the chance for any class — you'll learn a ton and enjoy the course
Jose Calderon
CMSC430

Expecting an A
Anonymous
05/20/2023
Jose's approach to compilers is great for several reasons: - Fantastic lecture notes. There's basically a small textbook's worth of compilers material available any time to understand the class concepts. - Detailed videos. Excellent in tandem with the notes. - In person lectures are informative. Jose makes us work through conceptual problems in class so we can understand them before diving into code. Really valuable. - Take home exams. You are given more than enough time to take them and you can access the detailed notes. - Straightforward projects. The coding projects are small in scope (you get a week or so to do each one), but really help you reinforce important compiler concepts. They're super fun and not too difficult. You'll need skill with functional programming and writing assembly instructions; the knowledge from 216 and 330 will be handy here. Learned a lot and would definitely recommend.
Jose Calderon
CMSC430

Expecting an A-
Anonymous
05/15/2023
Before I begin this review, I would like to note that the cons I have listed are due to some TA staffing issues that happened in the CS department this semester. This isn't on Jose or the TAs. First of all, I loved this class. It was intriguing and Jose did an excellent job making it fascinating to learn about the compilers and interpreters, exploring how to incrementally add features, and connecting them to examples from his personal career writing compilers. Some of the key pros I would list are: 1) Interesting assignments and final project options (Could be challenging at times) 2) All lecture notes for the languages we covered were posted in advance before the course started (this was super helpful when preparing for midterms) 3) Asynchronous videos were provided of him walking through the languages from past semesters (He started recording our lectures halfway into the semester but I think the asynchronous videos kind of made up for this. 4) Jose and the TAs quickly responded to questions on Discord or ModMail and provided sufficient online & in-person OH. 5) Expectations for programming assignments, midterms, quizzes, survey, and final project were reasonable. 6) Regrade requests were available for Midterm 1. 7) Enough time was given to complete the programming assignments (~2 weeks), quizzes (~1-3 days), final project (1 month), midterms (3 hours), and survey (1 day). 8) Gave plenty of opportunities for Q&A during lectures One very small con (only because of the staffing issue in the CS department this semester and larger class size) is grading overall took longer than expected. Other than that, I think the course was very well-organized and went according to the original plans and the TAs and Jose did an excellent job making sure all students understood the course content and how to apply it to assignments, etc. Strongly encourage anyone interested in compilers to take this class with Jose. I would give him 6 stars for this review if I could!
David Van Horn
CMSC430

Expecting a B+
Anonymous
05/15/2023
Pros -Interesting material imo -No real exams, all projects -very organized Cons -Lectures are very boring -Lots of low level coding -Projects can take a very long time
David Van Horn
CMSC430

Expecting an A+
Anonymous
01/22/2023
Lectures are kind of dry, but the class is well structured, excellently run, and very interesting.
David Van Horn
CMSC430

Anonymous
01/05/2023
Time consuming but relatively easy class, as projects are mostly implementation, little to no theory involved. Dry lectures, much more engaging online and when you ask him questions in person. Otherwise a brilliant guy, would recommend if you liked 216/330.
David Van Horn
CMSC430

Anonymous
12/19/2022
He deserves a 5-star rating for the following. First, he cares about students and their learning. His main objective is encourage students to learn as much as possible. His lectures are clear and he never rushes through the materials, which are well organized into different modules with increasing levels of sophistication to build up compilers with advanced programming language features. I like the way the course organizes exams. We had two midterms but no final exam. The midterm problems are all about designing and implementing certain features of some compilers that had been discussed in the lectures. The midterm questions are clear and reasonable. We were given 48 hours to complete the midterms but I did not have to devote the entire two days to each midterm.
David Van Horn
CMSC430

Expecting an A
Anonymous
11/06/2022
Lectures are kinda dry but DVH explains things really well. Instead of Piazza he used Discord to communicate with the class, which made it so much easier to reach him and the TAs. The class is not necessarily hard, but it is a lot of busy work. Gotta stay on top of it.
Jose Calderon
CMSC430

Expecting an A
Anonymous
08/30/2022
You would be hard pressed to find a professor with more passion, professionalism, kindness, and genuine care for both their work and their students. Jose deserves 6 stars
Jose Calderon
CMSC430

Anonymous
04/06/2022
Without a doubt the best professor I have ever had and one of the most interesting and well put together classes I have ever taken. Jose is the GOAT, there's no other way to put it. He's passionate, kind, considerate, intelligent, funny, and organized. There is no one I would rather take a class with. He has changed the course of my college career.
David Van Horn
CMSC430

Expecting an A
Anonymous
12/26/2021
The course material was very interesting, and the materials provided were very helpful. DVH lectures well, but can be monotone, which can make it difficult to stay focused if you're easily distracted like I am. Outside of lecture, a Discord server was set up for the class. This was massive since it made communication between course staff and students more frequent, casual, and clear. It closed a lot of distance between the two groups. The format of Discord also made it so that problems students had could be solved more smoothly than they would on something like Piazza. DVH is also very kind in general. If he's an option, I'd highly recommend taking him, because he knows how to run a course.
Jose Calderon
CMSC430

Anonymous
05/19/2021
Fall 2020 Semester. MVP. I'm not aware of another professor that makes the material so accessible.
Jose Calderon
CMSC430

Anonymous
02/13/2021
Such a great professor. Literally so sweet and makes the best lectures ever. Actually gets me excited to learn about compilers. Lectures are really well put together and fun to watch.
Jose Calderon
CMSC430

Anonymous
02/01/2021
very chill professor
Jose Calderon
CMSC430

Expecting an A+
tybug
12/20/2020
Fantastic professor. Knows his stuff and he clearly cares about making sure the students understand the material and do well in the class. For 430 specifically, we had 6 projects and they each took a fair bit of time (5-7 hours), but over the course of a semester that really isn't so bad. Definitely a reasonable amount of work for the class.
Jose Calderon
CMSC430

Expecting an A+
Anonymous
12/16/2020
Jose is super nice and understanding of students concerns and needs. Assignments were super interesting and pretty fair, if you have a good understanding of the course material and Racket. Online class consisted of asynchronous YouTube videos with corresponding lecture notes on the website. Really learned a lot from the class and he was great!
Jose Calderon
CMSC430

Expecting a B+
Anonymous
12/16/2020
He's a great teacher. He takes time to explain the concepts in detail. This course is about compilers and as you'd imagine, the class might cover some low level stuff, which can be confusing. But Jose takes time to break down everything so you can understand. He doesn't overload students with a lot of homework; he gives just the right amount of quizzes and assignments to help understand the material. Projects are mainly an extension of the concepts thought; if you understand his explanations, doing the projects shouldn't be complicated. In terms of availability, he's always willing to extend his office hours to accommodate students. If you really want to learn, take his class.
Jose Calderon
CMSC430

Expecting an A
Anonymous
11/30/2020
honestly the coolest dude i've ever met, really knows his stuff and is super laid back. incredibly accommodating for the whole distance learning thing, too.
David Van Horn
CMSC430

Anonymous
12/05/2019
Such a great professor. Clearly is dedicated to the course and the students. He genuinely wants kids to learn and to build a curriculum that is strong and representative. However 430 was very challenging and a lot of work so beware if you enroll to spend 10-15+ hours on projects. There were no exams though just projects for all assignments, midterms, and final.
David Van Horn
CMSC430

Expecting an A
Anonymous
10/24/2019
Epic twitter account.
Nick Petroni
CMSC430

Anonymous
12/27/2018
Down-to-earth and personable guy who really knows his subject. Definitely learned a lot from his class.
Thomas Gilray
CMSC430

Expecting a B+
Sharky
12/14/2017
I think this was Gilray's first time teaching CMSC 430, and he did a really good job. The content is quite tough and some projects are very challenging, but Gilray held office hours right after class to answer any questions. If you weren't able to catch him then, he's very active on Piazza and is really knowledgeable on the content. He's also very understanding and knows that his class is tough, and as such he gives out extensions on the projects on a case by case basis. Some of the lectures themselves are very heavy, but Gilray does a good job explaining the material and don't be afraid to ask questions! Overall a great instructor and just a great guy in person.
Jeffrey Foster
CMSC430

Expecting an A
OtG
06/04/2012
Professor Foster is extremely responsive to his students. At the beginning of the course, he made it clear that it was his first time teaching the course and that it was being redesigned from the ground up. He was very amenable to giving extensions when the situation warranted, and whenever a problem or difficulty with the project specs was brought up, he would ask the class what fix they thought was appropriate. The lectures in this class cover a lot of very interesting, oh-that's-how-that-works topics. They were mostly his slides, with a few taken from others' talks, and a few design discussions. The projects are a lot of fun, but a LOT of work. Do not put them off. They help a huge amount in understanding the material. The tests were tough, since they required serious knowledge of the topics covered, but we were only expected to have an in-depth understanding of topics that were the focus of lectures.
Jeffrey Foster
CMSC430

Expecting an A
tedks
05/11/2012
Jeff is a great professor, and his classes are well-designed and great. For 430 (compilers), Jeff totally redesigned the course, and made it incredibly challenging, relevant, and fun. I look back on the work I did in his class and can feel as if I accomplished something meaningful that made me more powerful as a computer scientist. Even if you aren't interested in programming language design (Jeff obviously is, and his enthusiasm for the material is palpable in the class), you should still take 430, because it will enable you to know intimately a tool that every computer scientist uses on a daily basis.