Jason J Cong
Department of Computer Science
AD
3.6
Overall Rating
Based on 12 Users
Easiness 2.5 / 5 How easy the class is, 1 being extremely difficult and 5 being easy peasy.
Clarity 3.2 / 5 How clear the class is, 1 being extremely unclear and 5 being very clear.
Workload 2.8 / 5 How much workload the class is, 1 being extremely heavy and 5 being extremely light.
Helpfulness 4.1 / 5 How helpful the class is, 1 being not helpful at all and 5 being extremely helpful.

TOP TAGS

  • Uses Slides
  • Would Take Again
GRADE DISTRIBUTIONS
25.6%
21.4%
17.1%
12.8%
8.5%
4.3%
0.0%
A+
A
A-
B+
B
B-
C+
C
C-
D+
D
D-
F

Grade distributions are collected using data from the UCLA Registrar’s Office.

27.0%
22.5%
18.0%
13.5%
9.0%
4.5%
0.0%
A+
A
A-
B+
B
B-
C+
C
C-
D+
D
D-
F

Grade distributions are collected using data from the UCLA Registrar’s Office.

31.8%
26.5%
21.2%
15.9%
10.6%
5.3%
0.0%
A+
A
A-
B+
B
B-
C+
C
C-
D+
D
D-
F

Grade distributions are collected using data from the UCLA Registrar’s Office.

18.9%
15.7%
12.6%
9.4%
6.3%
3.1%
0.0%
A+
A
A-
B+
B
B-
C+
C
C-
D+
D
D-
F

Grade distributions are collected using data from the UCLA Registrar’s Office.

36.7%
30.6%
24.5%
18.4%
12.2%
6.1%
0.0%
A+
A
A-
B+
B
B-
C+
C
C-
D+
D
D-
F

Grade distributions are collected using data from the UCLA Registrar’s Office.

40.7%
34.0%
27.2%
20.4%
13.6%
6.8%
0.0%
A+
A
A-
B+
B
B-
C+
C
C-
D+
D
D-
F

Grade distributions are collected using data from the UCLA Registrar’s Office.

25.5%
21.2%
17.0%
12.7%
8.5%
4.2%
0.0%
A+
A
A-
B+
B
B-
C+
C
C-
D+
D
D-
F

Grade distributions are collected using data from the UCLA Registrar’s Office.

20.0%
16.7%
13.3%
10.0%
6.7%
3.3%
0.0%
A+
A
A-
B+
B
B-
C+
C
C-
D+
D
D-
F

Grade distributions are collected using data from the UCLA Registrar’s Office.

ENROLLMENT DISTRIBUTIONS
Clear marks

Sorry, no enrollment data is available.

AD

Reviews (8)

1 of 1
1 of 1
Add your review...
Quarter: Winter 2020
Grade: A-
March 31, 2020

Cong is a really good guy, and you can tell he genuinely cares about the students. However, I don’t think this class is particularly well-designed. It’s not bad, but I wouldn’t say it’s good, either.

The class is broken down into 7 labs, 3 homeworks, a midterm, a final, and participation (you could opt out of the final in my quarter, though, due to COVID-19). Each lab and homework is worth 5%, as is the participation grade (participation is tracked via in-class paper worksheets, where you’re asked a question on the lecture material. You get a 1/2 for just answering it, and a 2/2 if your answer is “reasonable.” There’s a worksheet every lecture). The midterm’s worth 20% and the final’s worth 25%.

The homeworks are fairly standard, though graded rather stringently. It’s not too difficult to hit at least an 80-85 on them, though. The midterm was fair but challenging, and I presume the final would’ve been, had it not been made more straightforward for those who didn’t opt out due to COVID-19. Check UPE for a midterm example if you’re so inclined.

My real issue was with the lecture setup, and the labs. For the lectures: a large chunk of lecture time was dedicated to explaining syntax for various parallelization languages/frameworks. In my opinion, this wasn’t a valuable use of time - beyond the basic concepts behind the language/framework, in-depth examinations of the syntax weren’t very useful. We already had to learn the syntax in a trial-by-fire sort of way to complete the labs, and so spending ~30 minutes of at least 5 lectures going over the absolute specifics of the API seemed wasteful (particularly when there were other theoretical concepts students were confused about). Plus, Cong’s slides aren’t the best - they’re the kind of slides that throw out a complicated answer, and then say, “can you see why that is?”, without actually explaining anything. He often would fill in those questions during lecture, but sometimes he didn’t.

