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: 58 / 88 (66%)
Evaluate the organization and coherence of the lectures. |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
46 | 12 | | | | |
79% | 21% | | | | |
At what level were the instructor's explanations aimed? |
Too high | Somewhat too high | Just right | Somewhat too low | Too low | No opinion |
2 | 11 | 44 | 1 | | |
3% | 19% | 76% | 2% | | |
Evaluate the instructor's treatment of students' questions. |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
44 | 12 | 2 | | | |
76% | 21% | 3% | | | |
Evaluate the effectiveness of the instructor's visual presentation (blackboard, overheads, etc.). |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
40 | 17 | 1 | | | |
69% | 29% | 2% | | | |
Evaluate the effectiveness of the instructor's oral presentation. |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
50 | 7 | 1 | | | |
86% | 12% | 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 |
24 | 12 | 9 | 1 | | 11 |
42% | 21% | 16% | 2% | | 19% |
Did you find the course interesting? |
Very Interesting | Interesting | Not interesting | No opinion |
37 | 21 | | |
64% | 36% | | |
Evaluate the overall effectiveness of the instructor as a teacher. |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
47 | 11 | | | | |
81% | 19% | | | | |
What proportion of lectures did you attend in this course? |
90-100% | 75-90% | 50-75% | 25-50% | < 25% |
46 | 11 | 1 | | |
79% | 19% | 2% | | |
Was the assigned work (assignments, projects, etc.) helpful in learning the course content? |
Very helpful | Helpful | Not helpful | No work assigned | No opinion |
36 | 20 | 1 | | 1 |
62% | 34% | 2% | | 2% |
Were the printed notes (if any) helpful in learning the course content? |
Very helpful | Helpful | Not helpful | No printed course notes | No opinion |
30 | 23 | | 1 | 4 |
52% | 40% | | 2% | 7% |
Was the required textbook (if any) helpful in learning the course content? |
Very helpful | Helpful | Not helpful | No text required | No opinion |
12 | 11 | 4 | 14 | 17 |
21% | 19% | 7% | 24% | 29% |
Did the course introduce an appropriate amount of new material? |
Too much | Somewhat too much | Okay | Somewhat too little | Too little | No opinion |
6 | 13 | 36 | 2 | | |
11% | 23% | 63% | 4% | | |
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 | 21 | 28 | 3 | | |
10% | 36% | 48% | 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 |
| 14 | 27 | 10 | 7 |
| 24% | 47% | 17% | 12% |
Evaluate the organization and coherence of the lectures. |
- [Excellent] Slides were well organized, with clear indication of what was important (coloured bubbles)
- [Good] You drink so much coke, but don't let anyone tell you that you it's terrible. You drink those because you enjoy drinking them and it is worth it.
At what level were the instructor's explanations aimed? |
- [Somewhat too high] There was a bit of jump or disconnect between the work that I had to do and what I learned in lectures, but I'll leave that up to you whether it is good or bad.
Evaluate the instructor's treatment of students' questions. |
- [Excellent] Always willing to answer questions, and never shamed someone for asking them.
- [Good] You answered the questions the best you could even the dumb ones. Sure you misunderstood some of them but that's normal.
Evaluate the effectiveness of the instructor's visual presentation (blackboard, overheads, etc.). |
- [Excellent] excellent use of wall, coke cans and other professional instructional equipments
- [Excellent] Uses visual presentation for more complex subjects, which is very effective.
- [Good] Coding the examples in class would've been nice
- [Good] You supported the mass of slide information with the chalkboard to clarify things and that made the material easier to understand. I liked how concise it was.
Evaluate the effectiveness of the instructor's oral presentation. |
- [Excellent] Comedic relief thrown into the lecture made for a very enjoyable course.
- [Excellent] The analogies help me understand things quicker.
- [Good] You presented very well for me. I did get lost at some points like with pointers but I think that's more because you had to accommodate everyone, not just me. Also I missed some classes so that would have contributed.
Was the instructor available for help outside of class? |
- [Always] He was very helpful and present on Piazza
Did you find the course interesting? |
- [Very Interesting] Computing is the future and I am glad I can be part of it.
- [Very Interesting] If I had taken this course earlier in my university career I probably would have switched into CS
Evaluate the overall effectiveness of the instructor as a teacher. |
- [Excellent] Dave made me want to come to class and learn the material where as many other profs are not capable of doing that.
- [Good] He was very good.
Was the assigned work (assignments, projects, etc.) helpful in learning the course content? |
- [Very helpful] Doing homework is very useful to learning, but it's kinda hard to but assignments on your resume without a definite project. So think about making distinct project for students to do and put on their resume.
- [Very helpful] The later assignments were quite challenging due to the content learned in the last few modules. It would have been nice to have had more guidance as to what was expected instead of just the .h files, but it did a good job for preparing for the real world where you have to make it all yourself
Were the printed notes (if any) helpful in learning the course content? |
- [Helpful] Wish the lecture notes were updated and you didn't have extra slides added that we had to look at on the course website. Having everything in one place is so much easier plus for those of us who don't have laptops open in class, adding notes for the slides not in the handbook was hard.
- [Very helpful] Essential for learning the course.
- [Very helpful] I used these religiously. It was great to have the physical notes to highlight, write in, circle, etc.
Was the required textbook (if any) helpful in learning the course content? |
- [No opinion] Lectures and course notes were all that was necessary for learning the course content
- [Not helpful] Never looked at it once.
Did the course introduce an appropriate amount of new material? |
- [No Answer] Could introduce more algorithums.
- [Okay] It was a good amount until it came to the last few modules. I still don't quite understand arrays of strings or what some of the errors in seashell mean/why I get them. I'm hopeful that if it sits for a bit in my brain that it will click before the final though.
- [Okay] Pointers and memory allocation are new and exciting but imho kinda finicky.
Was the amount of assigned work required for the course appropriate? |
- [Okay] Sometimes the assignments were a little bit too long, which affected my studying time for other courses.
- [Okay] The assignments were perfect length until the later assignments where each question had multiple parts, so an assignment with 5 questions didn't look intimidating, but once you opened the assignment files, it was a little overwhelming. For the most part it was a good amount of work. The end-of-term crunch is where it gets a little burden-some. Dave was great with second chances and extensions though.
On average, how many hours per week did you spend on this course outside of lectures? |
- [11-15 hours] The first few weeks it was only a few hours, probably 5, but near the end, between re-reading the notes and trying to grasp the tricky concepts, and doing the lengthy assignments it was probably closer to 15+ hours
- [> 15 hours] The assignments took me so long I didn't have time to study
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 prepared, well organized, great professor that really engages students and makes the course material fun.
- An excellent presenter with a great grasp of material. He clearly loves the subject and loves teaching, and I found that made it much easier to grasp new concepts. This course made me want to continue for a CS minor!! You're the man Dave!!
- Best CS instructor ever!
- Dave creates a great atmosphere for learning in his lectures.
- Dave has a great sense of humor, very energitic
- Did a very good job of engaging students and thoroughly explaining the content
- everthing
- explain things very well
- explained the course material well
- Fantastic and engaging lectures that are typically easy to understand.
- Funny, great explanation of concepts, support engaging and great puns!!
- Gets the students interest
- Good and fun explanation of the course material.
- Good Explanations.Funny. answered my questions clearly.
- good lecturer
well organized content and well planned tutorials
good analagies
- Good slides, good examples and entertaining
- Great guy!
- He really made me feel this course was interesting and the material was introduced at an appropriate pace.
- I liked that Dave kept up with current memes. He clearly explains hard concepts and his experience helps him with it. He is the best teacher ever. I like that he reviews old content at the beginning of lecture.
- I really like the way powerpoints are done with the software to draw on them. Walking through conceptual diagrams on the board to explain code was very helpful.
- I think that Dave's strengths are in lecture- he is an engaging orator and is skilled at making lectures interesting. Normally I'm not a fan of professors that tend to be overly 'jokey' but Dave manages to both teach the material and engage the class.
- I think that the theoretical portion of the course is very well organised and explained.
- Introduces all the material in a relatively short time.
- Lectures always provide real world examples that helped to me relate to the problem more easily
- Lectures are really fun and interesting, it helps me to study it after the lectures
- Legend!
- Passionate
- Perfect and energetic.
Love u <3.
- Really patient and helpful. Doing great on explain the concept.
- Showed a GENUINE interest in the course which clearly rubbed off on the students. I have yet to see an instructor as interested and enthusiastic about teaching as Dave
- Thank you for making the course exciting, Dave! I always got a laugh out of each lecture and I respect how you were open with the class. Also, I love your enthusiasm for the course, it helped made the course engaging for me.
- The beginning part for the lectures which is assigned for transitioning from the last lecture
- The instructor has lots of enthusiasm, and is probably one of the only instructors to teach effectively with slides (as the instructor used pointers(no pun intended) to highlight material that was crucial). The drawings on the blackboard really helped me understand linked lists, which were a rather abstract concept otherwise.
- The instructor was very good with all of his lectures and explanations of the topics in the course.
- The punctuation joke( about ">'' "<"[in dr racket,is like(> 6 2) but in c is like (6 > 2), fish eat blablabalh] is so amazing, I nearly laugh the whole class. After that , it just feel so interesting to attend ur class.
- Using the coke cans to illustrate pointers was great! I am a very visual person, so having it explained in real-life terms was super helpful. Same with the memory allocation with the wall blocks. Explaining complicated concepts using simple things is extremely helpful since not all of us are CS geniuses. I can now confidently explain these things to other people too, and I'm not going to forget them anytime soon.
- Very funny lectures
Please make constructive comments about anything in the instructor's technique or style that could, in your opinion, be improved. |
- Assignments seems to be based on only implementation and where interface was given. May be we can have somewhat mixture of questions where we are not only implementing functions but also trying to use those functions or may be correcting the errors in the functions. Testing a function can also be a question
- Can't think of any.
- Coding some examples in class would help with understanding and maybe spend more time on the important material and less on the basic material
- Dave
- Decent at explaining things
- define the form of the exam in advance
e.g. Definition, Programming
- Explanation on the board is easier to understand in my opinion than the stepper
- Give us a warning next time that Wall-e is a sad movie...
Seriously, though, this course was extremely well done. I would give up my degree if that meant I could take more CS classes with Dave. I feel confident that I can go into the real world or CS and not be a complete guppy. I am actually able to have conversations with my CS friends, and instead of calling the compiler the elves in my computer that do magical things, I know what it actually is and how the elves store memory, etc.
- I did not think it was necessary to use the wall as an example for memory.
- I think that there is room for improvement with regard to the structure and organization of the assignments themselves, ie: clarify instructions or maintain consistency with second chance questions.
- Make the exam scores a little higher
- Maybe some more clicker questions?
- - more fun bonus questions on assignments
- My previous CS 135 instructor also posted slides that was used in the lecture which has all the additional drawings he had in class.
- No
- Off track sometimes, so I had trouble focusing
- quit using "anal", it confuses visa student who have to google search it...
- sometimes too fast and sometimes too slow, judge pace on difficulty of the content not 'how much we need to get through'
- The asymptotic concept for big O notation was a little confusing (but I have less math than other students in the class, so that may be why). A wider variety of Hawaiian shirts would be nice.
- The blackboard drawings were super helpful when we were talking about nodes. However, I believe more emphasis (including blackboard drawings) should have been placed on pointers since they are so fundamental.
- the exam is too hard.
- The only thing I can think of is that he should continue to use more real world examples of the applications of the code being taught. They were always interesting and really motivated the need to learn the material.
- too much work
- very structured course with a lot of links from different sections so it is very interactive.
- - Wish clicker questions were a bit more clear to understand
- Wish explanation was a bit low aimed in some cases and not too high level
- With all the little things that were introduced in the course, I feel it would be appropriate to create more simple clicker questions that are very quick to do.
What were the strong points of the course? |
- Assignments really makes you understand and apply the materials and concepts
- Being taught by Dave
- Dave
- - Drawing out pointers*****!!!!!!
- The assignments were not too hard, but not too easy.
- Going through example code
- Excellent material that introduces imperative programming
- good
- good assignments
good content
- Great lectures,interesting assignments
- I finally understand how a computer stores memory and works! I never quite understood how you can write a bunch of code and it magically works, but having Dave explain it all blew my mind. If I had taken this course (with him) years ago I probably would have majored in CS and become the next Zuckerberg (or not).
- I like the way the course material progresses with lectures leading into others. I feel like the current progression is good and concepts are introduced at appropriate times.
- improve our math logic
- Interesting course. A good amount of content, thorough explanations, and a great prof to teach it
- Interesting, challenging
- Lectures is very helpful
- Lots of info, well taught, useful assignments, very fun atmosphere
- Loved learning about pointers and efficiency
- Nodes, linked lists were very easy to understand due to Dave's teaching style.
- Quite interesting than Racket, learnt a lot of cool stuff
- loved that tutorials had a clicker component to make up for the marks lost in answering the questions wrong during lectures
- Super interesting!
- The assignments perfectly reinforced course content.
- The course on the whole was well-balanced, interesting and fun.
- The material was taught efficiently and effectively.
- The pace at which the material was introduced.
- The topics are very interesting.
- There seems to be a perfect relation between all the lectures which was helpful in understanding
- To have an understanding of C and mostly to analysis the algorithms and how to design functions.
- Wall-E was great!
- We learn a lot of useful topics fundamental to CS.
What were the weak points of the course? |
- A bit too quick of a pace
- - Assignments - Too long and took too long, which was okay, but I wish we were given more practice problems not for marks, but just for practice. More exam type questions so we could get more practice. I felt that the course was lacking in practice problems which would have helped students like me who aren't in Math and are doing the course after not doing Math for almost two years
- I wish there were more office hours of multiple ISAs on the day the assignments were due or one day before.
- Wish questions on piazza were answered a couple of hours before the assignments are due as well.. I noticed that nobody answers those questions :(
- Assignments end up being a little too long especially near the end of the course.
- assignments too long
midterm too long too difficult
- buffer overflows
- I feel that having a week to do an assignment is too much time since we are only given 2 hours to write the midterm/final. Students will not be able to write code fast enough if they are always given so much time.
- It would have been good to have more time on some of the clicker questions that involved loops, I feel like 2 minutes wasn't long enough to walk through them.
- Midterm has too much coding questions
- No
- no
- No mention of external debugging tools such as gdb or Valgrind. (However, Seashell seems to give adequate error messages containing meaningful information).
- no weak points
- Not enough time/practice with pointers early on; made linked lists and arrary's unnecessarily difficult. (easy to understand concept but difficult to code)
- not really any significant ones worth mentioning
- Racket.
- The assignments are easier in the first 2 month and are harder in the last two month.
By the time final is just around the corner, I am unable to spend as much time on A10 than I would like to. Previously, CS used to drop 1 of the lowest assignment grade, I think that would still be helpful.
- The exams in CS courses such as this require you to fix all the minor details in your handwritten code whereas after doing all the assignments online I got into the habit of using the computer to find and fix the minor errors.
- The explanation for the tutorials and assignments were good but the time was insufficient.
- The last few modules were quite difficult. That's probably more personal abilities though.
I think a little more time could have been spent on arrays of strings because they were tricky. and the concept that arrays are pointers, and then in A9 we had char*a[]. A pointer to an array? What kind of inception is this?
- The pacing was a bit off, very slow at first, then a lot of concepts added very quick
- Too much time on assignments.
- too much work
- While functional programming is an important aspect of learning, DrRacket should not take more space in the course than it does now.
- Would be nice if there is a deeper link with real life applications.
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. |
- Besides the one kid who always asked stupid questions it was great. I think Dave always handled his questions fairly, even though we all dreaded when his hand went up.
It was also great that a lot of the questions that were asked, Dave already had slides ready for! Obviously somebody has taught this course before (which also means that he remembers the things that students find difficult and takes that into consideration for future classes! Great job!)
- Class atmosphere was awesome.
- Good atmosphere.
- Good!
- I didn't really notice anything about race but I feel that means that the atmosphere was an inclusive one.
- Instructor was so good, he made CS great again! Really hope this instructor can teach me all my CS courses I take in the future.
- my only concern was the number of coke zero cans there would be on the table by the end of lecture ;P
- NO
- No
- Not affected
- Overall positive atmosphere
- positive
- positive atmosphere
- Positive effect on me. Love Dave's lecture.
- Positive. Every question, even repetitive ones, were answered with patience.
- Positive. He was open and awesome.
- positively, equality to all, Hawaiian shirt increases the spirit
- positively.
- Positively; Dave has many jokes which he shares with the class to lighten the atmosphere.
- Pretty good
- Seemed fine to me
- - Some students kept talking while the Prof was teaching which was distracting so my friend told them to shut up and it was all good.
- The atmosphere was positive for every class I attended
- The atmosphere was very positive in the classroom, as Dave is quite funny, or tries to be anyway, and makes the students laugh during the lecture.
- Well mixed class, appropriate noise levels, size and professor volume. Finding seats when late was a non-issue
Any other comments, e.g., class size, suitability of room, noise level, etc. |
- all good, need to be brighter
- Alright.
- Dave truly inspired me to continue with CS as the material was presented in a highly interesting and engaging manner. The best professor I've had so far without a doubt.
- Everything was good
- Everything was good.
- Forgive my Kanye moment, but although your explanations of pointers was great, the way Rashita explained them in the pre-midterm review was awesome. It's probably the way my brain works, but the way she explained them made the metaphorical lightbulb go off.
Room size was great until the week of the midterm, when everybody decides to come to class and they sit beside you talking about the midterm and assignments and you sit there silently fuming because I came to class to learn, not hear others talk about the assignment/midterm, but finally I tell them to be quiet, and they are for a few seconds, and then they start talking again. *sigh* Students will be students.
- good
- Good class size and room.
- I am sorry. I really want to finish my final for this course, but I have some family issue, and I have to drop the whole term. Hope everything will be fine and nice.
Thank you for giving such a great CS course. I will come back and retake it.
- love the memes
- N/A
- No
- No
- No other comments
- Thanks, even if I'm barely gonna pass, I learned a lot and had fun
- The room was bright and sunny and everyone was able to be closer to the professor. Despite it being kind of cramped and lacking in outlets for laptops, it was a good experience to be close to the professor.