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: 32 / 58 (55%)
Evaluate the organization and coherence of the lectures. |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
28 | 4 | | | | |
88% | 12% | | | | |
At what level were the instructor's explanations aimed? |
Too high | Somewhat too high | Just right | Somewhat too low | Too low | No opinion |
| 4 | 26 | 1 | 1 | |
| 12% | 81% | 3% | 3% | |
Evaluate the instructor's treatment of students' questions. |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
24 | 5 | 3 | | | |
75% | 16% | 9% | | | |
Evaluate the effectiveness of the instructor's visual presentation (blackboard, overheads, etc.). |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
26 | 5 | 1 | | | |
81% | 16% | 3% | | | |
Evaluate the effectiveness of the instructor's oral presentation. |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
26 | 5 | 1 | | | |
81% | 16% | 3% | | | |
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 |
17 | 3 | 2 | 1 | | 9 |
53% | 9% | 6% | 3% | | 28% |
Did you find the course interesting? |
Very Interesting | Interesting | Not interesting | No opinion |
20 | 8 | 2 | 2 |
62% | 25% | 6% | 6% |
Evaluate the overall effectiveness of the instructor as a teacher. |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
26 | 5 | 1 | | | |
81% | 16% | 3% | | | |
What proportion of lectures did you attend in this course? |
90-100% | 75-90% | 50-75% | 25-50% | < 25% |
24 | 6 | 2 | | |
75% | 19% | 6% | | |
Was the assigned work (assignments, projects, etc.) helpful in learning the course content? |
Very helpful | Helpful | Not helpful | No work assigned | No opinion |
24 | 7 | 1 | | |
75% | 22% | 3% | | |
Were the printed notes (if any) helpful in learning the course content? |
Very helpful | Helpful | Not helpful | No printed course notes | No opinion |
16 | 9 | 1 | 4 | |
53% | 30% | 3% | 13% | |
Was the required textbook (if any) helpful in learning the course content? |
Very helpful | Helpful | Not helpful | No text required | No opinion |
7 | 2 | 4 | 14 | |
26% | 7% | 15% | 52% | |
Did the course introduce an appropriate amount of new material? |
Too much | Somewhat too much | Okay | Somewhat too little | Too little | No opinion |
2 | 7 | 20 | 1 | 2 | |
6% | 22% | 62% | 3% | 6% | |
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 | 14 | 11 | 1 | | |
19% | 44% | 34% | 3% | | |
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 |
| 5 | 13 | 8 | 6 |
| 16% | 41% | 25% | 19% |
Evaluate the effectiveness of the instructor's visual presentation (blackboard, overheads, etc.). |
- [Excellent] Dave's slides are some of the most clear I've seen, perfect for both lectures and studying from at home.
- [Excellent] When Dave whhhipped out that light saber, I really felt the force in me. 10/10 would almost get sliced again.
Evaluate the effectiveness of the instructor's oral presentation. |
- [Excellent] I love when my prof yells, at the top of his lungs, "kill your babies" when I walk into the class. I like it even better when it turns out to be a metaphor that sticks with you and saves your metaphorical life several times over the semester.
- [Excellent] Very engaging voice, plenty loud enough.
Did you find the course interesting? |
- [Interesting] Despite considering myself good at coding already and this being an "introduction to coding" course, Dave managed to make this course interesting and engaging. The first weeks where we went over a lot of things I'd already learnt, like if statements, were still taught well and in an interesting enough way to make me keep returning to the lectures.
- [Not interesting] I know how to code in c# so much if this course was review.
Evaluate the overall effectiveness of the instructor as a teacher. |
- [Excellent] I personally think that Kermit did a slightly better job when Dave took that day off, but Dave's pretty good too.
- [Excellent] This is one of the most engaging, interesting classes I've had the pleasure of taking.
What proportion of lectures did you attend in this course? |
- [90-100%] Gotta keep up with Smallfoot yo, the suspense killed me every day
Was the assigned work (assignments, projects, etc.) helpful in learning the course content? |
- [Helpful] Good, but overwhelming. I found that it was difficult to pause and look over my notes as there was an assignment due every week that would take me a whole week to complete, so if there were any concepts that I didn't understand I didn't have much time to ask the question making me feel behing.
- [Not helpful] many of the questions edge cases were not clearly indicated. I.e. for the coke machine it was not clear putting that inserting 0$ was not allowed because it only said you cannot put in negative money. Also many questions were not clear what they were asking.
Were the printed notes (if any) helpful in learning the course content? |
- [Very helpful] Excellent notes
- [Very helpful] The quality and amount of work put into the notes was far beyond any class I've ever taken
Was the required textbook (if any) helpful in learning the course content? |
- [Not helpful] I did not use the textbook.
Did the course introduce an appropriate amount of new material? |
- [Okay] I would have liked to have more content on security, specifically with how code execution is obtained with stack and heap overflows, but I may be asking for too much :)
- [Okay] The only thing that is not good enough was that we are too hurry on the materials at the end.
- [Somewhat too little] In class me always thought the material strung together well, and that new material was introduced at a nice and steady pace, if a little slow at the start. End of term me is thinking "man, we actually didn't really do a lot of new stuff" despite knowing that we did, in fact, do a lot of new stuff. Maybe it's just the material sticking so well that it now feels familiar, or maybe the material was just really closely connected with the material learned from previous classes, idk.
Was the amount of assigned work required for the course appropriate? |
- [Okay] It was a lot but I'm glad it was because I feel more comfortable in c because of it.
- [Somewhat too much] For the amount of time I spent on assignments, the course only giving 20% credit for them seems unfair.
- [Somewhat too much] Maybe I am not good enough that I usually spend more than 6 hours to finish the assignments and spend more than 10 hours on the last 3 assignments
- [Somewhat too much] The later assignments take much longer than previous ones, there are too many parts when they could be made smaller and test the same amount of material.
On average, how many hours per week did you spend on this course outside of lectures? |
- [11-15 hours] Earlier in the course I spent around 3 hours outside of class.
- [3-6 hours] Later assignments took more time.
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. |
- Dave explained the course material very well! I could tell he put a lot of effort and energy into his lectures and it showed! I learned A LOT from Dave in class and I really enjoyed his class! Lectures were very engaging! Dave did a really amazing job of organizing the course.
- Dave's passion and humour
- Entertaining lectures and good explanation of material
- Everything
- Fantastic preparation and level of engagement
- good explanation
- Great and charismatic orator, with a uniquely infective enthusiasm about the material. Dave's presentation were always engaging, and I almost never felt that there was even room to be distracted.
- He is so interesting and always attracts our attention.
- He made absolutely sure that we knew everything we needed for each assignment.
- I think he is a very good speaker and gets his point across quite easily and effectively.
- Interesting props, movies, and jokes.
- Lectures weren't boring
- Some good examples that helped a concept stick in my head.
- The explanation of the content was very good.
- The instructor did a good job keeping the lectures and content fun and engaging.
- The instructor explained material extremely well and made good use of time in class.
- The instructor is perfect in explaining new concepts and algorithms,great analogy. I really enjoy his class. A really chill prof not only teaches me knowledge but also provides better learning experience.
- Very engaging, made class fun to attend and a boring day less boring
- visual presentation is done well for eg. stack thing he does in class
Please make constructive comments about anything in the instructor's technique or style that could, in your opinion, be improved. |
- already the best
- Can be a bit dismissive with student's questions during lectures, but I understand that it is difficult to maintain time for the material taught in class and to not always go on tangents
- I think his technique and style was fine.
- In the end of the term, things are going too fast. I know this is the part where everything is put together,but i hope more examples could be provided. The assignments are helpful but it takes a lot of time for me. Also, I wish the iclicker questions and the tests for the assignment can be released. I don't see why these won't be released since these stuff actually help us to learn. Also i wish the assignment solutions and tests will be provided after the marks are out.
- It might be the content of the course, but it felt a little dry. Rather than pacing it all out evenly, I feel like he could speed up through the easy sections and slow down during the harder sections. Some sections were too slow relative to the difficulty of the content.
- Moves too fast for students to understand material
- Nothing that I can think of.
- Sometimes in class, and this may just be because of how the course is laid out, Dave would almost switch into an 'information delivery' mode and chunks of time would go by without much engagement. For most classes, there was a good balance of questions to tangents to content, but some lectures would go by where the lack of clicker questions or just a comedic and/or tangential break was really apparent. I've tutored before, and I know how difficult it is to guage a room of students sometimes, but I think a good rule of thumb might be if no questions are being asked for about 7-10 slides, then we might need a clicker question or a quick story (or at least that's how I felt at times). Again, this was rare and didn't affect the course too much, but just some parts of the material that really needed a staggered lecture (the latter half of the strings unit, and some of the pointers unit comes to mid)
.
.
.
.
Also that Coke Zero consumption rate gives me anxiety, gotta be honest.
- Sometimes it felt like you were mocking some of the student questions which discouraged me to ask questions.
Also, I wish you gave us a little more time to ask questions when you say "How are we doing" rather than moving on (even just 5 seconds would be nice)
- tbh idk if this has to do w anything about style but i think it would be better if he'd release the clicker questions so as to facilitate our revision.
DRINK LESS COKE. it's bad for health
- The instructor did a very good job of using real-world examples and using weird/quirky experiments to illustrate what he was trying to teach us.
- The instructor would benefit from making the assignment smaller, I feel like, if carefully done, assignments could provide the same challenge with fewer questions.
- you are good Dave!
What were the strong points of the course? |
- assignments reinforced class content and helped understanding
- contents are useful
- CS 136 covers all the basic materials that we need for programming and explained many things that we did not learn in CS 116 and CS 115
- Dave
- Fun lectures.
- Gained a better understanding of data abstraction and pointers.
- Introduced very useful and interesting material. The course was very well organized. TA's were very knowledgeable and awesome at answering questions on Piazza! Piazza was VERY useful!
- just loved it
- Provides ideas about the module designs.
- Starts off well then becomes too abstract and too focused on memory
- The assignments were good learning experiences and the instructor made sure all important points were emphasized.
- The assignments were very interesting and the instructor made the content very easy to understand which made the assignments a good practice to test out skills
- The content is interesting, attractive.
- The distribution of the concepts among the assignments felt very appropriate and never too much for one assignment. The depth of the material (other than the abstract data types at the end) also felt just right: never too detailed for students of this level to know, but never shallow enough to feel like a grade 12 coding class (like some parts of 135 felt).
- the instructor makes the course really fun!! Best prof ever !!
- The lectures and the assignments
- well i mean it helps us to learn a new programming language so
- Well-taught with engaging instructor, and an interesting look at lower-level programming with C, and stack & heap use
What were the weak points of the course? |
- Assignments and midterm are HARD and too much content. Ate into my life too much. Would have preferred a software that wasn't online (like Seashell was) so I could work on assignments on the go.
- Assignments are very tedious and long, I would have appreciated an extension on harder questions beforehand rather than betting on an extensions happening
- Confusing assignment questions.
- I don't think I am eligible to comment on this.
- i feel that there should be more tutorial questions to help us w our assignments
- I think a lot of the assignments (including the earliest ones) were a bit too difficult.
- Introduced somewhat too much new material and assignments were quite long (especially the assignments at the end of the semester). While the assignments were VERY useful in learning the course material, I found them to be too long.
Midterm was challenging. I felt I was in a really good position going into the midterm (understood course material, did very well on assignments and completed assignments on my own, studied a lot for the midterm) and I was surprised by how challenging I found the midterm to be.
- Lecture notes lack more in-depth examples.
- none
- Not enough new content. Not enough broad concepts or theories; felt like the significant majority of the course was spent on syntax and only the last few chapters was actually spent on what the course was about.
- Paper exam paper is somewhat too small, prefer to have more extra spaces for drafts...
- The film choice
- The tutorials felt extremely useless. I would have liked if we did those illustrations on the website to help us understand the code rather than actual code. We do enough of that in the assignments.
- There's a lot to learn but the time is limited.
- Towards the end of the course, I felt like some of the material, specifically things like the bst and linked list functions like insert,remove, etc. were spoonfed a bit too much. I realize that I might not be in the majority of the class, and that this is a constantly changing balance to maintain, but I think it would have been a better or more thorough learning experience to implement those functions ourselves, and it would have given us a deeper understanding of how these abstract data types work.
My suggestion would be to outline the steps in the functions, perhaps with the accompanying diagrams that were already presented, but just not show the code straight up. It might be trickier to point out the common errors that students make when implementing these, but if they were given as black questions (and possibly with collaboration encouraged for them, idk) on A8 or maybe A9, I think it would bring about a more fundamental understanding of these abstract data types since those are the only concepts that I feel like I've just read on the slides and mentally copy-pasted the coding steps rather than really get down and understand the structures. I still get them, and how they work and stuff, but it didn't feel as well understood as many of the other concepts, like the stack ADT (implementing which for the first time all by ourselves was the most productive learning experience for me).
I also think the first third of the course could be sped up, but that's just my not-that-strong opinion and probably doesn't extend to the class as a whole. Overall though, great course!
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. |
- Atmosphere is always positive.
- Great.
- [humerous but inappropriate comment removed]
- I don't think it affected negatively at all.
- No
- Not at all
- Positive, the class did not do anything to make me feel uncomfortable.
- positively
- positively.
- The atmosphere was extremely positive.
- The class atmosphere was extremely positive because of the instructor's charisma.
- The class atmosphere was positive.
- Very positive class environment, no issues.
- Yes, it was. I am always happy when Dave is talking jokes.
Any other comments, e.g., class size, suitability of room, noise level, etc. |
- Class size and everything was fine
- Dr. Pepper Zero > Coke Zero. Coke zero is comme ci comme ca
- FIX THE CLOCK and the projector screen wasn't working well for awhile -_-
- good overall
- I understand that the assignments are after all assignments and are there to enhance your learning process but it'll be nice if the weight of the assignments can be increased to maybe a 25, especially when you put in genuine effort without taking much help :)
- I wonder if the IT guys ever got back to the audio issue....probably not, lol
- none
- Our projector was bad and the speakers weren't loud enough
- Perfect.
- Some of the tutorials I attended started late and then we didn't have time to get through all of the material for that tutorial (this only happened sometimes when a specific TA was running the tutorial). The other TA was always on time and got through all the material. When the tutorials did start late they were rushed and the quality of the learning experience decreased.
It would have been nice to have more Clicker questions throughout the lectures.