On that note, his lecture style is straightforward, if a little boring. He goes through the slides on his iPad (projected on-screen), and annotates as he goes along. Sometimes this can get unclear if he’s trying to cram a lot of writing onto one slide, but it’s fine overall; just not super engaging.

For the labs: they’re interesting, and very worthwhile as you start them. Each week, you’re typically using some new language or framework to solve a problem, and are utilizing some cool hardware via AWS (you get $200 credit total, so cost is never an issue). However, the fun stops as soon as you finish ensuring your code is correct, and get to half-decent performance (both of which are very easy to check, as you’re always provided with some way to automatically test your code’s correctness and performance).

Basically, your lab grades are broken down into: 50% for correctness, 25% for performance (with extra credit opportunity), and 25% for your lab report. The report and the correctness are straightforward. The performance is relegated into bands, measured in GFlops - essentially how many operations your program is able to do per second. The bands change for each lab, but are usually something like: [0, 5): F (score: 0/25), (5, 15]: D (score: 10/25), (15, 45]: C (score: 15/25), etc. They changed the class so that all but the extra credit bands are set in stone prior to your submission, so you can always ensure you’re at least gonna be able to get 100%.

Getting into C, and even B, range is usually fairly straightforward, so long as you paid attention and understand the basics of the language/framework’s approach, and how best to exploit parallelism. Getting into A range can be quite annoying, however, and oftentimes relies on guessing-and-checking loop tile sizes, and how much manual unrolling you need to do. It’s more tedious than instructive, in my opinion, and can cause you hours of frustrating monotony.

Extra credit is offered for each and every lab, always in the form of an A+ and A++ range for performance. Basically: after everyone submits their labs, the TAs will determine the two ranges based on students who exceeded the A range band. So while you can guarantee yourself an A, and even an A+ (because you get performance above the A range), you’re never quite sure if you’re going to be capable of an A++ (there are some insanely smart people that were able to get crazy performance). Lab reports also sometimes offer extra credit in the form of bonus questions - usually relying on you at least semi-correctly explaining a theoretical concept in the context of the lab.

In all, labs are really interesting and fun, but the slog to get into A-range and beyond can suck up incredible amounts of time, and often feels more like guesswork than any real application of knowledge. That really puts a sour note on the class, and was my main point of dislike for the entire quarter.

In summary, I’d say this class is pretty solid. On a range from CS 130 (why am I taking this) to CS 32 (Smallberg is a god), it’s smack dab in the middle. You learn some interesting stuff, and it’s most likely going to be valuable in some capacity no matter what you do; but the actual class implementation can lead to a lot of unnecessary frustration and confusion. I’d say take it if you’re interested in the topic, but if you’re weighing this versus some interesting-sounding 188, go for the 188 (they’re rarely offered more than once during your 4-year stay).

Helpful?

1 0 Please log in to provide feedback.
Quarter: Winter 2020
Grade: A+
March 27, 2020

Professor Cong is great. His exams are straightforward, his projects are interesting, and he actually cares about his students. His projects are performance-based, so some fraction of each project grade depends on how fast your code is. That being said, it is decently easy to achieve A-range performance on pretty much every project, and once you beat A-range performance you get extra credit. It's fun to hear people discuss what optimizing techniques to use and the insane performance some people manage to get on these projects. There's only a few homeworks, and they're not bad. They are graded somewhat harshly, but extra credit from the labs helps make that up. His exams are very much straightforward. There were no tricks on the midterm, just stuff you would know from doing the homework and the problems in the slides. Also, because of COVID-19, he made a special low-stress final that was mostly just reflecting on your projects and analyzing what you could have done better, which was great (none of my other professors changed their final at all). He also immediately let people who needed to leave the area skip the final as soon as he was given department approval. My single criticism of Professor Cong is that his lectures can be a little boring because of his speaking style, but the slides are still good and I still think this is a great class.

Helpful?

1 0 Please log in to provide feedback.
Quarter: Fall 2024
Grade: A+
Verified Reviewer This user is a verified UCLA student/alum.
March 29, 2024

Overall - a pretty challenging class but definitely worth the amount of effort you put in. We learned a lot of useful concepts for industry as well as got access to programming on AWS instances with GPU, FPGA, CPU programming which was unique and challenging. Exams were difficult but doable given enough studying of lectures and practicing of problems. TAs were super helpful for the homework assignments and were a great resource for this quarter. The professor is super kind and lectures were easy to follow.

Helpful?

0 0 Please log in to provide feedback.
Quarter: Spring 2022
Grade: B+
Verified Reviewer This user is a verified UCLA student/alum.
June 11, 2022

