COM SCI 174A
Introduction to Computer Graphics
Description: Lecture, four hours; discussion, two hours; outside study, six hours. Enforced requisite: course 32. Basic principles behind modern two- and three-dimensional computer graphics systems, including complete set of steps that modern graphics pipelines use to create realistic images in real time. How to position and manipulate objects in scene using geometric and camera transformations. How to create final image using perspective and orthographic transformations. Basics of modeling primitives such as polygonal models and implicit and parametric surfaces. Basic ideas behind color spaces, illumination models, shading, and texture mapping. Letter grading.
Units: 4.0
Units: 4.0
Most Helpful Review
The problem with this class is it is better suited for math majors than computer scientists. There is definetely more math involved than programming, and that's the stuff that's not on the course description. I mean we are computer scientists, not mathematicians. The amount of math we have to learn is staggering. Other than that, the first two projects were fun, the third a killer. It's only because the prof and ta don't help you enough, no matter how many times you badger them. It's tough stuff, but they don't set up enough groundwork. This class is more theory than praticality, and I would loved for the prof to show more practical stuff in lectures, which were entirely theory His exams are really hard...and the curve won't help cause there are always a few 30+ experienced programmers who are undergrads around... and btw, the lectures are really boring
The problem with this class is it is better suited for math majors than computer scientists. There is definetely more math involved than programming, and that's the stuff that's not on the course description. I mean we are computer scientists, not mathematicians. The amount of math we have to learn is staggering. Other than that, the first two projects were fun, the third a killer. It's only because the prof and ta don't help you enough, no matter how many times you badger them. It's tough stuff, but they don't set up enough groundwork. This class is more theory than praticality, and I would loved for the prof to show more practical stuff in lectures, which were entirely theory His exams are really hard...and the curve won't help cause there are always a few 30+ experienced programmers who are undergrads around... and btw, the lectures are really boring
AD
Most Helpful Review
Winter 2017 - Let me just start by saying that I loved this class and that Scott is a true homie. However, that does not mean this class is easy, even if it is an easy A. Let me also preface this with the fact that I had 0 graphics experience before this class. *** TL;DR: Easy to get an A, but not necessarily an easy class. Not a lot of projects, but projects can take a while depending on how good you are at graphics. Exams are easy. Final project is group project, so either take class with friends or hope the group you get in does their work. You don't need the textbook. Uses Piazza. *** Grading is broken down into 4 assignments, the final term project, and optional midterm and final exams. The class is graded on a point system, aka you need 950 for an A-, 1000 points to get an A, 1100 for an A+. The four assignments are worth a total of 350 points including 50 points of extra credit (so 300 points without EC). The final project was out of 600 points, and the midterm was 150 points. The final was 140 points. I believe in past quarters you only needed 900 or 950 to get an A, so it's a bit harder to get an A nowadays. *** The four assignments are broken down as follows: 0. A joke. Literally just make it run and you get a startling total of 0 points. Lol. 1. One of the harder assignments in the sense that you have no idea what you're doing (unless you have previous experience). Looking back, it was a pretty simple project, but at the time I was like wtf how do I render a cube idk man. Once you get "boilerplate" aka "hello world" up, it's smoother sailing from there. This was 100 pts w/ 30 pts EC. 2. Cool planet assignment. TA gave us template code that was useful and made the project much easier. 150 pts, no EC. 3. Simple texturing assignment. Easy. 50 pts, 20 pts EC. The reason it's easy to get an A is that if you do the assignments and do the exams, you will get the points. It's very clear whether or not you're going to get the points… either you implemented the requirement listed, or you didn't. If you don't do the assignments, then you're not going to get the points and you won't get the grade you want. Easy as that. Scott writes out the point values of each feature you have to implement, so it's really all on you to get the points you need. *** The midterm and final exams are "optional" in the sense that if you need the points, then take them and get those points. If you don't, don't. If you don't want an A, then you don't need to take the exams. Etc. etc. etc. The midterm was either a paper exam with short answers or a hackathon for up to 4 hours with the theme "data visualization". You could choose either option. The final was 40 MC, 3 points each with 20 pts EC. Both exams were open note. *** Scott's lectures are more theoretical, but his slides tell you everything you need to know for exams. Starting assignments with just his slides can be more challenging, but TAs in discussion show you some example code and help you get started. Most of the material can be found in the textbook, which is NOT required to get because there is no mandatory reading and it isn't really helpful for the assignments. Discussion is generally a bit of theory and then the TAs show how to implement some feature. Not critical, but helpful for the final project to get special topics implemented. *** The final project was 600 points, but there were EC points for most impressive and class favorite. Only the projects with the top 3 votes in each category got points, but I think it would have been better if for every vote, the team got like 10 EC points. The group project could be 3-5 people, and more people meant more features you were required to implement. Group members grade each other, too, but otherwise get the same score on the projects. It could basically be any project you want, but you have to submit a proposal to Scott to get confirmed as an acceptable project. *** I think the class was worth taking, and the final project is definitely something worthy of a resume (unless you don’t put any effort into it). Definitely cool to learn WebGL and once you know how, pretty easy to create something to stick into any website.
Winter 2017 - Let me just start by saying that I loved this class and that Scott is a true homie. However, that does not mean this class is easy, even if it is an easy A. Let me also preface this with the fact that I had 0 graphics experience before this class. *** TL;DR: Easy to get an A, but not necessarily an easy class. Not a lot of projects, but projects can take a while depending on how good you are at graphics. Exams are easy. Final project is group project, so either take class with friends or hope the group you get in does their work. You don't need the textbook. Uses Piazza. *** Grading is broken down into 4 assignments, the final term project, and optional midterm and final exams. The class is graded on a point system, aka you need 950 for an A-, 1000 points to get an A, 1100 for an A+. The four assignments are worth a total of 350 points including 50 points of extra credit (so 300 points without EC). The final project was out of 600 points, and the midterm was 150 points. The final was 140 points. I believe in past quarters you only needed 900 or 950 to get an A, so it's a bit harder to get an A nowadays. *** The four assignments are broken down as follows: 0. A joke. Literally just make it run and you get a startling total of 0 points. Lol. 1. One of the harder assignments in the sense that you have no idea what you're doing (unless you have previous experience). Looking back, it was a pretty simple project, but at the time I was like wtf how do I render a cube idk man. Once you get "boilerplate" aka "hello world" up, it's smoother sailing from there. This was 100 pts w/ 30 pts EC. 2. Cool planet assignment. TA gave us template code that was useful and made the project much easier. 150 pts, no EC. 3. Simple texturing assignment. Easy. 50 pts, 20 pts EC. The reason it's easy to get an A is that if you do the assignments and do the exams, you will get the points. It's very clear whether or not you're going to get the points… either you implemented the requirement listed, or you didn't. If you don't do the assignments, then you're not going to get the points and you won't get the grade you want. Easy as that. Scott writes out the point values of each feature you have to implement, so it's really all on you to get the points you need. *** The midterm and final exams are "optional" in the sense that if you need the points, then take them and get those points. If you don't, don't. If you don't want an A, then you don't need to take the exams. Etc. etc. etc. The midterm was either a paper exam with short answers or a hackathon for up to 4 hours with the theme "data visualization". You could choose either option. The final was 40 MC, 3 points each with 20 pts EC. Both exams were open note. *** Scott's lectures are more theoretical, but his slides tell you everything you need to know for exams. Starting assignments with just his slides can be more challenging, but TAs in discussion show you some example code and help you get started. Most of the material can be found in the textbook, which is NOT required to get because there is no mandatory reading and it isn't really helpful for the assignments. Discussion is generally a bit of theory and then the TAs show how to implement some feature. Not critical, but helpful for the final project to get special topics implemented. *** The final project was 600 points, but there were EC points for most impressive and class favorite. Only the projects with the top 3 votes in each category got points, but I think it would have been better if for every vote, the team got like 10 EC points. The group project could be 3-5 people, and more people meant more features you were required to implement. Group members grade each other, too, but otherwise get the same score on the projects. It could basically be any project you want, but you have to submit a proposal to Scott to get confirmed as an acceptable project. *** I think the class was worth taking, and the final project is definitely something worthy of a resume (unless you don’t put any effort into it). Definitely cool to learn WebGL and once you know how, pretty easy to create something to stick into any website.
Most Helpful Review
Fall 2022 - For a computer science class, this class doesn't do a lot of coding. The lectures are all math/concept-based, with the first half of the course primarily involving matrices, and the second half involving algebra and just knowing the concepts. Lectures are fairly engaging and he uses slides but they don't cover everything and he usually writes most things on whiteboard. Discussion sessions are where all of the coding happens... except the TAs aren't really the best at explaining the code, since it's from an obscure JavaScript library made solely for this course, therefore there's not much outside help. I didn't know JavaScript before this class, and there was only a small effort to teach the basics, so I had to self-learn quite a bit. Like I mentioned, TAs don't explain the code that well and usually just show screenshots of code from slides and a few demos. There's also a group project which involves 3 people and you can make anything as long as it has an advanced graphical feature. As for the tests, the midterm was fair, but the final was really hard and ended up tanking my grade to a B+. Major time crunch too. But overall the workload is doable, with only 3 graded assignments, two exams, and a group project. I'd recommend this course if you know javascript and matrices pretty well and need a course with an easy workload.
Fall 2022 - For a computer science class, this class doesn't do a lot of coding. The lectures are all math/concept-based, with the first half of the course primarily involving matrices, and the second half involving algebra and just knowing the concepts. Lectures are fairly engaging and he uses slides but they don't cover everything and he usually writes most things on whiteboard. Discussion sessions are where all of the coding happens... except the TAs aren't really the best at explaining the code, since it's from an obscure JavaScript library made solely for this course, therefore there's not much outside help. I didn't know JavaScript before this class, and there was only a small effort to teach the basics, so I had to self-learn quite a bit. Like I mentioned, TAs don't explain the code that well and usually just show screenshots of code from slides and a few demos. There's also a group project which involves 3 people and you can make anything as long as it has an advanced graphical feature. As for the tests, the midterm was fair, but the final was really hard and ended up tanking my grade to a B+. Major time crunch too. But overall the workload is doable, with only 3 graded assignments, two exams, and a group project. I'd recommend this course if you know javascript and matrices pretty well and need a course with an easy workload.
AD
Most Helpful Review
So far, he's been pretty good. He's not the most interesting teacher, but he's also the only teacher I've noticed at UCLA that uses the correct notation (ie, Wikipedia's notation) for matrix operations, etc. Will add more later if he turns out to be terrible or something, but I like him so far.
So far, he's been pretty good. He's not the most interesting teacher, but he's also the only teacher I've noticed at UCLA that uses the correct notation (ie, Wikipedia's notation) for matrix operations, etc. Will add more later if he turns out to be terrible or something, but I like him so far.
Most Helpful Review
Winter 2020 - The professor usually plays some animated shorts at the beginning of lecture which are pretty interesting. His lectures however are straight from the powerpoint and pretty dry. Our midterm was only 10 multiple choice questions so it was pretty stressful... for the most part the questions were easy and there was an extra credit question that is usually about WebGl. The final project was honestly pretty fun as you can create anything you want to display graphical elements and I had some OP teammates who made our project a lot better. The tiny graphics API that we use, however, is not user friendly and there is not much documentation on it so I'm honestly not sure if the things we learned when using it will be of much help. Shoutout to Yunqi Guo for being an awesome TA, he discussion sections really helped me understand the material more and he's really nice but a bit soft spoken.
Winter 2020 - The professor usually plays some animated shorts at the beginning of lecture which are pretty interesting. His lectures however are straight from the powerpoint and pretty dry. Our midterm was only 10 multiple choice questions so it was pretty stressful... for the most part the questions were easy and there was an extra credit question that is usually about WebGl. The final project was honestly pretty fun as you can create anything you want to display graphical elements and I had some OP teammates who made our project a lot better. The tiny graphics API that we use, however, is not user friendly and there is not much documentation on it so I'm honestly not sure if the things we learned when using it will be of much help. Shoutout to Yunqi Guo for being an awesome TA, he discussion sections really helped me understand the material more and he's really nice but a bit soft spoken.