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: 65 / 89 (73%)
Evaluate the organization and coherence of the lectures. |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
55 | 9 | 1 | | | |
85% | 14% | 2% | | | |
At what level were the instructor's explanations aimed? |
Too high | Somewhat too high | Just right | Somewhat too low | Too low | No opinion |
1 | 1 | 59 | 4 | | |
2% | 2% | 91% | 6% | | |
Evaluate the instructor's treatment of students' questions. |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
52 | 12 | 1 | | | |
80% | 18% | 2% | | | |
Evaluate the effectiveness of the instructor's visual presentation (blackboard, overheads, etc.). |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
49 | 14 | 1 | | | |
77% | 22% | 2% | | | |
Evaluate the effectiveness of the instructor's oral presentation. |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
60 | 4 | 1 | | | |
92% | 6% | 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 |
18 | 12 | 8 | 2 | | 25 |
28% | 18% | 12% | 3% | | 38% |
Did you find the course interesting? |
Very Interesting | Interesting | Not interesting | No opinion |
38 | 25 | 1 | 1 |
58% | 38% | 2% | 2% |
Evaluate the overall effectiveness of the instructor as a teacher. |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
63 | 2 | | | | |
97% | 3% | | | | |
What proportion of lectures did you attend in this course? |
90-100% | 75-90% | 50-75% | 25-50% | < 25% |
56 | 8 | 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 |
44 | 19 | 2 | | |
68% | 29% | 3% | | |
Were the printed notes (if any) helpful in learning the course content? |
Very helpful | Helpful | Not helpful | No printed course notes | No opinion |
26 | 20 | | 4 | 15 |
40% | 31% | | 6% | 23% |
Was the required textbook (if any) helpful in learning the course content? |
Very helpful | Helpful | Not helpful | No text required | No opinion |
3 | 8 | 5 | 19 | 29 |
5% | 12% | 8% | 30% | 45% |
Did the course introduce an appropriate amount of new material? |
Too much | Somewhat too much | Okay | Somewhat too little | Too little | No opinion |
| 7 | 48 | 8 | 1 | 1 |
| 11% | 74% | 12% | 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 |
3 | 32 | 27 | 1 | 1 | 1 |
5% | 49% | 42% | 2% | 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 |
| 13 | 29 | 19 | 3 |
| 20% | 45% | 30% | 5% |
Evaluate the organization and coherence of the lectures. |
- [Excellent] Dave is the best
- [Excellent] Dave made sure that he is prepared every class, as he remembers the material from the previous lecture and summarizes it before getting into new material.
- [Good] I feel like compared to last term's CS 135 course, this one was not as well-planned (but still pretty good anyways).
At what level were the instructor's explanations aimed? |
- [Just right] Dave made sure that everyone could understand the concepts by giving meaningful examples of the material and frequently answering questions.
- [Just right] I understood all of Dave's explanations
- [Somewhat too low] I would appreciate an option to either lane the course based on prior programming knowledge or allow people to test out, especially for CS135.
Evaluate the instructor's treatment of students' questions. |
- [Excellent] Dave blesses his students with his clear and understandable answers
- [Excellent] Dave made sure that the students' questions were thoroughly answered before moving on.
Evaluate the effectiveness of the instructor's visual presentation (blackboard, overheads, etc.). |
- [Excellent] Dave made considerable efforts in drawing masterpieces on the blackboard (and the wall) to demonstrate tough examples
- [Excellent] Dave made sure to use diagrams/figures/drawings to illustrate the more difficult material and to highlight any key concepts.
- [Excellent] pointers n memory r fun. jk. but diagrams really helped
Evaluate the effectiveness of the instructor's oral presentation. |
- [Excellent] Dave is comedy gold. He is great because I learn and enjoy myself in class at the same time.
- [Excellent] It was really great that Dave spoke using language that student could understand and connect with, rather than using lot's of big words that many people might not know the meaning of.
Was the instructor available for help outside of class? |
- [I did not seek help] Dave's teaching is so good I ace all my assignments and I never need any help outside of class.
Did you find the course interesting? |
- [Not interesting] Apart from a few neat concepts that I had not covered before, the course was entirely review, which leads to my lack of interest.
- [Very Interesting] Computer science has always been interesting to me, but after going to Dave's lectures, I feel that I enjoyed CS a lot more, not only because of the clear explanations, but also because of asides that makes me want to learn more on my free time.
- [Very Interesting] Computer science is awesome. So is Dave.
Evaluate the overall effectiveness of the instructor as a teacher. |
- [Excellent] Dave Tompkins was one of the best lecturers I've had in my first year of University. He clearly cares about his students and tries to make dry material more interesting.
- [Excellent] I have never had a professor (or teacher) that was quite like Dave before, he always makes sure that his explanations are clear through multiple examples and repetition of the material to ensure that we key concepts before moving on. He makes jokes and funny comments that keeps the class engaged and attentive and most impressively, managing to not fall behind while doing so. Lastly, he puts on 10 minutes of a movie before class starts to encourage students to get to class early, a very effective strategy that I've never seen anyone else do before, giving students another reason (aside from clicker marks) to go to class.
- [Excellent] Its super effective!
What proportion of lectures did you attend in this course? |
- [90-100%] I would not miss a Dave lecture for my life (and my money XD)
- [90-100%] Never missed a single class even when sick and sleep deprived. The combined benefit of watching a movie/listening to dave and learning CS is too great to miss.
Was the assigned work (assignments, projects, etc.) helpful in learning the course content? |
- [Helpful] Assigned work was helpful, but often extremely long in comparison of other courses, which was the cause of a lot of stress through the term.
- [Very helpful] It was pretty helpful to confirm how much I was absorbing, but sometimes it got overbearing.
Were the printed notes (if any) helpful in learning the course content? |
- [Very helpful] Notes were very clear.
Was the amount of assigned work required for the course appropriate? |
- [Okay] Sometimes it was, sometimes it wasn't.
On average, how many hours per week did you spend on this course outside of lectures? |
- [7-10 hours] I lost all aspects of my actual life during assignment 9.
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. |
- Clear explanations, boardwork is helpful in visualizing what the code is doing, very funny.
- Dave always does an excellent job lecturing. He's enthusiastic, intelligent, and thorough.
- Dave does an excellent job of maintaining students' attention, as well as explaining difficult concepts in multiple ways to try to appeal to a variety of different learning styles.
- Dave does everything well.
- Dave is a fun instructor. It feels more like a buddy that just knows more than us trying to help us all out instead of a stoic instructor feeding us course material.
- Dave is an amazing prof who is very engaging and fun to be around but he takes his job seriously and teaches the content well.
- dave made it really funny. math 135 with [NAME REMOVED] sucked because i wanted to kill myself cuz of the boredom. i never felt that way in dave's class. a1
- Dave Tompkins has done an excellent job of coordinating this course and making sure that all new material is taught at the right level for everyone. This is my second time having him as a professor and he has surely done a great job once again.
- Dave Tompkins was engaging in class which helped me pay attention and learn the material.
- Dave's lectures were always interesting. His explained everything really clear and told us many good jokes.
- Diagrams included in online notes where extremely helpful.
- Engaging. Made content easy to understand.
- Excellent structuring of lectures and examples, made everyone feel welcome in the room, made an attempt to keep everybody interested in the content, spoke to the class as equals, humorous personality and overall a great person to be around.
- For each example on the slides. The instructor talked and simulated the example which made it much more clear.
- Funny guy. Enjoy the atmosphere!
- Good at explaining
- Good examples given of concepts being taught
- Good explanations. I also love it when Dave talks about his daughter or relates lecture content to stuff like Inside Out (we did this thing where we watched 5 minutes of Inside Out at the beginning of each lecture so that we'd be done the entire thing by the end of the term)
- great
- Great teaching style to keep students entertained in class and still learning new stuff.
- Highest quality explanation of slides
Walked through examples very well
- His analogies were really helpful in understanding course content, and he made the class really entertaining.
- his explanation were very clear and interesting.
- I feel that Dave was able to effectively teach the courses content in a timely manner, while not rushing the material and keeping the class attentive through jokes and sarcastic comments.
- I know Dave has probably received a million positive reviews in his time here so I will keep this brief. I thoroughly enjoyed having him as my professor.
- Kept it real the whole time
- Making personal examples to make course material relatable.
- Presents very well. He makes abstract concepts understandable.
- Provide entertaining and memorable examples for concepts so that we would learn them effectively.
- Very engaging for the whole class, very enthusiastic, gave all the relevant examples.
- Very engaging. Cracks jokes often, but it never seems to go off topic or interfere with lecture. Tries to answer questions to the best of his abilities. Explains concepts very thoroughly and in a very relatable and understandable way.
- Very enthusiastic!
- Very enthusiastic, great presentations.
- Visual presentation was helpful.
Please make constructive comments about anything in the instructor's technique or style that could, in your opinion, be improved. |
- /
- All good, no ideas here.
- Bring out the lightsaber
- Dave hasn't done anything wrong.
- don't get sick or food poisoning.
- He talked about his lightsaber, but never brought it in class. I would like to see him wave it around during the lecture.
- I feel like some lectures had a ton of clicker questions, whereas others had very few or none at all. It would be great if the clicker questions could be spread out more evenly over all the lectures.
- Keep being you fam.
- More clicker please
- More tike spent on last few modules (ie. Efficiency and memory).
- More visual stuff (ex. diagrams)
- None
- None
- not enough star wars references
- Nothing - Excellent professor!
- Nothing.
- One thing I might recommend is perhaps Dave could consider spending less time addressing concerns with advanced content. While I understand that many students in the class have advanced knowledge, I think it would be best for their questions regarding this content to be answered outside of class.
- Pls improve puns.
- Send more free clickers!
- Um........... don't vandalize?
What were the strong points of the course? |
- /
- Arrays, integer data types.
- Assignments were very helpful in learning content, despite their general difficulty and length.
- Compared to CS 135, this course had more interesting material. C >>>>>> Racket
- Dave
- Dave. And learning C is cool.
- Everything
- Fun assignments
Intersting to learn about and use dynamic memory
- Great notes, though some examples can be a bit unclear at first or take some time to digest. Useful homework, great instructor.
- Great professor.
- I feel that the course served as a very good introduction to imperative programming for those new to it, as well as good review for students with prior experience.
- I learned a lot about memory use and run time which was nice to learn and know.
- Imperative programming
- Interesting
- Interesting material. Much different from CS135. It feels like it has more real world application. Assignments were interesting for the most part and not unforgivingly difficult.
- Interesting, big step into real world programming.
- Introduced C in a comfortable transition from Racket with sufficient high-level concepts.
- Lots of content, thorough explanations, I feel like I learned a lot this term.
- Memory management
- Not doing racket
- Pointers, linked lists.
- Seashell is great after I understand how to use it and the meaning of the error messages.
- The course ensured that we had a very in depth understanding of all the content through the assignments.
- The professor's sense of humor, the flowchart diagrams, and linked lists in general.
- This course introduced many new concepts of C in a timely manner in that it was possible to take in all the material taught in class before being introduced to new ones.
- Walk throughs of complicated segments of code on the blackboard was extremely helpful for understanding the material.
- Well organized, good teacher and very good lecture slides. Assignments were very direct and helped teach core concepts.
- Well-organized, felt like it had purpose and direction
- Working in two paradigms
What were the weak points of the course? |
- /
- A lot of time spent on assignments.
- A9 too long
- Assignments can sometimes be lengthy, but they are helpful for getting a strong understanding of the concepts. Assignment solutions occasionally use features from the yellow boxes (advanced sections) of the notes that weren't covered much in class, but they are good overall.
- Assignments too short
- Assignments were poorly written, unclear and not proofread well, test input on marmoset secret tests did not always adhere to the contract, piazza is not an efficient way to communicate information, course content needed for assignments was sometimes taught the day before the assignment was due, the contract stated in .h files was not always consistent with that of the assignment page, it was unclear what we were or were not allowed to use in each question, and style expectations were not made clear at all.
- Assignments were too long, especially for the assignments that correlated with difficult segments of the course, such as dynamic memory, as these tended to be longer and more difficult due to the material, introducing a lot of stress, as the length of the assignments was often not changed.
- At times, the content of the course is a little dry, despite Dave's attempts to liven the mood. I understand there is not much that can be done about this, but it is the one weakness I would note.
- hmm, earlier course notes?
- Honestly I felt that the pace was a bit too slow and the breadth could have been a bit wider. Also, I think assignments could have focused more on having fewer questions with more problem solving, Rather than more questions which had a lot of plug and chug
- I did not particularly enjoy or find use in the profound amounts of time analyzing stack frames. Sea shell is pretty bad, and marmoset is also bad.
- I wish there were more resources to help in preparing for midterms and finals. Marmoset sucks. Less rigid marking schemes for assignments would be nice.
- Marking schemes for the assignments were pretty unforgiving at first. Seashell was not a very good environment. It is slow and gives unhelpful error messages. Often disconnects from servers. Also, assignment 9.
- None
- None
- Not too many interesting real-world assignments.
- Nothing.
- pointers
- Pointers, linked lists.
- Racket
- Rather repetitive assignments
- Some mistakes on assignments wasted time
- Some of the assignment was really really long and I alongside many people have to spend significantly longer trying to complete the assignment where the content itself was challenging but the amount of work was so high as well. Oh, and seashell's error messages regarding memory leaks were so useless. Please make them more precise.
- Some questions on the assignments didn't seem helpful at all for understanding content. For example A6q1.
- The beginning with Racket. The final assignment was too big of a difficulty jump compared with the previous ones.
- There could have been a bit more focus on trees and graphs, and maybe a few more stack frame examples/ exercises.
- Very long/hard assignments
- When Dave was substituted :'(
- Why have no release tests in marmoset? :(
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. |
- /
- Both students and instructor where respectful to each other.
- Class atmosphere wasn't affected by anything.
- Dave provided a generally open and positive atmosphere in the classroom, and was generally discouraging of negative influences such as prejudice. I feel this had a positive effect on the class.
- Dave's attitude made the class very entertaining and energetic.
- It was a nice class. No complaints.
- No
- No
- No
- No
- No.
- Nope
- nope
- Nope
- nope
- Positive
- Positively.
- positively. Dave is high energy and nice, which brightens everyone's day.
- The class atmosphere was very good. The instructor and students held mutual respect for each other.
- The instructor made sure that the atmosphere was fun and relaxed, as he encouraged students to ask questions and participate in examples.
- Too busy lamenting over assignment 9 to notice.
Any other comments, e.g., class size, suitability of room, noise level, etc. |
- A bit small class
- Although I understand the small class size, it was really difficult to get into Dave's section since everyone wanted to, but as the course went on, there weren't as many people in Dave's lectures. I feel like maybe if the clicker questions can be answered from any lecture, it would give some students that didn't get into Dave's section a chance to go to a few of his lectures without losing clicker marks.
- Class size is good, I much prefer classrooms to lecture halls
- Class size, room, and noise level were all appropriate and made for a good learning environment.
- Class too small
- class was small
- Dave needs a bigger lecture hall
- Due to the number of students from other sections who frequently joined the class, there were usually very few seats available once class began. If possible, a larger room might be recommended for future sections.
- Good class size
- gr8 m8 i r8 8/8
- great
- I liked that Dave spoke on a platform that raised him higher up. Made seeing him easier when sitting in the back.
- I loved Insideout. But honestly, putting a movie is a cool idea.
- No
- None
- nope
- Please be a professor for cs 350 in the future
- Small classes are helpful.
- The class was a bit overcrowded.
- The class was a little crammed, but that's it.
- The room could have been better.
- This class was great. It was one of the few lectures I attended regularly.
There were a few reasons the term did not go as smoothly as I would have liked:
I continued my popular tradition of showing 5 minutes of a movie before each lecture. This term the students voted for Inside Out (Sec 001) and The Simpsons Movie (Sec 003).