Course Description:
CS 136: Elementary Algorithm Design and Data Abstraction
This course builds on the techniques and patterns learned in CS 135 while making the transition to use of an imperative language. It introduces the design and analysis of algorithms, the management of information, and the programming mechanisms and methodologies required in implementations. Topics discussed include iterative and recursive sorting algorithms; lists, stacks, queues, trees, and their application; abstract data types and their implementations.
Dave's Comments:
Teaching Evaluations:
Number of Respondents: 57 / 88 (65%)
Evaluate the organization and coherence of the lectures. |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
39 | 16 | | | 1 | |
70% | 29% | | | 2% | |
At what level were the instructor's explanations aimed? |
Too high | Somewhat too high | Just right | Somewhat too low | Too low | No opinion |
3 | 9 | 43 | 2 | | |
5% | 16% | 75% | 4% | | |
Evaluate the instructor's treatment of students' questions. |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
34 | 20 | 3 | | | |
60% | 35% | 5% | | | |
Evaluate the effectiveness of the instructor's visual presentation (blackboard, overheads, etc.). |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
34 | 21 | 2 | | | |
60% | 37% | 4% | | | |
Evaluate the effectiveness of the instructor's oral presentation. |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
43 | 13 | 1 | | | |
75% | 23% | 2% | | | |
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 |
31 | 10 | 2 | 1 | | 13 |
54% | 18% | 4% | 2% | | 23% |
Did you find the course interesting? |
Very Interesting | Interesting | Not interesting | No opinion |
27 | 28 | | 1 |
48% | 50% | | 2% |
Evaluate the overall effectiveness of the instructor as a teacher. |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
44 | 10 | 1 | 1 | | |
79% | 18% | 2% | 2% | | |
What proportion of lectures did you attend in this course? |
90-100% | 75-90% | 50-75% | 25-50% | < 25% |
48 | 7 | 1 | | |
86% | 12% | 2% | | |
Was the assigned work (assignments, projects, etc.) helpful in learning the course content? |
Very helpful | Helpful | Not helpful | No work assigned | No opinion |
33 | 21 | 2 | | |
59% | 38% | 4% | | |
Were the printed notes (if any) helpful in learning the course content? |
Very helpful | Helpful | Not helpful | No printed course notes | No opinion |
19 | 27 | 2 | 6 | |
35% | 50% | 4% | 11% | |
Was the required textbook (if any) helpful in learning the course content? |
Very helpful | Helpful | Not helpful | No text required | No opinion |
11 | 6 | 8 | 25 | |
22% | 12% | 16% | 50% | |
Did the course introduce an appropriate amount of new material? |
Too much | Somewhat too much | Okay | Somewhat too little | Too little | No opinion |
4 | 21 | 27 | 3 | | 1 |
7% | 38% | 48% | 5% | | 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 |
6 | 26 | 21 | 3 | | |
11% | 46% | 38% | 5% | | |
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 |
| 12 | 26 | 11 | 7 |
| 21% | 46% | 20% | 12% |
At what level were the instructor's explanations aimed? |
- [Just right] He makes sure that students see the smaller details that will be tested on the final exam.
- [Just right] I had 0 C experience coming into the course and I'm doing really well as of the time I write this evaluation (hope I don't bomb the final).
Evaluate the instructor's treatment of students' questions. |
- [Excellent] Dave answered most questions with clarity and seemed like he really knew what he was talking about in and out.
- [Excellent] His answers can be quite entertaining, but more importantly useful in understanding the course content.
- [Excellent] It may be helpful to suggest that some questions are left for discussions that the student can have with yourself or an ISA afterwards. Some question are a little bit nit-picky about lesser important details and they sometimes put us a little behind. Just a suggestion though.
- [Excellent] Very clearly explained all questions, maybe spend a little less time on each individual question.
Evaluate the effectiveness of the instructor's visual presentation (blackboard, overheads, etc.). |
- [Excellent] Can't forget the lightsaber
- [Excellent] The use of the brick wall for memory explanations is impeccable. Perfect demonstration.
Evaluate the effectiveness of the instructor's oral presentation. |
- [Excellent] Dave gave a lot of great analogies and his explanations were very clear. His tone and speed of talking was also good.
- [Excellent] Everything I aspire to be when it comes to communication skills.
Did you find the course interesting? |
- [Interesting] Adding more content would be nice. I agree it would be harder for a lot of other students but assignments weren't challenging
- [Interesting] Not as fun as CS 135 to be completely honest but that's just my opinion, and maybe this is typical given the nature of the course.
Evaluate the overall effectiveness of the instructor as a teacher. |
- [Excellent] Virtually no complaints, exceptional.
Was the assigned work (assignments, projects, etc.) helpful in learning the course content? |
- [Helpful] Assignments were good for reinforcing what we learned in class, however, they took very long to complete.
- [Very helpful] If ever there was not enough time to study for exam-style assessments, having done the assignments guaranteed I had at least satisfactory understanding of the material.
Was the required textbook (if any) helpful in learning the course content? |
- [Very helpful] As one of the few students who actually used the textbook, I feel it gave me a huge upper hand.
Did the course introduce an appropriate amount of new material? |
- [Okay] I think we learn void pointers a little bit too quickly for students to understand them well enough to cope with the difficulty of assignment 10
- [Okay] Too slow in the front half term, but too fast in the last half term.
- [Somewhat too little] I found the course to have too many convention-type/C-syntax type stuff if that makes sense. I am mostly interested in theory and learning new and exciting algorithms, which the course didn't entirely lack. There was certainly lots of interesting content as well.
Was the amount of assigned work required for the course appropriate? |
- [Somewhat too little] Being a typical student myself, I have very little discipline. I know at a post-secondary level that holding the student's hand and guiding with assigned "homework" is uncommon but I would have liked some of that myself haha.
- [Somewhat too much] Assignment 9/10 take significantly more time to complete than the previous 8. It's mainly due to how much debugging you need to do in order to be confident that your code actually works for assignment 9/10
- [Somewhat too much] I just finished doing A9 and it was really long.. scared to for A10
On average, how many hours per week did you spend on this course outside of lectures? |
- [7-10 hours] Assignments are lengthy no lie, but rewarding and worthwhile.
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. |
- Always available for help both in person and on piazza! Explain new concept fairly well. Analogies to abstract concept really help a lot in learning the new material.
- Dave explains everything in a very clear and direct way.
- Dave is an excellent professor! His analogies to teach the material are very useful to actually comprehend the material and to not just blindly memorize. He explains complicated concepts in a very simple and understandable manner.
- Dave is so interesting that I can barely focus on the class material! Wish to have his class again.
- Dave made understanding difficult topics easier. I realy enjoy his analogies that he uses to make things easier to understand. The course was tricky but he definitely made is much easier to handle and enjoyable as well.
- did well in explaination the confused questions
- Everything.
- Excellent explanation of concepts.
Good sense of humour.
One of the best prof!
- Explain hard concepts like pointers effectively.
- good explanation on tough materials
- Good lectures
- Good oral presentation
- Good presentation and teaching
- Great explanations/references for basic introduction. Very engaging, helpful, and funny. In general, one of the best profressors I've ever had.
- Great instructor.... I have to submit A10 in 10 minutes so I can't say much but he was very clear and engaging. If you don't do too well in this course, it shouldn't have anything to do with Dave.
- He covers all the important parts of the course that will most likely be tested on the final exam.
- humorous and effective in , some jokes are a bit lame though
- I am never bored in this class, I think Dave could teach me about something as boring as economics and I would still find it enjoyable.
- Made it entertaining with corny jokes. Some were pretty funny though.
- Nice presentation
- Nine explanation for new concepts, the instructor always makes the abstract concepts easy to understand. I really like the "dorm clothes collection" example.
- Play 5-minute cartoon before class
- Provide good examples using blocks.
- The explanations were great. However as a lot of people point out, Dave spends a lot of time explaining the same concept. It might be a good thing, it might be a bad thing for some students.
- The instructor does a good job in making the topics covered understandable for the students. Using real life examples and applications i.e. the "heap laundry" example is key.
- The instructor uses interesting examples to clearly explain some complicated concepts, which helps students understand them better.
- The instructor was great at explaining core concepts and giving good analogies to help compare computer science concepts to real life. Overall, he was very effective in teaching all the different materials and made the course my friends told me were "challenging" very easy.
- Very good
- Was able to teach the content good enough for me to understand for the assignments
Please make constructive comments about anything in the instructor's technique or style that could, in your opinion, be improved. |
- everything was great.
- I felt the tutorials were really simple. The clicker questions were at the elementary especially since we would do harder clicker questions in class prior to the tutorials.
I feel we can benefit from extra practice questions. When it comes time to study for exams, it's hard to just review assignments and practice from there since assignment questions require more time.
- I found the instructor really put effort into making his lectures interactive and engaging so in terms of instructor's techniques, I felt he did everything right. The only constructive comment I could give is to move faster through the first couple weeks of the course as they are super light in terms of content.
- It's good already
- Keep up the good work!
- Maybe sometimes goes on tangents for simple topics, but helps to fully understand topics. Maybe use more interactive examples for students to practice concepts in class. Also, on piazza the instructors tend to link to more answers than answer them, and while the answer is usually there, it is not always clear to students. Maybe try to answer questions AND remind students to read preamble/piazza posts. A lot of answers seem to links to other places, which is sometimes hard to follow.
- More Coke zero? He didn't drink as much as people made it out to be.
- more examples could be very helpful for students to understand new materials
- None.
- Nothing should be improved since everything is already perfect :)
- Pacing is hindered a bit by entertaining too many of the students questions. Then again i really appreciate that you aim to make sure everyone understands the material, but don't feel bad to ask a student to bring up the question with you at a later time if it doesn't seem to add too much to the lecture.
- provide more hints in assignment
- Rather than going through the sides, practicing more code in class could help other students.
- So far it is good
- Sometimes when one person has specific questions, the instructor can spend less time explaining them during class time.
- Spend more time doing coding examples or include more codes on slides. Spend more time in the second half of the course where material are much harder (I.e. spend less time in the beginning several lectures)
- The classroom is not good for containing so much student, and I think more real-coding should be done in class.
- Too much time is spent on the first half to the course - going faster for the easier section of the course would allow more time to go slower for the second and more difficult half.
- You could give more proper feedback rather than short and unhelpful comments.
What were the strong points of the course? |
- A fundamental understanding of the imperative programming paradigm and how transferable the information is to the work place if you are a software developer
- Assignments, course content, instructor.
- Clear and intuitive
- Efficiency
- Fundamental
- Good introductory course to low level programming.
- Great slides with lots of useful knowledge.
Nice design of assignments. Even if sometimes the assignments are difficult, but they are really really really helpful.
- I enjoyed learning about the memory model of C and getting more insight as to what goes on under the hood of writing a program.
- Interesting and useful material
- interesting materials
- Introduce to an imperative language and aim to make student develop a strong foundation of the C language.
- Learned a lot
- lectures were very strong, especially in learning about arrays, strings, and the basics of C.
- no comments
- Pointers were introduced well in this course and I could grasp the ideas easily.
- The difficulty of the course is well determined both for the beginners and people who already have learned C.
- The lecture slides are structured unbelievably well. Very organized and I appreciate how well they filter out unnecessary details. It makes the slides very readable and realistic to get through.
- The material is a little challenging but very useful. The course is a very good introduction to C.
- to develop the logical ability
- Useful
- Useful, concepts interact with other courses, organized course notes.
- When Dave played Coco, assignments, and his teaching ability
What were the weak points of the course? |
- ADTs were in and out of the course but I couldn't really understand how it worked. Might just be a me thing but it's my evaluation.
- At the end it is a little bit too fast.
- Exams (as they are written rather than coded).
- Extra help hours are often crowded and piazza answers are often clipped. The efficiency and memory portion of the course tends to be hard to understand.
- Harder topics at the end of the course were given too little time.
- Heavy assignments made it difficult to focus on other courses as well.
- I feel like we didn't spend enough time on pointers, one of the hardest concepts in the course. It would have been helpful to review pointers before arrays.
- I wish we spoke a little bit more about C's standard libraries and their different functions.
- It felt really rushed, especially towards the end.
- It talks little about the error that may occur during the implementation, and do not have enough explanation about it. If your code works, then everything is fine, otherwise you are facing a different difficulty level situation.
- It would better if we can spend a bit more time on the second half of the course.
- Learning about strings and C syntax. I don't feel that most people will need to be taught that in a lecture setting. It may be more helpful to suggest resources for that material for self-learning so that more time can be spent on deeper concepts.
- no comments
- None in particular.
- Not much
- Short
- Some long assignment..
- The course load is somehow a little bit too heavy.
- the volume of assignments
- Time consuming and can be frustrating to complete assignments sometimes, definitely not a course worth taking if you do not enjoy programming.
- too many assignments
- Too many contents and too hard after A8
- too much assignments
- Too much concept introduced. Course load is a bit too high:(
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. |
- Didn't realize race was a factor in this class. Great!
- Good atmosphere
- no
- no
- no.
- Positive
- Positive
- Positive
- Positive, Dave always has his method to teach the class in an interesting way.
- Positive, interactive
- Positively
- Positively - inclusive and gathered opinions from students.
- Positively.
- Positively. The instructor treated everyone nice.
- The class atmosphere is usually quite positive and engaging.
- There did not seem to be any issues in terms of classroom atmosphere with any of the students or the instructor.
- Very positively. I love Dave.
- VERY POSITIVELY. What a guy Dave is, always enforcing absolute zero-tolerance for race and gender prejudice. Couldn't be a better atmosphere.
- yes. i think that everyone in class is active.
Any other comments, e.g., class size, suitability of room, noise level, etc. |
- a change of location will be appreciated
a classroom in MC building!
- Change the classroom,plz.
- class room was very not suitable for a cs class. very difficult to see the board sometimes
- Classroom itself in physics building interrupted but the fire event
- Classroom was horrible. Very long so the professors voice can't be projected to the back of the room, also can't see anything. With a class as packed as this year's CS 136 section 001, this was not the right room to lecture in
- Dave please drink less coke... good for your health! I really like your idea of watching movie before the start of class:)
- Everything is fine
- Hopefully for the future, the course can be taught in a better room!
- It was hard for students sitting in the back to see the board. It's mainly because the classroom in quite elongated.
- Physics building was awful. MC would have been better.
- Please put the classroom somewhere where it's not always under construction.
- Room's size is not good.
- Thanks for an awesome semester, Dave!
- The class atmosphere is good
- The class location and class structure was disappointing. Please do not allocate this room for lectures where there are more than 50 people attending.
- The classroom was not shaped the best because it was much harder to see for those sitting in the back as the projector was very small. There was no outside noise however which helped the learning process.
- The room is not suit for this course
- The room is small.
- The room was awful which I think Dave agrees with as he pointed it out multiple times. Sometimes nothing can be done about that. PHY 235 isn't so great.
As always, I showed 5 minutes of a movie before each lecture. This term the students voted for CoCo (Sec 001), and Wreck-It Ralph (Sec 002).