One of the hardest cs classes I have taken. Labs were pretty much about trying random things until you got it correct and the exams were tough because he doesn't give a lot of practice problems. This class has a large emphasis on the labs that by the time it comes to the exam there isn't much prep

Helpful?

0 0 Please log in to provide feedback.
Quarter: Winter 2021
Grade: A-
COVID-19 This review was submitted during the COVID-19 pandemic. Your experience may vary.
March 13, 2021

this was literally the hardest class i took at ucla so far (way harder than 131, 111).

professor cong is a good lecturer, but there was just too much material covered in each lecture which made it difficult for students to follow the lecture. i am often lost around 20 min into lecture and have to spend a lot of effort on my own to reread the lecture slides. the quizzes each class that was graded on correctness made every class very stressful for me and not a great experience.

the labs in this class were incredibly difficult and require days of work to get to the A or B range performance. because of this class, i didn't get to spend as much time as i would like on my other courses at all. i understand his intention of having us learn through practical lab assignments, but the workload was just way too much. more hints and guidance or lower bar for an A range would be really appreciated. i literally spent HOURS on a optimization to optimize my code only to see my code SLOW DOWN. the amount of work you put in does not correlate at all to your performance.

the exams were very difficult, but they do give out partial credits.

you do learn a lot about parallel programming through this class, but it is just EXTREMELY time consuming. the TA Jason L was really nice though, so def attend discussion for hints on the lab. without TA jason's help, i definitely would have spent 5x more time on the lab.

Helpful?

0 0 Please log in to provide feedback.
Quarter: Winter 2018
Grade: A
March 28, 2019

Interesting class. Projects were very hard since I was doing it alone and there was competition for every project. And it took me days to finish any of them. But you will learn a lot from the class. I strongly recommend it.

Helpful?

0 0 Please log in to provide feedback.
Quarter: Spring 2017
Grade: A+
Nov. 3, 2018

Highly recommend this class. It gives you a good overview optimization through parallelism, and you get hands-on experience. Prof. Cong is pretty well known researcher in this area, and he does a pretty solid job of explaining the concepts in lectures.
There are a few written home-works, and there are participation quizes in class that count for a small portion of you grade, so you don't need to do them all but it's just an incentive to show up to class. Most of the work are assignments where you are given a piece of code (matrix multiplications or convolutions) and you have to optimize it on a specific hardware (CPU, GPU, FPGA) with a specific framework (openMP, MPI, openCL). They are graded based on how well you sped it up compared to your classmates, but as long as you get a reasonable speed-up you'll get an A so I wouldn't worry about that too much. TAs are very helpful so if you get stuck just go to their office hours and they'll help you out. Tests are pretty straightforward, asking about concepts in class + how you would optimize in theoretical scenarios. Overall a very useful and informative class with a pretty reasonable workload.

Helpful?

0 0 Please log in to provide feedback.
Quarter: Spring 2017
Grade: A
June 28, 2017

All projects and tests are fair game. Nothing too hard and they're all covered in class. TA office hour is very useful. Course is fast paced and you can learn some nice and relatively new things. No expensive textbook and you can get $100 AWS credit.

Helpful?

0 0 Please log in to provide feedback.
Quarter: Winter 2020
Grade: A-
March 31, 2020

Cong is a really good guy, and you can tell he genuinely cares about the students. However, I don’t think this class is particularly well-designed. It’s not bad, but I wouldn’t say it’s good, either.

The class is broken down into 7 labs, 3 homeworks, a midterm, a final, and participation (you could opt out of the final in my quarter, though, due to COVID-19). Each lab and homework is worth 5%, as is the participation grade (participation is tracked via in-class paper worksheets, where you’re asked a question on the lecture material. You get a 1/2 for just answering it, and a 2/2 if your answer is “reasonable.” There’s a worksheet every lecture). The midterm’s worth 20% and the final’s worth 25%.

The homeworks are fairly standard, though graded rather stringently. It’s not too difficult to hit at least an 80-85 on them, though. The midterm was fair but challenging, and I presume the final would’ve been, had it not been made more straightforward for those who didn’t opt out due to COVID-19. Check UPE for a midterm example if you’re so inclined.

