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: 71 / 90 (79%)
Evaluate the organization and coherence of the lectures. |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
58 | 12 | 1 | | | |
82% | 17% | 1% | | | |
At what level were the instructor's explanations aimed? |
Too high | Somewhat too high | Just right | Somewhat too low | Too low | No opinion |
| 1 | 67 | 3 | | |
| 1% | 94% | 4% | | |
Evaluate the instructor's treatment of students' questions. |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
45 | 22 | 3 | | 1 | |
63% | 31% | 4% | | 1% | |
Evaluate the effectiveness of the instructor's visual presentation (blackboard, overheads, etc.). |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
56 | 11 | 4 | | | |
79% | 15% | 6% | | | |
Evaluate the effectiveness of the instructor's oral presentation. |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
66 | 4 | 1 | | | |
93% | 6% | 1% | | | |
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 | 6 | 5 | 1 | | 40 |
26% | 9% | 7% | 1% | | 57% |
Did you find the course interesting? |
Very Interesting | Interesting | Not interesting | No opinion |
42 | 27 | 2 | |
59% | 38% | 3% | |
Evaluate the overall effectiveness of the instructor as a teacher. |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
66 | 4 | | 1 | | |
93% | 6% | | 1% | | |
What proportion of lectures did you attend in this course? |
90-100% | 75-90% | 50-75% | 25-50% | < 25% |
63 | 8 | | | |
89% | 11% | | | |
Was the assigned work (assignments, projects, etc.) helpful in learning the course content? |
Very helpful | Helpful | Not helpful | No work assigned | No opinion |
45 | 24 | 1 | | 1 |
63% | 34% | 1% | | 1% |
Were the printed notes (if any) helpful in learning the course content? |
Very helpful | Helpful | Not helpful | No printed course notes | No opinion |
39 | 18 | 2 | 3 | 8 |
56% | 26% | 3% | 4% | 11% |
Was the required textbook (if any) helpful in learning the course content? |
Very helpful | Helpful | Not helpful | No text required | No opinion |
6 | 3 | 11 | 27 | 23 |
9% | 4% | 16% | 39% | 33% |
Did the course introduce an appropriate amount of new material? |
Too much | Somewhat too much | Okay | Somewhat too little | Too little | No opinion |
| 12 | 51 | 4 | 2 | 2 |
| 17% | 72% | 6% | 3% | 3% |
Was the amount of assigned work required for the course appropriate? |
Too much | Somewhat too much | Okay | Somewhat too little | Too little | No opinion |
9 | 29 | 32 | 1 | | |
13% | 41% | 45% | 1% | | |
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 | 38 | 14 | 14 |
| 7% | 54% | 20% | 20% |
Evaluate the organization and coherence of the lectures. |
- [Excellent] Infact the most organized prof ever
- [Excellent] This man is on point styll
At what level were the instructor's explanations aimed? |
- [Just right] Mans schooled us with CS theory
Evaluate the instructor's treatment of students' questions. |
- [Excellent] Dave is a real one, and even though we be foolin he stiill grinds all day
- [Good] int main(){
int try = 0;
while(satisfied_answer){
++try;
}
return try;
}
Evaluate the effectiveness of the instructor's visual presentation (blackboard, overheads, etc.). |
- [Excellent] Man had slides for dayssssss
- [Satisfactory] Prof can try turn all the light on except for the light right above the blackboard in order for us to be able to see the blackboard and the projector at the same time. Since when the light right above the blackboard are on, it's really hard to see the contents on the projector.
Evaluate the effectiveness of the instructor's oral presentation. |
- [Excellent] Lot of energy, which helps in paying attention.
- [Excellent] Vocals were on point, i can't lie, man has bars
Was the instructor available for help outside of class? |
- [I did not seek help] He's always on the block, even when he's not
Did you find the course interesting? |
- [Very Interesting] Higher education instead of getting high
- [Very Interesting] Special shout to the pointer explanation by Dave. Excellent use of the surroundings :)
Evaluate the overall effectiveness of the instructor as a teacher. |
- [Excellent] Mans stayed grinding, so I gotta respect the grind. He's a real one styll. Kept it 100 all semester.
What proportion of lectures did you attend in this course? |
- [90-100%] Clicker mans stylll
- [90-100%] Couldn't afford missing even a single 5 minutes of a movie
Was the assigned work (assignments, projects, etc.) helpful in learning the course content? |
- [Very helpful] Bare assignments styll
- [Very helpful] Be thorough with the assignments and you don't need to self study. They just cover it all.
Were the printed notes (if any) helpful in learning the course content? |
- [Very helpful] Specifically the examples
Was the required textbook (if any) helpful in learning the course content? |
- [Not helpful] Not needed
- [Very helpful] Bare handout styll
Did the course introduce an appropriate amount of new material? |
- [Okay] Mans taught us theory that we aint ever known before
- [Somewhat too much] However, extra something for your money is always good.(not too much tho)
Was the amount of assigned work required for the course appropriate? |
- [Okay] Even though the assignments required a lot of time to complete, doing the course without them would be impossible.
- [Okay] idek, mans had bare assignments styll
- [Somewhat too much] Some of the assignments took a while, but they helped me understand the material more so that was okay.
- [Somewhat too much] Towards the end it got a little too much.
- [Too much] Assignments are too long, time consuming
On average, how many hours per week did you spend on this course outside of lectures? |
- [11-15 hours] Mans put in bare time styll, gotta put in work fam
- [> 15 hours] Thanks to the assignments
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. |
- 10 min movie before class
- As always, his examples and walkthroughs of code made it really easy to understand core concepts. I was really scared of pointers coming into the course (as I heard it was where many people started to struggle in CS136) but it turned out fine.
please teach me for all my CS courses. i don't know what it's like to learn CS without dave
- Awesome high and low voices, and drawing stuff on the building bricks i.e. for pointers were very helpful and a lot of fun.
- Class atmosphere is positive.
A lot of effort put into teaching.
Explanations were very clear and easy to understand.
- dave is amazing i wish he's the prof for all my courses
- Dave is an awesome prof
- Dave is awesome.. He is funny and cool and explains every concept very clearly..
- Dave presented the material well and helped students understand hard(er) concepts like linked lists, pointers, trees etc by giving them ample time, drawing diagrams, and doing them again and again.
- Dave was a super engaging prof and I'm glad that I was able to be in his class. His explanations were really clear and helped me understand the content without being boring.
- Dave was my prof for CS135 and I was lucky enough to have him again for CS136. He is very good at his oral and visual presentations of material to students. This allows for better understanding, especially since we're learning so much new stuff in CS136.
- Dave was the best! Fantastic explainer and made concepts very interesting and entertaining. It was a great experience to be in his section. :)
- Did a good job of keeping students engaged and interested in the course material
- Enthusiasm, presentation of information, oral communication
- Everything
- Everything!
- Excellent presentation, very engaging. Well organized.
- Excellent speaker/presenter. Really broke things down so people could understand. Also the Simpsons movie was blessed.
- Explained concepts really well.
- Good at explaining concepts
- Grab attention
- Great at creative teaching.
A lot of the examples given in class relates to real life non-cs things, and helped better understanding and memorizing the key concepts
- Great job adding humor while still retaining educative content.
- Great job on keeping the class engaged! Explanations were also extremely clear, thank you for being so awesome! :)
- He's funny, and kept my attention even for the few times the material was a bit dull. He also did a lot of examples of going through code on the blackboard, and examples of writing/running code in Seashell itself.
- Honestly just keep up the good work. Instructors like Dave are hard to come by these days.
- I love you Dave :) you are the best prof I've had! Super fun personality and sick dude!!1!1!1!!!1!!!
- Incorporation of humour to keep the audience's attention
- Kept me awake unlike other profs where i get bored and sleep.
- makes lectures interesting, uses appropriate analogies
- Makes the even the most difficult concepts interesting and easy at the same time
Well done Dave!!!!!!!
yeaaaaa
- Much awesome
- Outstanding instructor. Super clear presentation style, engaging and hilarious. Brought lots of colour to sometimes drier content. Well structured content. Gave students a sense of confidence.
- Really good, appreciated the amount of effort he put into his lectures and really cared if we understood concepts or not.
- -Stepping through code on the board was very helpful
- The assignments help see practical applications of what we learn in the lectures.
- The way Dave explains concepts or how a program works using diagrams is really useful.
- This man is diligent and invested in teaching. Always trying to put in the most effort possible with examples, anecdotes and what not. He definitely went the extra mile to school us in CS.
- Too much for such a small space.
- Treatment of students and the pre-lecture videos/movies.
- Tries to be funny, happens to be funny most of the time. Very little cringe inducing jokes, but sometimes they appear.
- Used visuals such as drawings effectively
- Very engaging and knew how to keep student attention.
- Very entertaining. Good examples explaining concepts with memorable examples.
- Very good explanations. A lot of good analogies to help make complicated concepts easier to understand. Funny
- Very good speaker, and very good at explaining new topics
- Very interesting lectures and attractive personalities
Please make constructive comments about anything in the instructor's technique or style that could, in your opinion, be improved. |
- Can't think of anything.
- Class was fine
- Dave did a pretty good job, so no comment.
- Great guy
- I would appreciate it if he went through the thought process of solving more of the clicker questions, even if they seem obvious and everyone gets them right.
- I would suggest Dave to incorporate more stories or something to retain our attention. Especially after that lesson with arrays and pointers, everyone around me had the dead fish look, where we all were dazed with glazed eyes. A small break or refresher would have allowed more information to sink in and given us time to absorb what was given to us.
- If possible try to explain even the difficult part (like the red boxes) the way you teach the rest. It's beneficial if the students get it, and don't really affect if a student doesn't.
- Instructor should try to ease low-level, beginner explanations to advanced examples of concepts so assignments don't seem so hard.
- Maybe a little more time on harder portions of the course (ex. pointers)
- More edgy jokes.
- More imagery/diagrams in the slides might be helpful to the people who are having trouble grasping the concept.
- no opinion
- None
- none
- Nothing
- Nothing critical to say about Dave.
- Nothing much fam, keep on doing you. It's all good over here, forget whatever other wastemans be talking.
- Nothing, he's too awesome.
- Overall is good, he can be sometimes a bit slow on topics and then rush on other topics to make sure we covered the section.
- Please stay the same.. You are awesome
- Sometimes tangents went a little too off topic and could be made more accessible to all students.
- Spend more time on concepts that are the most difficult
- Use more examples.
- Visuals on the slides instead of drawing on the board, since most of us don't take notes down, don't draw on walls
- When you are teaching efficiency, it would have been nice to go through more examples using summation notation. I found that when studying, sigma notation was very helpful for myself.
What were the strong points of the course? |
- Arrays, Pointers, Sorting Algorithms
- C memory model
- Challenging so that I learned and was tested.
- Course notes were very comprehensive, assignments were challenging and helpful for understanding the concepts.
- Dave
- Easy to understand.
- effective and Interesting
- Emphasized contrast between imperative and functional programming.
- Examples, the examples in class were very well thought out, and all related analogies were super helpful. :)
- Fantastic, clear lecture notes and slides.
- Good amount of knew material, a in depth exploration of intermediate theory such as ADTs and memory allocation. Lot's of examples and code to walk through the rather abstract and difficult theories.
- Good examples in the notes
- I enjoyed everything after the midterm.
- I liked the organization of slides (including higher level concepts and important points).
- Interesting concepts
- Interesting content, visually and orally presented well.
- Interesting material, challenging assignments and easy to help outside class.
- Introduced a good amount of new concepts, good presentation of information, entertaining lectures
- Introduction to C
- It was a nice introduction to a new style of programming, and it was pretty interesting throughout.
- It was a really good introduction to C and imperative programming.
- Learned memory allocation
- no opinion
- Order in which materials were delivered made a lot of sense.
- Posted slides online.
- The lecture notes were really clear and thorough.
- The material is very interesting and is definitely useful for jobs outside of school
- The movement to a new language and new paradigm.
- The professor's enthusiasm.
- Yes
What were the weak points of the course? |
- 1. I hate seashell.
2. What was assignment 9 even?
3. When Dave was sick.
- Assignment 9
- Assignments sometimes too long or not helpful with learning.
- content was dry sometimes
- Efficiency was not explained well. Merge sort appeared many times in the assignment and I still don't fully understand how it works. The slides gave the code but no visualisation. Seashell's errors for memory leaks was one of the most frustrating experiences to go through
- Help was not always available, only at certain times when it was inconvenient
- Linked Lists, Intro to C.
- Memory management was handled in a terrible way through Seashell, At one point I ran my solution for merge-sort linkedlists from hackerrank on seashell and the solution, which was confirmed to work, gave a multitude of errors. So the way memory management was handled could be improved.
- N/A
- No
- No meme contest.
- no opinion
- none
- None :)
- Online assignment submitting portal felt a little disorganized, and not very user friendly
- Pacing was slightly slow for me, probably about a good pace for the rest.
- Pointers
- Racket, using a functional language as an imperative one
- Really trying to adapt to seashell and C syntax was a pain in the beginning. It took me a while to understand .c and .h, testing etc...
- -seashelll sucked. I have dual monitors and can't make use of them because of the interface. There should be an alternative method of completing assignments that students can use. Maybe introduce it on an optional office hour or something
-Add that peer code review/marking thing you talked about in class
-ensure homework is able to be completed without reading ahead
-post lecture slides 2 days before lectures so we have time to print it out
- Slow start
- Some assignment questions were unnecessarily confusing; they should be more straight to the point. There should be more cohesion amongst the course instructors.
- some assignments are too hard
- Sometimes things were not mentioned in the slides and I had to figure it using trial and error. ie it was not mentioned that scanf returns -1 when it reads in eof.
- The assignments could be slightly more balanced, instead of having some week's workload more than double of some other week's.
- the assignments in this class is really horrible, at first it said the assignments is 10/10, that is OK, though some of them are meaningless and unrelated to real life. After that it goes to 11/11,and a terrible hard assignment 11 appears, just due on the Monday and we start final in Friday. I do not know why profs want to do this and on one tells why.The only thing I can think about the course is that the profs in this class do not care students at all.
- The assignments were rather long. It always took me longer to do CS than other courses. I also think that the students would be more thorough with testing if we hadn't just spent forever just writing code.
- The course didn't focus enough time on the harder concepts after linked lists, and there was a gap between what was asked in the assignment and what was taught in the class. Some more knowledge would considerably reduce time spent correcting "errors"
- The secret tests on Marmoset are so arbitrary. Even if you pass your basic tests, you still might get a 60 on the assignment. I felt that this was too secret, as it is just like putting a bag over your head and walking into the bad side of town hoping you don't get beat up or mugged whilst walking.Additionally, I don't think that the hand marking should be so rigid. In the first day of class, we talked about how in a class, there can be a large variety of possible solutions to a problem depending on who programs it. Even if our solutions are slightly slower or less efficient, we are students who have been exposed to this material for less than a week. To expect picture perfect code is unreasonable in my perspective.
- This course requires rather a lot of time commitment compared to other course, but that comes along with all computer science courses.
- Timing of lecture material progress and assignment due dates: could not start early on them unless we read the slides in advance, which could be a bit difficult for those of us who learn better from lectures and hearing the concepts explained out loud. The Monday due date for the last three assignments makes a lot more sense timing-wise for me!
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. |
- amazing
- Class atmosphere is positive as the instructor gave us opportunities to interact with fellow classmate.
Lots of people are raising questions.
- Dave is a real one; regardless of your race, colour, gender or which gang you rep, he treats everyone fairly with the upmost respect. Respect.
- Everyone is just happy to have Dave so the class atmosphere was positive.
- No
- No
- no comment
- No issues with class atmosphere.
- no opinion
- No, everything was positive.
- none
- Nope
- Nope.
- Positive! Dave is super fun.
- Positively. Kept energy up as much as possible.
- Positively/negatively: too much hype, sometimes chaotic to get in.
- Positively; good atmosphere.
- The class atmosphere was good. No complaints, no matter who asked questions, Dave would respond in the same manner.
- Very quite classroom, positive when any mood could be observed
Any other comments, e.g., class size, suitability of room, noise level, etc. |
- A little too crowded sometimes.
- Assignment 9 was too long. For an assignment that expands on our thinking, (dynamically located 'array' within another dynamically located string) that was the basis for 4 questions was too hard. If it is an expansion of our learning, ie. coding with stuff we haven't been taught or have seen from the lesson slides, there should be a significantly reduced number of questions. The Pantry question was frankly stupid and it was too ambitious, which lead to CS students ACTUALLY going to the tutorial office, thus leading to an extension.
- Better choice in movies. Simpsons is like a 4/10.
- Class size was somewhat small because people from other lectures tried sneaking in.
- Class was boring, really wanted to have a talkative class but people were too dull to even get Dave's sick references. Don't worry Dave, I got most of them. Lambda Lambda Lamda!
- Enjoyed the free food. Dave is the best.
- GG WP
- Good stuff
- i still wish we watched how to train your dragon 2.
- Larger classroom would be nice
- more spaces for Dave's class
- No comments
- No complaints here fam.
- no opinion
- Projector colors were bland
- Spare seats would be nice since class sizes were packed
- The class was packed, sometimes hard to find a seat.
- the MC classes are perfect place for the CS class, specially the ones on the second floor
- The pointers can be demonstrated in more complicated examples.
- Was hard to see if you sat too far back in the class.
- We need a bigger class to hold all the people trying to get into Dave's section. Or maybe a smaller one to keep everyone else out.
- Yes