Course Description:
CS 350: Operating Systems
An introduction to the fundamentals of operating system function, design, and implementation. Topics include concurrency, synchronization, processes, threads, scheduling, memory management, file systems, device management, and security.
Dave's Comments:
Teaching Evaluations:
Number of Respondents: 61 / 56 (109%)
Evaluate the organization and coherence of the lectures. |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
37 | 20 | 4 | | | |
61% | 33% | 7% | | | |
At what level were the instructor's explanations aimed? |
Too high | Somewhat too high | Just right | Somewhat too low | Too low | No opinion |
1 | 19 | 37 | 4 | | |
2% | 31% | 61% | 7% | | |
Evaluate the instructor's treatment of students' questions. |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
47 | 12 | | | | |
80% | 20% | | | | |
Evaluate the effectiveness of the instructor's visual presentation (blackboard, overheads, etc.). |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
29 | 25 | 7 | | | |
48% | 41% | 11% | | | |
Evaluate the effectiveness of the instructor's oral presentation. |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
50 | 11 | | | | |
82% | 18% | | | | |
Was the instructor available for help outside of class? |
Always | Most of the time | Often enough | Not often enough | Never | I did not seek help |
18 | 15 | 8 | | | 20 |
30% | 25% | 13% | | | 33% |
Did you find the course interesting? |
Very Interesting | Interesting | Not interesting | No opinion |
29 | 23 | 7 | 2 |
48% | 38% | 11% | 3% |
Evaluate the overall effectiveness of the instructor as a teacher. |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
43 | 17 | 1 | | | |
70% | 28% | 2% | | | |
What proportion of lectures did you attend in this course? |
90-100% | 75-90% | 50-75% | 25-50% | < 25% |
55 | 1 | 5 | | |
90% | 2% | 8% | | |
Was the assigned work (assignments, projects, etc.) helpful in learning the course content? |
Very helpful | Helpful | Not helpful | No work assigned | No opinion |
17 | 33 | 8 | | 2 |
28% | 55% | 13% | | 3% |
Were the printed notes (if any) helpful in learning the course content? |
Very helpful | Helpful | Not helpful | No printed course notes | No opinion |
11 | 43 | 2 | | 5 |
18% | 70% | 3% | | 8% |
Was the required textbook (if any) helpful in learning the course content? |
Very helpful | Helpful | Not helpful | No text required | No opinion |
2 | 9 | 4 | 33 | 13 |
3% | 15% | 7% | 54% | 21% |
Did the course introduce an appropriate amount of new material? |
Too much | Somewhat too much | Okay | Somewhat too little | Too little | No opinion |
6 | 17 | 36 | 1 | 1 | |
10% | 28% | 59% | 2% | 2% | |
Was the amount of assigned work required for the course appropriate? |
Too much | Somewhat too much | Okay | Somewhat too little | Too little | No opinion |
15 | 25 | 19 | | 1 | 1 |
25% | 41% | 31% | | 2% | 2% |
On average, how many hours per week did you spend on this course outside of lectures? |
0-2 hours | 3-6 hours | 7-10 hours | 11-15 hours | > 15 hours |
2 | 10 | 19 | 10 | 19 |
3% | 17% | 32% | 17% | 32% |
Note: This is a complete list of comments I received, listed alphabetically to avoid bias.
Please mention anything that you feel the instructor has done well in this course. |
- All classes were very entertaining.
- All good!
- All good.
- Analogies are helpful in explaining material.
- Analogies used were very helpful. Instructor was generally very entertaining. Would love to have another course taught by him.
- Analogies were very well done and even included persistent characters.
- Analogies, clear teaching that spends just enough time in each slide, connecting the whole course together.
- Answering inquiries on piazza.
- Best prof in undergrad. Excellent oral presentation. Good availability. Very approachable style/demeanor. Fantastic and relevant stories, jokes, analogies.
- Dave made the material interesting and relevant. His style made the classes engaging.
- Dave presents interesting lectures and real life examples.
- Down to earth. Relates to students. Music before class. Used humour to make the class more entertaining. Reasonable midterm.
- Effective way to teach. Good to get students attention. Good examples.
- Enthusiastic and fairly energetic teaching style. Clear explanations with real world analogies.
- Everything
- Excellent analogies, great explanation with examples, funny.
- Explain everything clearly. Interesting. Answer student questions very well. Can feel he really put his heart in this course. Really thinks of students. Best professor ever. He really makes me love this course.
- Explanations were on point. Excellent YouTube videos.
- Extended the deadline of the assignment, funny jokes in the lecture.
- Freshly showered, professional.
- Frickin everything. Whatever they are paying you isn't enough Dave.
- Good at answering questions and lecturing.
- Good explanations and analogies. Good at making the material interesting and engaging.
- Good explanations and examples.
- Good explanations, great use of visuals, not too dependent on slides, answers questions, always available.
- Good oral communication, adds humour to teaching to make things interesting. Good explanation of theory and their applications.
- Good oral instruction and student engagement.
- Good teacher. Course is very interesting.
- Great analogies, great speaker and entertaining.
- Great at using helpful metaphors for explaining core concepts that are otherwise difficult. Always has a good attitude which makes attending lectures quite enjoyable.
- Great oral presentation. Entertaining and engaging. Fair and understanding.
- Great presenter. Really makes the hard stuff easy to understand.
- Great visual presentation.
- Has an excellent understanding of the material and did a good job relaying it.
- He gave an interesting (rather not boring) lecture during lass time. He was actually funny.
- His explanations always help us to understand the course material. But the course material is just too hard to fully understand. He is very passionate to teach us.
- I would take every course from Dave if I could. He is always willing to entertain questions and answers them with an intent to prepare us for the real world, not just the final.
- Interesting guy, play video before class, nice jokes during class.
- Keeps the course interesting by giving his own insight.
- Lectures were fun/entertaining, which made it easy to pay attention.
- Made the material more engaging by presenting it in different and unique ways.
- Making this course interesting. Making me wanting to wake up 8:00am. Making connection to real world & industry.
- Motivated interest well.
- One of the best professors I have had at the University of Waterloo. Dave always gives interesting examples to help students to understand the material. Very patient to students questions, often thinks from the students' point of view. He makes CS350 so engaging that this is the only CS class that I have not fallen asleep in lecture for any minute.
- Teaching method has good flair. Good examples and analogies.
- Using some good analogies to help teach students about the course lecture.
- Very appealing presentation of the material. Humourous stories that keeps the kids entertained.
- Very creative analogies. Overall, very effective and awesome prof, will take a course if you are teaching.
- Very engaging lectures and presented the material clearly.
- Very entertaining. Fun to listen too and has a strong interest in what he is teaching.
- Very funny guy. Easy to get along with and can make boring topics interesting.
- Very funny talking style.
- Very good oral presentation. Added personality to a course I otherwise would not enjoy.
- Very humourous & passionate at explaining concepts.
- Very knowledgeable, enthusiastic and does a great job explaining the material.
- Visualize concepts
- You allow us to attend the afternoon section in case we miss the 8:30 one. It's very considerate!
Please make constructive comments about anything in the instructor's technique or style that could, in your opinion, be improved. |
- A few easier concepts could have been ran through quicker (i.e., scheduling) to allow more time for more complex concepts. Also, more regular discussion about the current assignment could be helpful.
- All the important or testable material needs to be highlighted and reviewed.
- Analogies can be useful for speedy learning, but hey can also hide nuanced differences or fundamental principles. Not a recommendation, just an observation.
- Content organization not emphasized enough. Too many unnecessary analogies. Too distant from the course content and true motivation, as a result, the textbook and Wikipedia were much clearer on some topics.
- Could transfer more of the useful metaphors to the otherwise terse course notes.
- Demos of working assignments and what we should attempt to replicate in our implementations.
- Dim more lights.
- Do not assume everyone is smart in this course. There are some people that need to work very hard.
- Felt that some of the lectures were rushed at times. Try slowing down and make sure that the class understands the material before moving on.
- Give more examples.
- I fell that the mark boost and the extensions were far too lenient, but if everyone else wanted them, who am I to argue?
- I hope we can have more examples of real life application of the course content.
- I think Dave could have moved faster through the material, boredom ensures otherwise. I also think more Windows demos (e.g., looking at TLB misses) could be helpful.
- If this is read before the final exam, then please make it easy, or at least focus more on A3 since this portion (memory stuff) is what we've been practicing the most.
- If we could have more examples that related to the assignments.
- It would be more helpful if you could write more things on the board.
- Lectures are well presented but there should be exercises (maybe in assignments) that aid in understanding course content. We need more assignment questions based on lectures and less questions about OS 161.
- Less analogies: sometimes it makes concepts hard to understand.
- Maybe more examples would be helpful for things not related to the assignment, but viable for exams. Although there are past exams to look at, there isn't a thorough step-by-step for how to solve it. And it is usually just one example.
- Midterm questions should be more clearly.
- More concerns about assignment stuff (help students to understand the whole assignment, especially A2 & A3).
- More example problems that'd be similar to problems that could potentially show up on exams and assignments.
- More examples related to topics.
- More use of blackboard, or expanded lecture slides. Slides are fairly sparse and most of lecture relies upon mostly oral instruction, so it is more difficult to review what was presented in lecture, slides could use a little more detailed diagrams.
- No examples that would help study for midterm and exam. Notes are mostly just facts and concepts. Notes were hard to apply to assignments and tests.
- None
- None.
- Nothing. Seriously. It's perfect the way it is.
- Perhaps slow down on some parts and go faster in others, but obviously this will differ between students as per their comprehension.
- Sometimes lectures felt rushed.
- Sometimes may treat a student's question with disdain, but usually because the question was stupid. May want to tone back a little in regards to that.
- Sometimes the initial explanations of topics are at too high a level or glossed over. For example, segments and physical memory management topics.
- Sometimes, too much humour makes people feel distracted.
- Teaching style is really interesting.
- There were tidbits of information that were glossed over very briefly but were on the midterm. Not sure how he could do it but there's a lot of information and likely not enough time spent on some parts.
- Understand the student's question better to avoid replying with an off-topic response.
- You go through some concepts too fast. Should talk about assignment solution.
- ZZZZZ this comment is sorted last :)
What were the strong points of the course? |
- Assignments help learn the material.
- Assignments.
- Breadth, a lot of topics covered.
- Detail foundation material.
- Everything, especially Dave.
- Good course notes.
- Good course structure.
- Good coverage of material.
- Good hands-on experience in terms of coding.
- Good to know the fundamentals of OS.
- I enjoyed finally understanding how some low level concepts worked.
- I had no idea how O/S worked whatsoever, but from this course, I got ideas how kernel works as well as memory management.
- Important and challenging material. Seems like important stuff to know.
- Important course
- Increases understanding of operating systems we use everyday. Applicable to real life situations.
- Interesting & challenging assignments.
- Interesting material: really allows us to follow OS.
- Interesting, learned a lot.
- Interesting, programming oriented.
- Introduced interesting concepts.
- Learn OS overview for job interview.
- Learn the basics of OS, "take away the magic of computer". Introduction to synchronization. These topics will probably end up appearing in any position at some point or another.
- Learning how threads work.
- Lectures were often fun and engaging due to instructor's outgoing personality.
- Material is interesting and could be applied to real life situations.
- Relates to many other courses past and future, everybody uses an OS so relatable!
- Relevant. Terse slides.
- Students actually got opportunity to work on the same project together.
- The assignments are written quite well with an excellent amount of detail.
- The assignments: I learned much more when actually implementing than any in class explanation (no matter how good) can provide.
- The course.
- The material being taught.
- There is no more magic in computing.
- This course helps students understand the concepts of operating systems. Also, lots of coding work can enhance the basic C programming skills.
- Understanding how an OS works, got some "CS" jokes.
- Very applicable content. Implicitly teaches strong programming skills.
- Very conceptual and provides understanding.
- Very immersive assignments, lots of control and decisions left up to the student, much better flexibility than other courses. Extremely interesting content.
- Very interesting, I learned a lot.
- very interesting, many new concepts.
What were the weak points of the course? |
- A lot of material, hard to prepare for examinations.
- A lot of materials but the course notes is somewhat simplified.
- A lot to learn, hard to keep track and hard to study for tests.
- Assignment descriptions disorganized and jumbled. Could use more documentation for OS161, i.e., what is implemented to start.
- Assignment is somewhat difficult.
- Assignment is somewhat too hard. Some students may understand fully and be able to finish on time, but I think most of students cannot fully understand the content so cannot finish assignments on time.
- Assignment is too heavy for 3rd year CS student.
- Assignment load too heavy.
- Assignments are bloated and too much is assigned at once, should be broken up into more sections.
- Assignments are way too hard than what we actually learned for the course.
- Assignments are... lots of work. Please please, more hints.
- Assignments have very little to do with lectures past A1. Midterm and assignments are barely related. Slides and assignments are vague at times and do not give enough information. Way too much material to cover for one course let alone for exams.
- Assignments is somehow too hard. Hard to understand what to do.
- Assignments really long and hard.
- Assignments required much finicking to make work, even if you fully understand the concepts. That may be the nature of the beast, though.
- Assignments too long and too much about code reading. I'd rather do more things that are actually coding-based.
- Assignments were pretty tough and fairly long. I found them interesting, but the amount of work required and how much of my grade depended on some crap code kind of sucked. I don't know who wrote the vnode garbage, but they need their programming license revoked. Also, who frees nodes and sets them to 0xdeadbeef? What kind of design decision is that? Now I have to: if (p || (void *) p == (void *) 0xdeadbeef) ... stupid.
- Assignments were too long even for the amount of time that was given to do them.
- Course work takes too long. More than 20 hr/week to complete.
- Dave did not hold DJ sessions.
- Depth, none covered in depth. Assignments are not very relevant to lectures. It requires a lot of self figuring-out.
- Exams were dependent on doing assignments (not a good paradigm).
- Hard material.
- I think the course should be over two terms so we can complete the rest of os161. A tutorial would be useful.
- Large amount of very dry material. I did not feel that the course material prepared me for A2.
- Lots of work. Very hard midterm.
- Many unknown functions (that require hints to find) are needed to complete assignments.
- Midterm is too hard and not straightforward.
- Midterm was too hard (too many tricky questions and was very long) hope we can have a much easier final exam. Assignments were a little bit too long.
- Midterms are too hard. Have difficulty relating the lecture material to the assignment concepts.
- Normal' midterm style will be nice. More guides for assignments would be nice.
- Not enough detailed examples of potential exam and assignment problems.
- Sometimes the trickier parts of the assignments were not necessarily reflective of how important that concept is.
- The assignments are extremely tedious and there are no guides given on how to design or implement the features required on the assignment.
- The midterm questions could have been phrased better.
- There is no more magic in computing. There isn't time to cover all topics in the depth they need.
- There were 4 assignments total (including A0), and A2/A3 were too hard to finish which worth 25% of course mark. I'd rather have 4-5 assignments covering less material than current assignments.
- Time consuming. Hard exams (as a mandatory course)
- Too few assignments, needs more partitioning. Again, slides lack motivation at times.
- Too hard. Too many information.
- Too much assignments.
- Too much material
- Too much time is required to complete the assignment, but assignment completion does not translate to better understanding of what is taught in lecture. Huge disconnect between assignments and lecture material. NO supplementary exercises to help understand lecture material. To much focus on OS 161 in assignments.
- Too much time required for the assignments.
- Too poorly organized, very complicated, assignments are rough and have little to do with the lectures.
- Very poor introduction. Jumps too quickly into synchronization. Awkward gap between CS241, 251 and this course. Bigger primer on kernel and kernel start up and operation would be helpful. Assignments long and difficult with disproportionally low educational pay off. Encountering exam questions BEFORE the exam would be appreciated.
- Very theoretical and hard to wrap my head around new material. When these materials are not covered in the assignment, it is easily forgotten.
- We don't have tutorial sections for this course.
- Weak understanding of material not on assignments.
- What we learn in lectures does little to help us do the assignments.
Was the class atmosphere affected either positively or negatively by attitudes of the instructor or students, e.g., with respect to gender, race, ability, appearance? Please explain. |
- All good.
- Atmosphere was totally fine, super chill and entertaining.
- Certain students ask questions without thinking that wastes the class's time. Certain students make comments just to show off.
- Everything was good.
- He always treats us with respect and his attitude toward us always makes positive atmosphere during the class. Every student enjoys taking the course with him.
- Instructor and student humour helped make the course more interesting.
- It was affected positively. The instructor was great and always helpful in explaining concepts.
- Most people sitting behind first row do not participate.
- Mostly positive.
- No problems.
- OK
- Positive
- Positive, everyone seemed to have fun.
- Positive, preference given to children under the age of 2.
- Positive.
- Positive.
- Positive: just the right mix.
- Positively affected.
- Positively.
- Relaxed and friendly atmosphere was very positive.
- The problem with analogies is that their effectiveness is drastically reduced if an audience member lacks the common ground you are attempting to build on. I did not have this problem, but I did notice some analogies were culture/subculture dependent, which may alienate some.
- This professor is the best.
- Too many people from lecture 1 coming to the later lecture 2, taking my seats!
- Very comfortable class atmosphere. Enjoyable and fun learning experience.
- Very good.
- Very positive.
Any other comments, e.g., class size, suitability of room, noise level, etc. |
- Class is small and crowded, hard to see the blackboard and slides.
- Class should probably not EVER happen at 8:30, especially CS.
- Class size little too big. Classrooms were too full. Did anyone honestly expect CS students to go to an 8:30 lecture?
- Class size too big, but probably due to people from 8:30 class who hate mornings.
- Class size: too crowded.
- Class too packed, but I guess that's because the only other section is at 8:30am.
- Could have used a bigger room. There were always students standing in each class.
- Dave, you are much better than [name withheld]: Don't tell him :)
- No 8;30 classes, please!
- Not enough seats in afternoon class.
- Nothing, really. Prof. Tompkins is so jokes.
- Room a little too small.
- Room furniture sucks. I'd never imagine my school has such bad chairs!
- Room too small for afternoon session.
- Slightly larger classroom would be nice.
- There are always too many students in the classroom so sometimes I could not sit even though I arrived before the class started.
- This room has white noise that makes me sleepy.
- Too hot in summer.
- We need a better classroom.