My real issue was with the lecture setup, and the labs. For the lectures: a large chunk of lecture time was dedicated to explaining syntax for various parallelization languages/frameworks. In my opinion, this wasn’t a valuable use of time - beyond the basic concepts behind the language/framework, in-depth examinations of the syntax weren’t very useful. We already had to learn the syntax in a trial-by-fire sort of way to complete the labs, and so spending ~30 minutes of at least 5 lectures going over the absolute specifics of the API seemed wasteful (particularly when there were other theoretical concepts students were confused about). Plus, Cong’s slides aren’t the best - they’re the kind of slides that throw out a complicated answer, and then say, “can you see why that is?”, without actually explaining anything. He often would fill in those questions during lecture, but sometimes he didn’t.

On that note, his lecture style is straightforward, if a little boring. He goes through the slides on his iPad (projected on-screen), and annotates as he goes along. Sometimes this can get unclear if he’s trying to cram a lot of writing onto one slide, but it’s fine overall; just not super engaging.

For the labs: they’re interesting, and very worthwhile as you start them. Each week, you’re typically using some new language or framework to solve a problem, and are utilizing some cool hardware via AWS (you get $200 credit total, so cost is never an issue). However, the fun stops as soon as you finish ensuring your code is correct, and get to half-decent performance (both of which are very easy to check, as you’re always provided with some way to automatically test your code’s correctness and performance).

Basically, your lab grades are broken down into: 50% for correctness, 25% for performance (with extra credit opportunity), and 25% for your lab report. The report and the correctness are straightforward. The performance is relegated into bands, measured in GFlops - essentially how many operations your program is able to do per second. The bands change for each lab, but are usually something like: [0, 5): F (score: 0/25), (5, 15]: D (score: 10/25), (15, 45]: C (score: 15/25), etc. They changed the class so that all but the extra credit bands are set in stone prior to your submission, so you can always ensure you’re at least gonna be able to get 100%.

Getting into C, and even B, range is usually fairly straightforward, so long as you paid attention and understand the basics of the language/framework’s approach, and how best to exploit parallelism. Getting into A range can be quite annoying, however, and oftentimes relies on guessing-and-checking loop tile sizes, and how much manual unrolling you need to do. It’s more tedious than instructive, in my opinion, and can cause you hours of frustrating monotony.

Extra credit is offered for each and every lab, always in the form of an A+ and A++ range for performance. Basically: after everyone submits their labs, the TAs will determine the two ranges based on students who exceeded the A range band. So while you can guarantee yourself an A, and even an A+ (because you get performance above the A range), you’re never quite sure if you’re going to be capable of an A++ (there are some insanely smart people that were able to get crazy performance). Lab reports also sometimes offer extra credit in the form of bonus questions - usually relying on you at least semi-correctly explaining a theoretical concept in the context of the lab.

In all, labs are really interesting and fun, but the slog to get into A-range and beyond can suck up incredible amounts of time, and often feels more like guesswork than any real application of knowledge. That really puts a sour note on the class, and was my main point of dislike for the entire quarter.

In summary, I’d say this class is pretty solid. On a range from CS 130 (why am I taking this) to CS 32 (Smallberg is a god), it’s smack dab in the middle. You learn some interesting stuff, and it’s most likely going to be valuable in some capacity no matter what you do; but the actual class implementation can lead to a lot of unnecessary frustration and confusion. I’d say take it if you’re interested in the topic, but if you’re weighing this versus some interesting-sounding 188, go for the 188 (they’re rarely offered more than once during your 4-year stay).

Helpful?

1 0 Please log in to provide feedback.
Quarter: Winter 2020
Grade: A+
March 27, 2020

Professor Cong is great. His exams are straightforward, his projects are interesting, and he actually cares about his students. His projects are performance-based, so some fraction of each project grade depends on how fast your code is. That being said, it is decently easy to achieve A-range performance on pretty much every project, and once you beat A-range performance you get extra credit. It's fun to hear people discuss what optimizing techniques to use and the insane performance some people manage to get on these projects. There's only a few homeworks, and they're not bad. They are graded somewhat harshly, but extra credit from the labs helps make that up. His exams are very much straightforward. There were no tricks on the midterm, just stuff you would know from doing the homework and the problems in the slides. Also, because of COVID-19, he made a special low-stress final that was mostly just reflecting on your projects and analyzing what you could have done better, which was great (none of my other professors changed their final at all). He also immediately let people who needed to leave the area skip the final as soon as he was given department approval. My single criticism of Professor Cong is that his lectures can be a little boring because of his speaking style, but the slides are still good and I still think this is a great class.

Helpful?

1 0 Please log in to provide feedback.
Verified Reviewer This user is a verified UCLA student/alum.
Quarter: Fall 2024
Grade: A+
March 29, 2024

