Professor Guide — UofA CS Department¶
This guide is based on RateMyProfessors data (ratings, difficulty, would-take-again %, student reviews) and r/uAlberta student discussions. Ratings are as collected from RMP; individual experiences vary.
A note on RMP scores: A low rating doesn't always mean a bad professor, and a high rating doesn't always mean an easy one. Some of the most educational experiences in this department come from demanding professors with mid-tier RMP scores. Look at the difficulty score and would-take-again % together with the rating to get a real picture.
Full Ratings Table¶
| Professor | Rating | Difficulty | Would Take Again | # Ratings |
|---|---|---|---|---|
| Jonathan Schaeffer | 4.7/5 | 3.8/5 | 100% | 6 |
| Osmar Zaiane | 4.6/5 | 2.7/5 | 95% | 66 |
| Michael Bowling | 4.6/5 | 2.⅗ | 100% | 15 |
| Omid Ardakanian | 4.5/5 | 3.5/5 | 100% | 6 |
| Adam White | 4.⅗ | 2.8/5 | 80% | 10 |
| Abram Hindle | 4.⅕ | 2.8/5 | 74% | 45 |
| Dale Schuurmans | 4.⅕ | 3.⅕ | 100% | 7 |
| Joerg Sander | 4.0/5 | 2.7/5 | 74% | 28 |
| Lorna Stewart | 3.9/5 | 3.0/5 | 86% | 25 |
| Zachary Friggstad | 3.7/5 | 3.⅕ | 71% | 14 |
| Jose Amaral | 3.7/5 | 4.0/5 | 64% | 69 |
| Leah Hackman | 3.7/5 | 2.⅘ | 71% | 9 |
| Ioanis Nikolaidis | 3.5/5 | 3.8/5 | 71% | 9 |
| Russ Greiner | 3.5/5 | 3.⅘ | 75% | 16 |
| Sarah Nadi | 3.⅘ | 3.9/5 | 59% | 17 |
| Richard Sutton | 3.⅕ | 4.⅗ | 33% | 13 |
| Csaba Szepesvari | 3.⅕ | 3.⅘ | 25% | 23 |
| Eleni Stroulia | 2.8/5 | 3.⅘ | 50% | 26 |
| Martin Mueller | 2.7/5 | 3.0/5 | 32% | 35 |
| Mario Nascimento | 2.7/5 | 3.⅗ | 12% | 34 |
| Karim Ali | 2.7/5 | 4.⅗ | 41% | 27 |
| James Wright | 2.6/5 | 3.8/5 | 45% | 11 |
| Martha White | 2.6/5 | 4.0/5 | 36% | 40 |
| Guohui Lin | 2.5/5 | 4.⅕ | 39% | 200 |
| Davood Rafiei | 2.5/5 | 3.5/5 | 32% | 94 |
| Ehab Elmallah | 2.⅘ | 3.6/5 | 27% | 44 |
| Paul Lu | 2.⅖ | 4.⅕ | 16% | 113 |
| Ken Wong | 2.⅕ | 3.⅗ | 11% | 38 |
| Michael Buro | 2.0/5 | 4.⅗ | 16% | 62 |
| Hazel Campbell | 2.0/5 | 3.7/5 | 22% | 80 |
| Denilson Barbosa | 2.0/5 | 3.8/5 | 26% | 100 |
| Randy Goebel | 1.8/5 | 3.7/5 | 23% | 30 |
| Nidhi Hegde | 1.⅗ | 3.8/5 | 6% | 62 |
| Matthew Taylor | N/A | N/A | N/A | 0 |
Professor Tier List¶
Based on RMP ratings, would-take-again percentages, and Reddit student sentiment. Tiers reflect teaching quality and student experience, not research prestige.
S Tier — Seek these out¶
Jonathan Schaeffer | Osmar Zaiane | Michael Bowling
These are the professors students go out of their way to register in. High ratings (4.6–4.7), high or near-100% would-take-again, and Reddit consistently backs up the RMP numbers.
Omid Ardakanian is borderline S — 4.5/5, 100% would-take-again, and very positive Reddit mentions. Small sample (6 ratings) but consistent.
A Tier — Good professors worth registering for¶
Adam White | Abram Hindle | Dale Schuurmans | Joerg Sander | Lorna Stewart | Ioanis Nikolaidis | Zachary Friggstad | Russ Greiner
Solid teaching, good student outcomes, manageable quirks. Most of these professors are actively helpful and genuinely care about students succeeding. Nikolaidis and Friggstad are demanding but rewarding — their lower absolute ratings partly reflect difficulty, not poor teaching.
B Tier — Decent, some reservations¶
Jose Amaral | Leah Hackman | Sarah Nadi | Eleni Stroulia | James Wright
Mixed bags. Amaral (3.7/5 overall) is actually excellent for 229 — the demanding workload drives down ratings despite him being a strong teacher. Nadi is considered by some students the best 201 teacher available despite mediocre ratings. Stroulia and Wright have real issues (clarity, accessibility) but students pass. Hackman is still developing as a teacher.
C Tier — Below average, take only if no other option¶
Richard Sutton | Csaba Szepesvari | Martin Mueller | Davood Rafiei | Martha White
These professors have significant teaching weaknesses — unclear lectures, poorly designed assessments, content that doesn't match tests — but are not universally terrible. Sutton is genuinely brilliant; his low scores reflect an inability to pitch content at undergraduate level. Mueller reportedly makes 204 easier to pass even if not to learn from. Rafiei is overhated by students who found the course hard.
D Tier — Actively avoid if possible¶
Guohui Lin | Paul Lu | Ehab Elmallah | Ken Wong | Michael Buro | Mario Nascimento | Hazel Campbell | Denilson Barbosa | Randy Goebel
Consistent patterns of student dissatisfaction at scale. Most have 100+ reviews with persistent themes: unclear expectations, inconsistent grading, outdated or irrelevant material, poor availability. Some (Buro, Lin) teach courses that are hard regardless, but they compound an already-difficult situation. Ken Wong's defining issue is never returning marks — students sometimes finish an entire semester without knowing their grades.
F Tier — Worst teaching experience in the department¶
Nidhi Hegde | Karim Ali (for 229 specifically)
1.⅗ rating, 6% would-take-again, 62 reviews for Hegde. That's not a sample size artifact — it's a documented pattern. Students describe late assignment postings, unanswered forum questions, unintelligible handwritten notes, and exams with no practice material. If Hegde is teaching a course you need, seriously consider waiting a semester.
Professor Profiles — Key Faculty¶
Jonathan Schaeffer — S Tier | Rating: 4.7/5¶
Courses: CMPUT 379 (Operating Systems), occasional 175
The former chair who famously spent 17 years building Chinook (the first computer program to solve checkers). When he teaches 379, it becomes a legitimate highlight of students' degrees.
Teaching style: Lectures combine technical material with personal stories from his computing career. Assignments are difficult and take real effort, but they're clearly designed to produce learning. "He had tons of interesting stories that made the class engaging. The assignments were very difficult, but you will learn a ton and will set you up well."
Heads-up: His exams can be longer than the allotted time — the class is typically curved. "Both exams were much longer than they should have been, however the class was curved accordingly." Go in knowing that, and don't panic mid-exam.
Osmar Zaiane — S Tier | Rating: 4.6/5¶
Courses: CMPUT 175, occasionally others
A data mining researcher who somehow became the best introductory programming teacher in the department. Enthusiastic to a degree that students find genuinely infectious.
Teaching style: Uses physical props in lectures (volleyballs, toys) to demonstrate programming concepts. Calls on random students at the start of class — but provides hints and prizes, not shame. Heavy workload (3–4 assessments per week in some semesters) but students consistently say they learn more in his class than in others. "Fantastic prof, the best prof in CS so far. He is very enthusiastic and obviously loves teaching."
Heads-up: The workload is real. If you're taking other heavy courses simultaneously, factor in that Zaiane's section will have more weekly homework than average.
Michael Bowling — S Tier | Rating: 4.6/5¶
Courses: CMPUT 274/275, 101, 366
A DeepMind researcher who taught the AI that defeated world poker champions. Surprisingly accessible and enthusiastic in undergraduate courses.
Teaching style: Makes abstract concepts concrete through examples and jokes. "This guy is an awesome professor, especially good at teaching the tangible computing classes. His lectures were easy to follow and he kept them interesting with jokes." Described as quickly grasping what students don't understand and helping them get it rather than just giving answers.
Heads-up: For 274/275, the course pace can still feel fast if you have no prior experience. The challenge is the curriculum, not the instructor.
Abram Hindle — A Tier | Rating: 4.⅕¶
Courses: CMPUT 301 (Software Engineering), 401, 660
Industry veteran who brings real-world credibility to software engineering courses. "In a department that's terrible, this guy shines." Active participation marks (in-class worksheets) mean you need to show up.
Teaching style: Excellent slides, goes on tangents, runs worksheets nearly every class. Very good at explaining industry context. Can be inconsistent on course rules and occasionally unclear about expectations. "Good lecturer but will go on tangents and the course felt disorganized."
Heads-up: Make sure you form a good group for the 301 project. Hindle doesn't intervene in group conflicts. "When our group had problems, we didn't get much support and were told to handle it ourselves."
Dale Schuurmans — A Tier | Rating: 4.⅕¶
Courses: CMPUT 466 (Machine Learning), 340, 474
A serious ML researcher who is also a legitimately good teacher. 100% would-take-again. Clear lectures, fair exams, good book recommendations.
Teaching style: Makes students think in math. Exams and assignments are fair. One limitation: not very available outside lecture. "The book he uses is very good. The course itself is not too difficult and his exams and assignments are very fair. Be prepared for the fact that he is not available outside lecture."
If Schuurmans is teaching 466, register immediately.
Zachary Friggstad — A Tier | Rating: 3.7/5¶
Courses: CMPUT 274/275, 403, 303
Competitive programming specialist and algorithms researcher. Active on course Discord, responds to questions, brilliant problem solver. Goes fast in lectures — raise your hand and ask him to slow down; he will.
Teaching style: Shows students real Kattis solutions in class. Demanding but genuinely interested in student success. One student wrote: "He was a father to me. A watchful protector of the CS department." Took off marks for a deadline missed by one day — so he's not lenient on logistics, just on understanding.
Lorna Stewart — A Tier | Rating: 3.9/5¶
Courses: CMPUT 272 (Formal Systems)
Reliable and well-organized. Posts all notes online in clear typed format. Lenient on missed quizzes (weight transfers to final). The 272 material is dry and she doesn't make it exciting, but she makes it manageable. May no longer be teaching (one student noted it was "her last semester"). Check current offerings.
Ioanis Nikolaidis — A Tier | Rating: 3.5/5¶
Courses: CMPUT 379, 313, 333
Former NSA-adjacent figure who is "hyper in every lecture" according to students. Entertaining tangents, demanding assignments. Assignments are described as "very rewarding and useful" even when difficult. His exams are hard but the content is fair if you study.
Heads-up: His tangents sometimes mean you need the textbook to fill gaps. Reading the textbook is not optional in his sections.
Jose (Nelson) Amaral — B Tier | Rating: 3.7/5 | Difficulty: 4.0/5¶
Courses: CMPUT 229 (Computer Organization), 429
Complex figure. Genuinely excellent teacher — "one of the best profs in terms of making dry material actually exciting." Has strong industry connections (former students at Google, IBM). But his labs are described as extremely hard (some students describe them as impossible without AI help), and his exams are significantly harder than other sections.
The honest picture: If you're strong at assembly and want the best-taught version of 229, Nelson is excellent. If you're struggling with the content, his high standards can be punishing. "His workload is ridiculous" appears in otherwise positive reviews.
The practical advice: Watch Nelson's publicly available YouTube COVID lecture series regardless of which section you're in.
Guohui Lin — D Tier | Rating: 2.5/5 | Difficulty: 4.⅕¶
Courses: CMPUT 201
200+ RMP reviews, mostly negative. Described as very difficult to understand in lectures. His in-class coding exercises are harder than other sections. Famous for exam averages in the single digits out of 45. Students report that even students who get A+ describe the course as nearly unbearable. "Take it with Henry Tang instead."
The 201 content is legitimately hard regardless of instructor. Lin makes it significantly harder without making it more educational.
Ken Wong — D Tier | Rating: 2.⅕¶
Courses: CMPUT 301
The defining student complaint: marks are returned impossibly late. Students have written reviews a month after the semester ended still without grades. One review: "I'm going to start a family and get my life together before I get my grade back." Another: "I'm about to retire and marks are still not out." Beyond the marking delays, lectures are dry and grading criteria are vague.
If Hindle is available for 301, wait for Hindle.
Michael Buro — D Tier | Rating: 2.0/5 | Difficulty: 4.⅗¶
Courses: CMPUT 201, 350, 657
Knowledgeable and personally brilliant (originally famous for his Othello/Reversi-playing programs), but this doesn't translate to undergraduate teaching. Pop quizzes, heavy homework, and labs described as nightmares. "If you're taking this, learn C/C++ already." Some students do learn a lot — one wrote "you will go through hell for 12 weeks but you will be a better coder." But the cost is very high.
Nidhi Hegde — F Tier | Rating: 1.⅗ | Would Take Again: 6%¶
Courses: CMPUT 466, 200, 566
The lowest-rated professor in the department with a substantial review count (62). Consistent pattern across reviews: late assignment postings, assignments with errors that aren't corrected, no practice exams, handwritten notes that are illegible, unanswered student questions on the discussion board. Students who needed 466 and got Hegde describe some of their worst academic experiences. "I would never take again" is the nearly unanimous sentiment.
If you need a course she's teaching, either wait for another offering or be prepared to self-teach almost entirely from the textbook.
How to Use RateMyProfessors Effectively¶
RMP is useful but requires context:
Low rating ≠ bad professor: - Jose Amaral's 3.7/5 at 4.0/5 difficulty is partly because his course is legitimately brutal. Many students who later reflect on 229 say it was valuable despite being painful. - Sarah Nadi has mixed reviews on RMP but students who've had multiple 201 professors consistently say she's the best at teaching it.
High rating ≠ easy grade: - Schaeffer (4.7/5) will give you hard assignments and difficult exams. He's just also a phenomenal teacher who makes the experience worthwhile. - Friggstad (3.7/5) goes fast and is demanding, but actively helps students who ask.
Volume matters: - Guohui Lin has 200 reviews. That's a meaningful signal. Matthew Taylor has 0 reviews. - New professors (like Dieter Buechler for 267) have few or no ratings. Check Reddit for current-semester experiences.
Read the full reviews, not just the score: - The top tag on Zaiane is "Participation matters" (mandatory attendance). That's useful context a raw number won't tell you. - Hindle's top tag is "Group projects" (21 mentions) — crucial context for 301.
Check the course, not just the professor: - A professor might rate 4.0/5 in one course and 2.0/5 in another. Filter by course when possible.
Reddit supplements RMP well: - Search "[professor name] cmput" in r/uAlberta for current-semester perspectives. Reddit often has more nuance and recency than RMP.
Professors Known for Research (Context for Your Education)¶
UofA CS has genuine world-class researchers. This doesn't always translate to teaching, but it's worth knowing who you're learning from:
- Richard Sutton — co-author of Reinforcement Learning: An Introduction, arguably the most cited RL text in the field. RLHF (how ChatGPT was trained) traces back to his work.
- Jonathan Schaeffer — solved checkers (Chinook). Pioneer in game-playing AI.
- Michael Bowling — DeepMind researcher, his team's poker AI (Libratus/DeepStack) defeated professional players.
- Dale Schuurmans — senior researcher at Google DeepMind in ML theory.
- Osmar Zaiane — data mining and machine learning researcher, former department chair.
- Csaba Szepesvari — RL theory, co-author with Sutton. Very advanced researcher who pitches his courses at a graduate level.
- Jose Amaral — compiler optimization and high-performance computing researcher.
The AI/ML concentration at UofA is real — it was one of the original homes of the "deep learning revolution" (Geoffrey Hinton worked here). The research reputation is legitimate. The teaching varies.