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: 21 / 59 (36%)
The instructor(s) helped me to understand the course concepts. |
Strongly Disagree | Disagree | Neutral | Agree | Strongly Agree | No Basis for Rating |
2 | 3 | | 6 | 10 | |
10% | 14% | | 29% | 48% | |
The instructor(s) created a supportive environment that helped me learn (Supportive environments enable students to feel included and valued regardless of any aspect of their identity). |
Strongly Disagree | Disagree | Neutral | Agree | Strongly Agree | No Basis for Rating |
3 | 1 | 2 | 5 | 10 | |
14% | 5% | 10% | 24% | 48% | |
The instructor(s) stimulated my interest in this course. |
Strongly Disagree | Disagree | Neutral | Agree | Strongly Agree | No Basis for Rating |
2 | 2 | 4 | 1 | 12 | |
10% | 10% | 19% | 5% | 57% | |
The intended learning outcomes were identified (Learning outcomes/objectives articulate what students should be able to know, do, and/or value by the end of a course). |
Strongly Disagree | Disagree | Neutral | Agree | Strongly Agree | No Basis for Rating |
2 | | 3 | 10 | 6 | |
10% | | 14% | 48% | 29% | |
The course activities prepared me for the graded work. |
Strongly Disagree | Disagree | Neutral | Agree | Strongly Agree | No Basis for Rating |
2 | 3 | 5 | 7 | 4 | |
10% | 14% | 24% | 33% | 19% | |
The intended learning outcomes were assessed through my graded work. |
Strongly Disagree | Disagree | Neutral | Agree | Strongly Agree | No Basis for Rating |
| 1 | 3 | 12 | 5 | |
| 5% | 14% | 57% | 24% | |
The course workload demands were... |
Very Low | Low | Average | High | Very High | No Basis for Rating |
| | 7 | 10 | 4 | |
| | 33% | 48% | 19% | |
The instructor(s) helped me to understand the course concepts. |
- [Strongly Agree] Very fun professor and makes funny jokes to help teach the course!
The instructor(s) stimulated my interest in this course. |
- [Strongly Agree] Dave, you are the best prof. You should make more money. Fun, entertaining, coke and Pepsi lover and a nerd like me. Anyway, I sadly didn't go to many classes cause there was no learning outcome from going to class, but that being said, you are amazing. Here is my CS 135 review that couldn't make it to your CS 135 reviews website: https://pastebin.com/F4FdfZGQ
The course activities prepared me for the graded work. |
- [Disagree] I like when the professor teaches everything in the lectures and uses course notes as supplementary to fortify my learning. They shouldn't be making edx as the main way to learn the content.
Note: This is a complete list of comments I received, listed alphabetically to avoid bias.
The most important thing I learned in this course was: |
- ADTs and data structures
- C language
- coding is fun
- How to create efficient code
- Linked lists and how to code in C. Hopefully it's useful when learning C++ in CS 246.
- memory allocation
- Memory allocation, and modularization. To be more specific, how to use memory allocation to create ADTs.
- pointers
- Pointers.
- The mental fortitude needed to debug the same piece of code for hours with minimal assistance.
- Working with dynamic memory is like throwing your clothes in a heap and owing money to the Yakuza.
What helped me to learn in this course was: |
- chat gpt
- Dave Tompkins. He was possibly the only professor who had more than 10 people attending his lecture, and for good reason. I know people in other sections who snuck into Dave's lectures because they were the only good ones.
- Going through the assignments
- Going to class, discussing difficult concepts with my classmates.
- grinding
- I really liked the modules they helped, concept checks helped keep me on track.
- In class lecture and my ECE friend
- My peers and the tutoring center
- Online resources such as Youtube and class activities.
- The assignment helped me learn the most. Also, coding examples in the learning modules.
- the assignments
What changes, if any, would I suggest for this course? |
- A couple of things about this course: TAs are rude and unhelpful. Assignments always come with mistakes which is very annoying since I start them early, and it is an online course since you learn nothing in class, which is very sad cause I had Dave Tompkins, and I didn't go to class because it was a waste of time. That being said, I enjoyed the assignments, and Dave is the goat; increase his salary.
- An additional or longer lectures, because we always ran out of time for the class exercises, however the mini lectures were really useful.
- Bring back lectures
- Dave Tompkins is the only saving grace for an otherwise poorly-designed course. The flipped classroom model does little to help students and discourages them to go to lecture. The assignments are massive time sinks and do little to help understanding. The midterm contained concepts which were explicitly not course topics. The choices surrounding VSCode created technical issues at every single assignment. I would suggest returning to a classic style classroom, rethinking the philosophy of the assignments and especially testing the servers' capacity before subjecting them to such a massive course.
- I felt that the lectures weren't too useful; I feel like it may be more helpful if the exercises were for a tiny portion of marks that need to be completed like concept checks and lectures could be used similarly to office hours for help with the exercises instead of instructor going over each question with the whole class
- I would change the way the course modules are structured, to look more like the modules in the cs135 website. Also, have less focus on example. The examples we do in class are not that useful in learning. The assignments do what the examples do, but much better. Instead maybe have longer lectures, where course content is taught kinda like the mini lectures Dave Tompkins did, and then do one example based on the content learned.
- Less active learning
- Please teach the modules, don't keep it as a self study course; students lose their interests and have to end up learning and understand everything on their own
- Slightly less tedious assignments.
- Switch back to normal teaching instead of online
- use piazza rather than the discussion forums
- - Use VSCode immediately as possible, an online code editor(edx) is not productive and very painful to code in.
- Focus the lectures as the main way to learn and use the concept checks as supplementary.
- Fix the servers so we don't have a panic attack about our assignment because the servers are down.