Donald Yeung

This professor has taught: EDSP652, ENEE150, ENEE446, ENEE488, ENEE646
Information Review
Donald Yeung
ENEE446

Expecting an A
Anonymous
05/23/2024
Throughout the entire semester, I was debating what my final opinion on Dr. Yeung was going to be. After my grade came back, and after everything this semester, the answer has become clear. He is one of my favorite professors I've taken a class with. The one point against this class I'll give is in the assignments. Quite frankly, particularly with problem set 1, I didn't find the textbook problems to help with my learning all that much. The problems were really confusing sometimes, and the solutions didn't make much sense in certain instances. The textbook itself was pretty good (Computer Architecture: A Quantitative Approach), but the problems weren't. Also, while the two projects were good in the sense that they forced me to understand pipelining and caching, the first project was difficult to get started in due to a lack of guidance on how to use the code which was given to us, and the second project had some minor hiccups with the information given to us (or rather, lackthereof). With that said, since the class is curved, my issue isn't significant enough to bring down my rating. On that note, I don't think he'll do something quite this drastic in the future, but due to how poor the project 1 average was, Dr. Yeung made project 2 have 50% of extra credit (only the first 100% counted towards the curve). From the fact that the median on ELMS was 150, most of the class got the full extra credit on the project. I'd bet it's the only reason I got an A in the class, even though I can't know for sure since the cutoffs were made behind the scenes. Generally, this class is not designed to fail students. It's really appreciated, especially since I was seriously struggling in the first half of the course. The projects themselves, once I figured out the objective, were honestly very useful. Going into ENEE446, Dr. Yeung expected us to have come in with a pretty good picture of pipelining. Due to how the professors last semester taught, this wasn't the case, and I think this was realized very early on in the semester. For my case, I was in office hours for problem set 1 for quite awhile, especially for the pipelining problem, and I just couldn't get it. I didn't know the objective of the problem because it was badly written, but more importantly, I didn't grasp pipelining. It stayed this way until I forced myself to get something working on project 1, which had us implement a 4-stage pipeline for a 32-bit RISC-V simulator. I didn't finish the project because I started far too late for my own good, but after doing what I could do for it, I felt much more confident about describing pipelining and hazards. Something similar happened for project 2 and caching. I was vaguely familiar with caching from ENEE350 since we had it on an assignment and the final, but I certainly didn't understand what I was doing (I really didn't get much from that class). The project was implementing a trace simulator for single and multi-core caches, and it forced me to really understand what I was doing with caching, just like project 1 and pipelining. The single core portion solidified my understanding of what the cache was doing to begin with, and the multicore portion got me to understand the MESI protocol. Again, there were hiccups with both projects, especially project 1. But I feel that what I learned from doing them outweighs their problems, even though they should be addressed in the future. Honestly, I wish we had a mini-project on out-of-order execution, as we had no practice on it before our first exam. Speaking of the exams, they were pretty fair. They were open book and open note, but closed internet. We were allowed to use our devices for digital textbooks, our notes if they were digitally recorded, and a calculator. The exams were pretty straightforward with plenty of time to get them done, and they didn't have any trick questions or anything. The weights of each section of both exams felt appropriate, as major topics within the course were emphasized with larger weights, whereas smaller topics typically weren't weighted as heavily. It's night and day compared to my ENEE350 exams, where 40% of the midterm and 33.33% of the final consisted of a small number of poorly written multiple choice questions. I did screw up the midterm because of my lack of understanding of the reorder buffer, but the final went a lot smoother. Dr. Yeung is a fantastic communicator. In ENEE350, one of my main problems was that, while the professor knew what he was talking about, he wasn't great with communicating the concepts. The lectures were very neatly written, but they ultimately didn't communicate much, and the slides were far too long for their own good. By contrast, Dr. Yeung's lectures were both delivered extremely well, and were very informative. I wish I was someone who got more out of lectures, because these were simply fantastic. Also, if you can go to office hours, I highly recommend going. Under normal circumstances, they are held both in-person and online, so your only excuse is really a time conflict. His primary goal is to help you learn, and even when I would lose confidence and try and back out, and even when his voice wasn't doing so great due to a sickness (during a Zoom office hours session), he would not back down until I would have a satisfactory understanding of the problem or subject at hand. He carries the same expertise of communicating computer architecture concepts into office hours, and it's arguably even better there because he can pick up where a disconnect in understanding is and tailor his explanations accordingly. I cannot recommend going to office hours enough if you have any doubt about anything. Even if it's not about something related to class, he is very approachable, especially towards the beginning of the semester where less is going on. One final note about the class. Unfortunately, we only got a single lecture on GPUs, which is a shame because that lecture was really interesting (if a bit rushed). Dr. Yeung has stated that he wanted to do more with this topic, but too much time was spent in other topics this semester, so future iterations of the course will likely spend more time on GPUs. Overall, if you can take a class with Dr. Yeung, take it. I'll admit that I'm pretty bad at computer architecture, but I can't deny that I learned so much from being in this class. If you're taking him for ENEE646 in the fall, which he describes as the class I just took but slightly more due to it being a grad course, you will have a good time. If he's an option for ENEE446 in the spring, he has my highest recommendation. I heard he's great for ENEE150 in the spring as well. It may be harder than with other professors, but the class isn't designed to fail people, and what I've taken away from this course is invaluable.
Donald Yeung
ENEE150

Expecting a B+
Anonymous
06/05/2023
I personally found his lectures too long (1 hour and 15 minutes), and it felt like he would keep repeating the same information. But, he does cover everything that needs to be covered and explains things pretty well. There are 2 midterms and a final, 4 projects, and 4 quizzes. Quizzes aren't too bad, and I found the second midterm to not be that bad. But the first midterm and final were fairly challenging. If you put in the effort, you can get the grade you want, but it is hard. I had an 83.62% and ended with a B+, so the curve is also pretty decent. You'll definitely learn what you need to and a little extra. Just be prepared to always have an assignment to work on or a test to study for.
Donald Yeung
ENEE150

Expecting an A
Anonymous
05/08/2023
Really good teacher. Class is hard but you learn a lot and come out a MUCH better programmer. Yeung is really knowledgeable, charismatic, and very helpful, especially if you go to his office hours. Really cares about his students and helps you be successful, especially on the projects. If you have the choice, take it with him.
Donald Yeung
ENEE150

Expecting an A
Anonymous
05/25/2022
Dr. Yeung is definitely one of my favorite ECE professors. For starters, he's really personable and enthusiastic when you talk to him and when he teaches. He goes above and beyond to try to help his students, and he encourages you to reach out and talk to him. He is also very knowledgeable on the course he teaches, which is definitely reassuring. In terms of the course, our lecture portion of the course was designated in covering the concepts needed for our assignments. My only critique about the lectures is that he would spend quite a lot of time talking through pre-coded examples, which some might find beneficial (but for me it wasn't). The examples were helpful for the assignments given to us, many of which you could take the code directly from. We had 4 projects, 4 pop quizzes and 3 homework assignments over the semester. We used discussion section time to cover the lecture's content again, the TA's offering a lot of assistance in clarifying concepts while providing helpful examples for assignments. With all of this being said, ENEE150 is a tough course. As someone who took ENEE150 without taking ENEE140 (credits covered by another course), I had no background in C, but by the end of the course I felt relatively comfortable with most of the concepts. However, this experience might not be shared by everyone. Projects had a 2-week deadline, but they were pretty time-consuming. I would normally spend about a week on each project, but thankfully, I thought all of them were pretty cool and interesting. Some were easier than others, but completion of them relied a lot on learning outside of class. One really great thing about Dr. Yeung is that he would hold additional office hours for the projects close to their due dates; this would include weekend office hours and multiple office hours on the same day. Exams were probably the most feared part of the course. Practice exams were not offered, so in order to study, you would be dependent on the coding examples from lectures and from the TA's. While exams were open-notes, the averages for the midterms and final were in the 60's. The reassuring part of all of this is that Dr. Yeung heavily curves the final grade for this course; it was probably an 8-10% curve, which was surprising even for me. Overall, I would highly recommend Dr. Yeung. You are going to have to work a lot for this course, but you will definitely leave the course with a lot of knowledge about C.
Donald Yeung
ENEE150

