- Home
- Search
- Jens Palsberg
- All Reviews
Jens Palsberg
AD
Based on 21 Users
Prof. Palsberg is a very clear lecturer and the theory is presented very well
in lecture. However, the lectures, being all theory, is a little dry. But it
is good that he clarifies the content; I would've been lost if I had to read
the theory from a textbook. The best part about this course is undoubtedly the
homework assignments. Implementing a compiler almost completely from scratch is
so rewarding. I like the fact that the class isn't exam-focused; the midterm (60
multiple choice questions) was the easiest midterm I've ever taken at UCLA.
Also, this class has the most active piazza out of any class I've ever taken at
UCLA---the average response time is only 13 mins.
Biggest weakness of this class is that it's too short. I would've loved an extra
quarter where we can practice implementing generics, lambdas, and learning about
more advanced and interesting programming language features.
Professor Palsberg is very passionate about teaching and improving this course. The fact that the course has been offered continuously for decades by the same instructor means that nearly all the kinks have been worked out of class, and it is as such no surprise how polished the entire course feels.
I concur with the previous review that says the grade distribution looks skewed. In actuality, the course is more work-heavy than difficult, and grading is done fairly. For instance, even though more than 90% of the students got above a 90% on our midterm, the professor does not curve down the grades.
Another update to the previous review is that CS 181 is no longer a course prerequisite, so anything related to PDAs you can now ignore.
A great experience, Palsberg is a great professor, however, the class is project heavy which means you'll learn a lot from the projects!
If you take compiler construction, You should take this professor. The diagram rating is completely wrong. He is not hard.
Class:
The class is project-based grading. Projects grade is 55% of the total grade. So if you can do the project, you can pass the class. Not only that, if you can do the project, you can do the midterm and the final, because they base on the projects.
Project:
the class requisite is that you took cs 131, but you can get in cs 132 even if you don't. The only thing you need to know from cs 131 is how to program in Java. The project is Java project, not C/C++ project. Get to know Java before enter the class. Also, the compiler breaks down to completely independent projects. Also, the thing you need to remember from CS 181 is PDA (not your typical hand-held PDA) but Pushdown automata; and how actually to code a PDA for first project. For other projects, you need to know visitor pattern and tree data structure. He goes over that briefly in class.
4 things you need to know before taking the class is to get A in the class.
+ Java (coding and how to invoke Java build in terminal)
+ PDA
+ Visitor Pattern
+ Tree data structure
Professor:
He is very nice, you can reach him through email. He is very responsive through email. You has plenty of time for project, BUT don't wait till last moment.
The course covers some of the most elementary and fundamental concepts in quantum programming, which I personally found quite notation-heavy and generally inaccessible to an outsider when I first explored it on my own. The class does much to break down the layers of notation and start at first principles, which I greatly appreciate.
On the other hand, I wish there were more discussions about how can we learn more about quantum computing on our own. I found that there is still a gap between what’s covered in the course and the literature, which often makes heavy use of terms from physics. I think a component dedicated to reading recent literature would be quite useful, especially for a graduate-level course like this one.
Additionally, I think it would be a very real boon to the CS instruction at UCLA if the course is offered as cross-listed for both undergraduate and graduate students. The course material is, and from what I can tell is designed to be, quite accessible to undergraduates. But the enrollment process was a bit nerve-inducing for myself, an undergrad.
This class dives deeper into some of the core topics of algorithm design, error correction, complex theorems such as Gottesman Knill, and more. A lot of the homework assignments are open-ended research questions and you need to put in effort to understand the problem at hand and be creative. The lectures are really engaging and help you think in the right direction. TA and professor office hours are super helpful too. But, if you struggled in CS 238, I would be cautious in taking this course. The difficulty is significantly higher.
workload-wise I think it's more than 111 and less than 131. do not underestimate the homeworks. they are very involved, though I wouldn't say the concepts themselves are difficult. discussion and office hours are helpful.
tests are very easy if you know how to do the homework. the professor is nice. overall it's a good class if you have some interest in compilers.
If you do not take this course with Jens Palsberg, you are missing out. His lectures are super clear and Jens is happy to answer your questions if you ever are in an y confusion. The homework are fun and are of just the perfect length. The midterm is easy too. You also get to work on an actual quantum computer, which is pretty cool. Make sure you also know the expectations for the final project as I felt a lot of points were docked from mine because I did go into a lot of depth.
As for the content of the class, once you are done, you should have a decent idea of the the direction the quantum computing industry is taking and also be able to write quantum programming codes easily.
Prof Palsberg is an excellent professor for this class.
The projects are the main course of this class, during the quarter you will progressively be building a compiler for the language Palsberg has designed for the class. Palsberg seems to have put in a large amount of work in making these projects seem interesting and building a programming framework for them, but they will be difficult and time consuming, building a compiler isn't done over a weekend.
Do keep in mind deadlines for these projects are hard deadlines however, in sharp contrast to much of the rest of the CS department. If you are a minute late like I was, you get 0 on a project. The projects aren't horribly difficult but very very time consuming, this combined with this hard deadline is a recipe for disaster.
That said, his grading is nice, he uses an autograder for grading with immediate feedback and unlimited submissions, you can submit, see your score, and tweak your program, and submit again for no penalty.
Unlike other classes, Palsberg times his lectures even better than the rest of the CS department. While professors like Eggert have a habit of assigning complicated homeworks and not lecturing about them until the day before they are due, Palsberg basically finished all the lectures needed to do all 5 projects by week 6 of the quarter, spending the rest of the time discussing various other topics in compilers and optimization.
Prof Palsberg is generally a good lecturer, and adapted well for the 2020 covid season.
Exams are free from my understanding, this seems to be by Palsberg's design as he himself said they were meant as a grade boost due to hard projects. On top of a midterm and a final, there were multiple quizzes on ccle for latter topics in the class, which were multiple choice and had unlimited submission attempts, so you could just try and try again until you passed the quiz. The final had many questions literally copied from the exam and was open note, so if you printed the quizzes for the final as notes you got free points.
Prof. Palsberg is a very clear lecturer and the theory is presented very well
in lecture. However, the lectures, being all theory, is a little dry. But it
is good that he clarifies the content; I would've been lost if I had to read
the theory from a textbook. The best part about this course is undoubtedly the
homework assignments. Implementing a compiler almost completely from scratch is
so rewarding. I like the fact that the class isn't exam-focused; the midterm (60
multiple choice questions) was the easiest midterm I've ever taken at UCLA.
Also, this class has the most active piazza out of any class I've ever taken at
UCLA---the average response time is only 13 mins.
Biggest weakness of this class is that it's too short. I would've loved an extra
quarter where we can practice implementing generics, lambdas, and learning about
more advanced and interesting programming language features.
Professor Palsberg is very passionate about teaching and improving this course. The fact that the course has been offered continuously for decades by the same instructor means that nearly all the kinks have been worked out of class, and it is as such no surprise how polished the entire course feels.
I concur with the previous review that says the grade distribution looks skewed. In actuality, the course is more work-heavy than difficult, and grading is done fairly. For instance, even though more than 90% of the students got above a 90% on our midterm, the professor does not curve down the grades.
Another update to the previous review is that CS 181 is no longer a course prerequisite, so anything related to PDAs you can now ignore.
A great experience, Palsberg is a great professor, however, the class is project heavy which means you'll learn a lot from the projects!
If you take compiler construction, You should take this professor. The diagram rating is completely wrong. He is not hard.
Class:
The class is project-based grading. Projects grade is 55% of the total grade. So if you can do the project, you can pass the class. Not only that, if you can do the project, you can do the midterm and the final, because they base on the projects.
Project:
the class requisite is that you took cs 131, but you can get in cs 132 even if you don't. The only thing you need to know from cs 131 is how to program in Java. The project is Java project, not C/C++ project. Get to know Java before enter the class. Also, the compiler breaks down to completely independent projects. Also, the thing you need to remember from CS 181 is PDA (not your typical hand-held PDA) but Pushdown automata; and how actually to code a PDA for first project. For other projects, you need to know visitor pattern and tree data structure. He goes over that briefly in class.
4 things you need to know before taking the class is to get A in the class.
+ Java (coding and how to invoke Java build in terminal)
+ PDA
+ Visitor Pattern
+ Tree data structure
Professor:
He is very nice, you can reach him through email. He is very responsive through email. You has plenty of time for project, BUT don't wait till last moment.
The course covers some of the most elementary and fundamental concepts in quantum programming, which I personally found quite notation-heavy and generally inaccessible to an outsider when I first explored it on my own. The class does much to break down the layers of notation and start at first principles, which I greatly appreciate.
On the other hand, I wish there were more discussions about how can we learn more about quantum computing on our own. I found that there is still a gap between what’s covered in the course and the literature, which often makes heavy use of terms from physics. I think a component dedicated to reading recent literature would be quite useful, especially for a graduate-level course like this one.
Additionally, I think it would be a very real boon to the CS instruction at UCLA if the course is offered as cross-listed for both undergraduate and graduate students. The course material is, and from what I can tell is designed to be, quite accessible to undergraduates. But the enrollment process was a bit nerve-inducing for myself, an undergrad.
This class dives deeper into some of the core topics of algorithm design, error correction, complex theorems such as Gottesman Knill, and more. A lot of the homework assignments are open-ended research questions and you need to put in effort to understand the problem at hand and be creative. The lectures are really engaging and help you think in the right direction. TA and professor office hours are super helpful too. But, if you struggled in CS 238, I would be cautious in taking this course. The difficulty is significantly higher.
workload-wise I think it's more than 111 and less than 131. do not underestimate the homeworks. they are very involved, though I wouldn't say the concepts themselves are difficult. discussion and office hours are helpful.
tests are very easy if you know how to do the homework. the professor is nice. overall it's a good class if you have some interest in compilers.
If you do not take this course with Jens Palsberg, you are missing out. His lectures are super clear and Jens is happy to answer your questions if you ever are in an y confusion. The homework are fun and are of just the perfect length. The midterm is easy too. You also get to work on an actual quantum computer, which is pretty cool. Make sure you also know the expectations for the final project as I felt a lot of points were docked from mine because I did go into a lot of depth.
As for the content of the class, once you are done, you should have a decent idea of the the direction the quantum computing industry is taking and also be able to write quantum programming codes easily.
Prof Palsberg is an excellent professor for this class.
The projects are the main course of this class, during the quarter you will progressively be building a compiler for the language Palsberg has designed for the class. Palsberg seems to have put in a large amount of work in making these projects seem interesting and building a programming framework for them, but they will be difficult and time consuming, building a compiler isn't done over a weekend.
Do keep in mind deadlines for these projects are hard deadlines however, in sharp contrast to much of the rest of the CS department. If you are a minute late like I was, you get 0 on a project. The projects aren't horribly difficult but very very time consuming, this combined with this hard deadline is a recipe for disaster.
That said, his grading is nice, he uses an autograder for grading with immediate feedback and unlimited submissions, you can submit, see your score, and tweak your program, and submit again for no penalty.
Unlike other classes, Palsberg times his lectures even better than the rest of the CS department. While professors like Eggert have a habit of assigning complicated homeworks and not lecturing about them until the day before they are due, Palsberg basically finished all the lectures needed to do all 5 projects by week 6 of the quarter, spending the rest of the time discussing various other topics in compilers and optimization.
Prof Palsberg is generally a good lecturer, and adapted well for the 2020 covid season.
Exams are free from my understanding, this seems to be by Palsberg's design as he himself said they were meant as a grade boost due to hard projects. On top of a midterm and a final, there were multiple quizzes on ccle for latter topics in the class, which were multiple choice and had unlimited submission attempts, so you could just try and try again until you passed the quiz. The final had many questions literally copied from the exam and was open note, so if you printed the quizzes for the final as notes you got free points.