Overall - a pretty challenging class but definitely worth the amount of effort you put in. We learned a lot of useful concepts for industry as well as got access to programming on AWS instances with GPU, FPGA, CPU programming which was unique and challenging. Exams were difficult but doable given enough studying of lectures and practicing of problems. TAs were super helpful for the homework assignments and were a great resource for this quarter. The professor is super kind and lectures were easy to follow.

Helpful?

0 0 Please log in to provide feedback.
Verified Reviewer This user is a verified UCLA student/alum.
Quarter: Spring 2022
Grade: B+
June 11, 2022

One of the hardest cs classes I have taken. Labs were pretty much about trying random things until you got it correct and the exams were tough because he doesn't give a lot of practice problems. This class has a large emphasis on the labs that by the time it comes to the exam there isn't much prep

Helpful?

0 0 Please log in to provide feedback.
COVID-19 This review was submitted during the COVID-19 pandemic. Your experience may vary.
Quarter: Winter 2021
Grade: A-
March 13, 2021

this was literally the hardest class i took at ucla so far (way harder than 131, 111).

professor cong is a good lecturer, but there was just too much material covered in each lecture which made it difficult for students to follow the lecture. i am often lost around 20 min into lecture and have to spend a lot of effort on my own to reread the lecture slides. the quizzes each class that was graded on correctness made every class very stressful for me and not a great experience.

the labs in this class were incredibly difficult and require days of work to get to the A or B range performance. because of this class, i didn't get to spend as much time as i would like on my other courses at all. i understand his intention of having us learn through practical lab assignments, but the workload was just way too much. more hints and guidance or lower bar for an A range would be really appreciated. i literally spent HOURS on a optimization to optimize my code only to see my code SLOW DOWN. the amount of work you put in does not correlate at all to your performance.

the exams were very difficult, but they do give out partial credits.

you do learn a lot about parallel programming through this class, but it is just EXTREMELY time consuming. the TA Jason L was really nice though, so def attend discussion for hints on the lab. without TA jason's help, i definitely would have spent 5x more time on the lab.

Helpful?

0 0 Please log in to provide feedback.
Quarter: Winter 2018
Grade: A
March 28, 2019

Interesting class. Projects were very hard since I was doing it alone and there was competition for every project. And it took me days to finish any of them. But you will learn a lot from the class. I strongly recommend it.

Helpful?

0 0 Please log in to provide feedback.
Quarter: Spring 2017
Grade: A+
Nov. 3, 2018

Highly recommend this class. It gives you a good overview optimization through parallelism, and you get hands-on experience. Prof. Cong is pretty well known researcher in this area, and he does a pretty solid job of explaining the concepts in lectures.
There are a few written home-works, and there are participation quizes in class that count for a small portion of you grade, so you don't need to do them all but it's just an incentive to show up to class. Most of the work are assignments where you are given a piece of code (matrix multiplications or convolutions) and you have to optimize it on a specific hardware (CPU, GPU, FPGA) with a specific framework (openMP, MPI, openCL). They are graded based on how well you sped it up compared to your classmates, but as long as you get a reasonable speed-up you'll get an A so I wouldn't worry about that too much. TAs are very helpful so if you get stuck just go to their office hours and they'll help you out. Tests are pretty straightforward, asking about concepts in class + how you would optimize in theoretical scenarios. Overall a very useful and informative class with a pretty reasonable workload.

Helpful?

0 0 Please log in to provide feedback.
Quarter: Spring 2017
Grade: A
June 28, 2017

All projects and tests are fair game. Nothing too hard and they're all covered in class. TA office hour is very useful. Course is fast paced and you can learn some nice and relatively new things. No expensive textbook and you can get $100 AWS credit.

Helpful?

0 0 Please log in to provide feedback.
1 of 1
3.6
Overall Rating
Based on 12 Users
Easiness 2.5 / 5 How easy the class is, 1 being extremely difficult and 5 being easy peasy.
Clarity 3.2 / 5 How clear the class is, 1 being extremely unclear and 5 being very clear.
Workload 2.8 / 5 How much workload the class is, 1 being extremely heavy and 5 being extremely light.
Helpfulness 4.1 / 5 How helpful the class is, 1 being not helpful at all and 5 being extremely helpful.

TOP TAGS

  • Uses Slides
    (6)
  • Would Take Again
    (6)
ADS

Adblock Detected

Bruinwalk is an entirely Daily Bruin-run service brought to you for free. We hate annoying ads just as much as you do, but they help keep our lights on. We promise to keep our ads as relevant for you as possible, so please consider disabling your ad-blocking software while using this site.

Thank you for supporting us!