Expecting a C+
Anonymous
02/02/2021
I didn't get a bad grade in this course because of professor yeung, I got a bad grade because I suck at coding. That being said, it was because of Dr yeung that I did not get a worse grade than what I got. He was an extremely good lecturer. I could tell he was very passionate about what he does. Unfortunately, the online environment hindered him because he wasn't really able to ask questions and interact with his class, but this is not a reason to rate him any less than a 5. He was always willing to help out if you reached out, and held additional office hours at opportune times. Homeworks and projects don't overlap, so you aren't dying with assignments. Projects were fairly hard, but also prepared you well for exams, and overall, I felt like I learned a lot and did better than I thought I would
Donald Yeung
ENEE446

Expecting a B
Anonymous
05/24/2020
Tough course, but very good lectures and you will learn a lot. I also had him for ENEE150 and thought he was a good professor for that as well; certainly the best out of him, Hawkins and Qu.
Donald Yeung
ENEE150

Expecting an A
Anonymous
12/29/2019
I have mixed feelings about Dr. Yeung's teaching style. I respect him immensely, as his passion for the subject is very clear in his lectures and through the involved and engaging classwork that he assigns, however after finishing 150 I don't feel that it was taught as well as it could've been. I might be an odd person out here, but I found it incredibly hard to focus during his lectures. Especially when getting into the meat of the class - data types - I felt that his lectures were a little too high level for me to stay focused. By this I mean that he did a good job explaining conceptually what different data types and structures represent, and especially how they integrate with computer hardware, but I feel that he didn't focus enough on software implementation. He did use many code examples to try to make up for this, but personally I felt that the examples he used were way too complicated for a lecture in terms of gaining a quick understanding of implementing a new data type. They are useful for studying at home when one can dive deep into understanding the programs, but they're often too involved for the purposes of an intro lecture. Maybe other people could follow the code examples better than I could, but I consider myself to be a pretty bright guy and I could absolutely never pick up on the real-time code examples fast enough to follow. I loved his projects. They were hard, but really rewarding. The projects are actually useful extensions of what we learned in class and almost every exam problem can be traced back to something on a project. I probably spent about 8-15 hours on each project, usually in two or three days, and ended up with high A's on all of them. If you work with and pass his given test vectors you're basically guaranteed an A, but it does take a lot of time and effort to do so. The exams are fair. They are difficult though. Thankfully, the midterms and final only count for 35% of the final grade, so these aren't major stressors throughout the course. In the end, I have mixed feelings about this course. Yeung certainly does a great job running this class, and you'll end up with a lot of knowledge about C. I mainly just wish that his lectures could be restructured to be more engaging, by focusing on easy-to-grasp examples for coding implementation of new concepts. For reference of difficulty in this course, I found it to be more difficult and time-consuming than ENEE222 (Papa) and ENEE205 (Murphy) to get an A in.
Donald Yeung
ENEE446

Expecting a B
nailaoball
01/24/2019
Great professor who is extremely knowledgeable bout the subject matter. Lectures are extremely interesting as a CE major. It's a tough class but very rewarding. The projects in the class are extremely relevant and engaging but they do take a lot of time. Do yourself a favor and start early to get ahead of the curve.
Donald Yeung
ENEE150

soulelite
09/30/2016
It seems that every course that Yeung teaches is very challenging, but he is also a very good professor that is able to explain concepts very well. Do not procrastinate on the projects or you won't finish, seriously.
Donald Yeung
ENEE150

Expecting a B
Anonymous
06/29/2015
By far my favorite professor! He cares so much about his students and will always make time for you! Take Yeung for every course that you possibly can.
Donald Yeung
ENEE150

Expecting a B
nbadami
05/06/2014
I'll start of by giving the downsides of professor Yeung. His 150 class is HARD. I took 140 my first semester and had no trouble at all in that class. I thought 150 would be roughly the same but its not. He usually gives 2 weeks per project and the projects usually take that amount of time. I think I only completed one project in it's entirety, not because I didn't know how to do them, but because they are that time consuming and I ran out of time. Whenever you get a project in this class, make your best effort to start it on day 1. Aside from that, Yeung is a great professor. He explains the content really well and is really REALLY helpful. I cannot stress that enough. This guy is like the C whisperer. He makes his best effort to help all students who come to him for help on projects, and almost every time does a good job of finding your problem and helping you fix it. If you send him problems early enough, he will even de-bug your code for you, saving you a lot of time. He is also quite reasonable. I missed two of the four quizzes, and he allowed me to take the average of the third and fourth quiz as my grades for the first two. His midterms are also reasonable. They aren't difficult, just there to make sure that you know the material. If you do, you will usually get at least a B, even with minimal studying. Overall, don't expect to get an easy A in this class. If you want an easy A, look to Hawkins (though I hear hes a terrible professor). If you're looking to learn how to program in C, then Yeung is your guy. Even if you don't get an A in the class, you will come out of the semester with a really strong understanding of the language.
Donald Yeung
ENEE150

Expecting an A
Anonymous
11/21/2013
Yeung is a great teacher and explains the material pretty well. His lectures can get a bit boring at times, but overall very solid at teaching the content.
Donald Yeung
ENEE150

Expecting an A
Anonymous
12/21/2011
One of the best teachers I have ever seen when it comes to teaching. If you don't have much programming experience this class will be hard at first, and you'll need to put in some extra effort. That being said, his exams aren't tricky, they're just there to make sure you know concepts.
Donald Yeung
ENEE150

Expecting an A
Anonymous
06/07/2011
Best professor I have had at UMD. He is an amazing lecturer, who really cares about whether or not the students are learning. My best advice is go to lecture!..Start on projects early! You will get an a if you miss no lecture or discussion, and put in an effort. Overall, he makes this class a good/interesting learning experience
Donald Yeung
ENEE150

Expecting an A
frapis
11/16/2010
Very very very good. Take this professor. Avoid Hawkins. He is straightforward, clear, logical, and won't trip you up on the tests.
Donald Yeung
ENEE150

Expecting an A
mdterp12
05/19/2010
Great professor. This is a really smart man who really knows how to run a class well. Fair quizes, very fair tests. Tough projects but I learned a lot from them. Will most definitely take this professor again if I come across him.
Donald Yeung

Expecting a B
ddaily
04/28/2009
Yeung is a good professor whos lectures are very planned but informative. The big projects he gives are very important and it really helps to get started early on those. The class is tough but not impossible. Also NEVER turn anything even a minute late because he will not give you credit no matter what.
Donald Yeung

Expecting an A
terpslaX
01/14/2009
Professor Yeung is very helpful, the class can be difficult especially if you don't have prior programming experience but just go get help from yeung, he helps out alot and if you fall behind early its almost impossible to catch back up.
Donald Yeung

garyf45
04/29/2008
most horrible class ever!!! dont take it