Course Description:
CS 135: Designing Functional Programs
An introduction to the fundamentals of computer science through the application of elementary programming patterns in the functional style of programming. Syntax and semantics of a functional programming language. Tracing via substitution. Design, testing, and documentation. Linear and nonlinear data structures. Recursive data definitions. Abstraction and encapsulation. Generative and structural recursion. Historical context.
Dave's Comments:
Teaching Evaluations:
Number of Respondents: 84 / 108 (78%)
Evaluate the organization and coherence of the lectures. |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
69 | 15 | | | | |
82% | 18% | | | | |
At what level were the instructor's explanations aimed? |
Too high | Somewhat too high | Just right | Somewhat too low | Too low | No opinion |
2 | 16 | 62 | 4 | | |
2% | 19% | 74% | 5% | | |
Evaluate the instructor's treatment of students' questions. |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
65 | 16 | 2 | | | 1 |
77% | 19% | 2% | | | 1% |
Evaluate the effectiveness of the instructor's visual presentation (blackboard, overheads, etc.). |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
65 | 19 | | | | |
77% | 23% | | | | |
Evaluate the effectiveness of the instructor's oral presentation. |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
77 | 7 | | | | |
92% | 8% | | | | |
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 |
27 | 13 | 9 | | | 34 |
33% | 16% | 11% | | | 41% |
Did you find the course interesting? |
Very Interesting | Interesting | Not interesting | No opinion |
54 | 24 | 5 | 1 |
64% | 29% | 6% | 1% |
Evaluate the overall effectiveness of the instructor as a teacher. |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
74 | 10 | | | | |
88% | 12% | | | | |
What proportion of lectures did you attend in this course? |
90-100% | 75-90% | 50-75% | 25-50% | < 25% |
76 | 6 | 2 | | |
90% | 7% | 2% | | |
Was the assigned work (assignments, projects, etc.) helpful in learning the course content? |
Very helpful | Helpful | Not helpful | No work assigned | No opinion |
65 | 17 | 1 | | 1 |
77% | 20% | 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 |
28 | 31 | | 14 | 10 |
34% | 37% | | 17% | 12% |
Was the required textbook (if any) helpful in learning the course content? |
Very helpful | Helpful | Not helpful | No text required | No opinion |
11 | 18 | 10 | 24 | 19 |
13% | 22% | 12% | 29% | 23% |
Did the course introduce an appropriate amount of new material? |
Too much | Somewhat too much | Okay | Somewhat too little | Too little | No opinion |
6 | 20 | 51 | 5 | 2 | |
7% | 24% | 61% | 6% | 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 |
8 | 28 | 46 | | 1 | 1 |
10% | 33% | 55% | | 1% | 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 |
4 | 30 | 32 | 14 | 3 |
5% | 36% | 39% | 17% | 4% |
Evaluate the organization and coherence of the lectures. |
- [Excellent] u is good
- [Good] Dave ran through everything at the same speed. A good speed for most things, but more difficult material seemed rushed.
At what level were the instructor's explanations aimed? |
- [Somewhat too high] There were a lot "Don't worry if this doesn't make sense," comments directed at the CS-super-students, instead of comments directed at the average class level.
- [Somewhat too low] Just my opinion, but the content generally wasn't difficult. So all in all, I found the lectures a bit slow pacedâbut that's not really the instructor's fault.
Evaluate the instructor's treatment of students' questions. |
- [Excellent] makes sure to always repeat the questions since not everyone can always hear the question being asked
- [Good] Mostly very good, though Dave sometimes struggles to understand how a student doesn't understand.
Evaluate the effectiveness of the instructor's visual presentation (blackboard, overheads, etc.). |
- [Excellent] I really liked the way we went through example problems in class.
Evaluate the effectiveness of the instructor's oral presentation. |
- [Excellent] Bring back the multiple personalities with more hats
- [Excellent] Makes class engaging and not boring so i can keep focused for longer
- [Excellent] Very clear and audible voice! It can be heard from all the way at the back. Also, your excited tone engages students.
- [Excellent] Very Enthusiastic !!!:)
- [Excellent] Very interesting and easy to follow.
- [Good] His different voices and enthusiasm make a dry-as-bones course bearable.
Was the instructor available for help outside of class? |
- [I did not seek help] But Piazza makes the instructor very available.
- [Most of the time] His office hours were a little unclear.
Did you find the course interesting? |
- [Interesting] some of the earlier course content went by a little bit too slow (even though there was plenty of time for the more challenging content)
- [Not interesting] Not Dave's fault, but the course as a whole is pretty boring
- [Very Interesting] Favourite course this semester.
- [Very Interesting] I like computers.
I like science.
Yippee-ki-yay.
Evaluate the overall effectiveness of the instructor as a teacher. |
- [Excellent] Best prof I've had so far!
- [Excellent] Love how you teach the class
- [Excellent] my favourite proffesor
What proportion of lectures did you attend in this course? |
- [90-100%] All of them - too good to miss.
Was the assigned work (assignments, projects, etc.) helpful in learning the course content? |
- [Helpful] They were too hard, sometimes takes me 10 hours to finish, and the instructions of the assignments are not clear, there were couple times my assignment was being evaluated error on the basic test, and I don't know why.
- [Not helpful] There was nearly no not-assignment questions for practice. The assignments had no consistency among difficulty level. The assignments didn't really relate to the midterms.
- [Very helpful] Doing the assignments really helped me master the material.
Were the printed notes (if any) helpful in learning the course content? |
- [Helpful] Fairly helpful - I didn't refer back to them as much as I expected.
Was the required textbook (if any) helpful in learning the course content? |
- [Helpful] The printed slides booklet was good. I didn't need the textbook.
- [No opinion] I did not use the textbook at all. I found the material covered in lectures and slides sufficient.
- [No opinion] To be fully honest, I never consulted the textbook.
- [Not helpful] Only glanced at it a couple times.
Did the course introduce an appropriate amount of new material? |
- [Okay] A new language is bound to provide new material. However, the recurring concepts that was seen in other languages is refreshing. Like Dr. Pepper.
- [Okay] I was happy with the amount of material covered. I could keep up well, but we were still continually learning interesting new things. I <3 functional abstraction.
- [Somewhat too much] It was good right up until the end. Too much content in the last few weeks.
Was the amount of assigned work required for the course appropriate? |
- [Okay] I think it was perfect.
- [Somewhat too much] Some assignments were a bit too much when juggling 5 classes, for the most part it was fine
- [Somewhat too much] The assignment questions were often too demanding without much guidance.
On average, how many hours per week did you spend on this course outside of lectures? |
- [3-6 hours] This is my best guess, I don`t really time how long I spend in absorbing information and doing 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. |
- Amazing in general, makes the course more interesting, bring enthusiasm to the lectures and make me feel more wanting to learn
- Classes are very interesting
- Dave did a good job keeping the class interested and motivated to try.
- Dave has done an excellent job in conveying the information of the course in an effective manner.
- Dave kept his lectures highly engaging and entertaining, attending his class was a genuine pleasure.
- dave made all of the lectures very interesting, even some of the dull ones
- Dave made the class very interesting and introduced concepts in a way that made it accessible to everyone.
- Dave was amazing, so glad he was my CS135 prof. His funny teaching style and knack for explaining new concepts using easy to follow examples really helped me transition from high-school CS to university CS and understand the material.
- Dave was extremely enthusiastic and very accommodating to students of all skill levels. Specifically, he seemed to have a great gasp on when students were struggling to follow, or if students were bored. Overall, a fantastic instructor considering how difficult it is to accommodate students who were programming for the first time with students who were constantly bored in lectures.
- Dave's lectures are the best lectures I have ever experienced.
- Done well to explain any concept that needs explaining, during and after classes.
- Every lecture was very interesting and hilarious. Made students enthusiastic.
- Everything
- Everything, best instructor ever, makes class super fun and exciting.
- Everything.
- Everything; don't change a damn thing.
- Excellent explanations of concepts and went, for the most part, at a really good pace (sometimes too fast). Promoted a very friendly, casual atmosphere in class and made the material fun, interesting, and relevant.
- Excellent Prof who makes CS really interesting
- Explain the new material with analogy and real life examples which are really helpful for me to understand.
- Explanations are memorable, applicable and clear with few difficult and nuanced examples.
- Funny guy, loved his lectures
- Good humor to make dry lectures bearable.
- Great enthusiasm and comedic approach to lectures. Always made the lecture more exciting.
- He is da bomb diggity.
- He is really interesting
- Hilarious, great teacher, class was always entertaining and enjoyable.
- His energy and enthusiasm when approaching course content made class a joy.
- His enthusiasm and ability to explain the course material to individuals who haven't had experience in cs before
- I love the humour.
Oral instructions are clear and easily understandable.
- Information is well presented and organised, and examples were helpful
- Instructor is very enthusiastic while teaching
- Kept the whole class engaged. Was very entertaining and kept the class interested. Gave good analogies.
- Lectures were fun, interesting and coherent.
- LIGHTSABER, but on a more serious note:
Pretty much everything was done very well, I liked how he would occasionally mention more advanced topics for the more curious students and make good connections to how topics could or are being applied in real life
- Lightsabers. 'Nuff said.
- Movies before the class starts
- Prof. Dave Tompkins is too awesome to be true!
- really interesting
- Super interesting lectures, loved watching How to Train Your Dragon before class.
- Taught the course very well with clear explanation of concepts. Showed lots of examples in class.
- Teaching and engaging students
- The instructor incorporated humor into the course in an appropriate and engaging way. Also he made excellent analogies.
- The instructor made the materials very accessible and interesting, and gave a clear explanation of most if not all topics.
- The lectures was very good, instructor is funny.
- The use of examples was very nice. He kept us entertained, as well as taught us a lot.
- Very attractive and easy to understand
- Very clear descriptions and live programming examples were really helpful.
- Very engaging and presents the material in an entertaining and comprehensible way.
- Very engaging lectures, added a level of humour to each of his lessons.
- Very excellent in keeping class engaged
- Very good public speaker
- Very interesting lectures, sometimes a bit too fast
- Very keen to answer questions at office hour
- Voice projection was/is good.
- Watching "How to Train Your Dragon" as entertainment before class began.
Very enthusiastic.
- You brought in props for some lectures to help us better understand the course content
Please make constructive comments about anything in the instructor's technique or style that could, in your opinion, be improved. |
- A bit too fast when going through slides
- A little more time could be spent on the trickier concepts.
- Although very rarely, sometimes took analogies too far and made the content a bit repetitive (which is understandable for more difficult concepts).
- Brilliant lectures! Nothing to complain.
- Can be slower in the middle of the material, can provide more examples in abstract fn, lambda and graph
- Can't think of anything
- Can't think of anything significant.
- Can't think of anything, Dave is too awesome.q
- Cater the examples in class closer to the assignment questions.
- Could go a little slower in class.
- Dave is perfect
- Dave speaks a little fast for me, an ESL student, to understand.
- Everything was good
- Free food.
- Go a little slower in the lectures.
- Great instructor, knows how to keep the class's attention and is very entertaining and, obviously, knowledgeable. Can't name anything he could improve on, keep doing what he's doing.
- He is prefect
- His comments sometimes could make a person new to CS to feel intimidated
- I can't think of any improvements.
- I wish the instructions of assignments should be more clear.
- In some instances too much time was committed to explaining relatively simple concepts.
- More clicker surveys regarding student understanding of material
- More live racket examples
- Needs more lightsaber.
- not specific
- nothing
- Nothing
- Nothing!
- Nothing, great style
- Nothing, he was great. I've never done cs before and he made it very easy to follow.
- Perhaps leveraging iClickers (and technology) more to ensure that harder concepts were understood before moving on.
- Should give more hands on during class
- Take the time to really explain what the code is doing. Detailed step through new code. Some concepts were covered too quickly.
- The professor should double check his points when explaining the concepts
- Too little time was spent on the last part of the course which was significantly harder than the first part.
- We fell a bit behind towards the end of the course.
What were the strong points of the course? |
- 2nd midterm was way too long in length
- a lot of stuff to learn
- Abstraction
- Assignments were useful and and effective in furthering lecture material, clickers were used poignantly, Dave was highly entertaining.
- Conceptual abstraction.
- Dave Tompkins
- Easy to understand
- Everything
- Everything
- everything is wonderful
- Fun and exciting
- Giving a great taste of cs (I haven't taken any cs course before)
- Good introduction to cs
- Good method of teaching.
- Goof professor and an interresting syllabus.
- Graphs
- Great intro to CS, could be picked up even with no prior programming experience.
- I loved the introduction to functional programming, and the breadth of concepts introduced throughout the course. Assignments were a good balance of challenging and doable. Also, appreciated the teaching of the design recipe.
- Interesting concepts, exactly what one would expect from a first year computer science course.
- Interesting material
- Intriguing
- Introduced a programming language in a way that could be understood by anyone regardless of programming experience.
- learning racket
- Material was new, interesting and useful. Enforced style was helpful for organization and overall readability.
- Most everything. It is an excellent introductory/ conceptual language. I liked the rewriting of previous functions to show the development of our mad skillz and comprehension.
I really liked the challenge of the assignments... They were very tricky at times.
- My favorite parts included recursion on lists and functional abstraction.
- Prof. Dave Tompkins
- Recursion and higher-order functions
- Recursion was very good in helping me think.
- Recursion!
- Recursion, lambda and How to Train Your Dragon
- Super interesting, fun, but still challenging.
- The assignment questions were fun for the most part. The midterms were both very fair.
- The assignments are pretty interesting overall, and lectures were fun to attend.
- The course had interesting homework problems and lectures.
- The lectures were interesting.
- The strong points of the course are everything that isn't included in the weak points I've listed.
- The thorough and logical approach to programming solidified the fundamentals I already had.
- This course challenges my mind.
- Very linear in the sense of learning concepts
- Very powerful and cool techniques of problem solving taught
- Well organized notes; Great Prof; Helpful Tutorial; Everything basically.
What were the weak points of the course? |
- a little bit challenging for beginner
- A little too fast for someone who has never programmed before
- Assignments could be very time consuming and take up time needed for other courses.
- assignments were far too long, especially for people just learning how to use racket and it's syntax.
- Assignments were so interesting I would use them to procrastinate doing algebra.
- Course material could tend to be too simple.
- Course notes can perhaps have more examples
- Design Recipe
- Design Recipe and Trees.
- Design Recipe Examples for strictly-auxilary functions should either not be necessary or not be as extensive and strict.
- Early content was a little bit dry.
- Exams focuse too much on details.
- Explaining graphs and neighbours... It would've been nice if more time was spent on graphs.
- Fairly fast pace, especially with more difficult material. Assignment questions were way harder than examples covered in class.
- Goes fast and slow at will
- How to train my dragon movie could be longer.
- I didn't find the tutorials all that useful in the actual reinforcement of topics, But they were good for practice questions.
- I felt like the course notes were a little unclear at some points.
- I found the tutorials minimally helpful.
- It went too slowly for someone who already knew how to program, but no higher course is allowed outside of the CS major.
- Lambda instead of local
- longer assignments
- Material was slow in the beginning and complicated nearing the end, causing a slight imbalance
- Might be a bit too hard for students who have no cs background.
- no weak points
- none
- None
- None
- Nothing.
- Other than the assignments, there were not many practice questions available.
- Racket pizza
- Students with past experience in computer science definitely have an advantage.
- The Design Recipe, as everyone is complaining, was a weakness. I'm not saying get rid of it, but reduce it. It's not a practical thing, and we really shouldn't be losing (or gaining) so many marks for it. Also, cut the content down.
- The fixed marking scheme. I feel as if giving students the chance to have their final exam weighted more (yet still maintaining the rule where students must pass all components) would be nice, and allow students to demonstrate their improvement over their previous 2 midterms.
- The parts I didn`t enjoy as much was recursion on unbounded trees.
- The professor always makes mistakes when explaining the points
- The steppers became very complicated towards the end and I felt as if they were not explained nearly as much as they should have been, ie more examples given, specifically for the lambda steppers. The practice questions provided did not give sufficient hints, leaving some students to flounder about, sometimes wasting hours on small questions because there weren't enough examples.
- The style guide was a bit vague at times.
Recommendation: look through the questions about the design recipe/style guide that are on piazza and answer those with the style guide - or make the TAs do it :P
- There are a few concepts that i wish the professor can spend more time to explain such as trees and accumulative recursion.
- Too much emphasis on design recipe and other less theoretical aspects of computer science. Made it annoying and less enjoyable to learn and complete assignments. Also, too much emphasis on just filling in templates rather than discovering and figuring things out for oneself.
- Workload a little too much.
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. |
- 100% positively, everyone felt comfortable to contribute because of the professors personality.
- Always positive, never negative
- Class appeared welcoming to all students.
- Class atmosphere was extremely positive, although the one guy laughing really loudly in the front was a bit annoying.
- Class atmosphere was positive overall.
- Dave respects everyone and treats everyone fairly.
- Gender, race, appearance were never mentioned in the course to reflect negative opinions of groups or individuals.
- Good attitude from the students. Friendly atmosphere.
- great atmosphere
- Happy because of his humor
- I think he needs more than just one red and one white shirt...
But that's just me.
The atmosphere was very positive and humorous.
- Instructor had a very positive and cheerful attitude during each class, which rubbed off on me and my classmates :)
- Instructor was always open to questions. It helped create an interactive atmosphere.
- It was awesome.
- N/a
- N/A
- No
- No, to my knowledge, race/gender/appearance did not play a role in affecting class atmosphere.
- No.
- No. Dave was inclusive to all.
- Not affected
- Not at all
- Not at all.
- not specific
- Not that I could tell.
- Positive of course! Dave is always happy, energetic, and ready to teach.
- positively
- Positively
- Positively by the attitudes of the instructor.
- positively, dave was great to everyone
- Positively, I love everyone
- The atmosphere is good.
- The class atmosphere was positive in this regard.
- Too many boys in the class! (just kidding)
- Very positive
- Very Positive
- Very positive overall atmosphere
- very positively.
Any other comments, e.g., class size, suitability of room, noise level, etc. |
- All great!
- Bad chairs and too little space in room
- Chairs in DWE are uncomfortable and awkward.
- Chairs kinda sucked.
- Class size is suitable, but the classroom's seats were a bit uncomfortable at times...
- Class size was large
- Class was appropriately sized in appropriate room.
- Class was very large and occasionally ran out of seats, but overall was good. More wall outlets would also be appreciated by students, I'm sure.
- Clicker questions were such a good way to interact during lectures, and Piazza was a really great resource for assignments.
- Good class, but there is a guy always laughing, that's annoying.
- Good size
- Great prof and great course
- It was hard seeing the slides (notably clicker questions) from the mid to back of the room. Although, I do have poor eyesight.
- Large classes deterred questions.
- n/a
- N/A
- Need more classes for specific competency levels. Many students are either consistently bored or lost.
- no
- No.
- None
- Not applicable to me, but maybe a few more visual representations of what's happening would help people who have no idea what's going on? And I severely hate DWE1501 but it works
- not specific
- One of my favorite lectures
- Room didn't seem to have many power outlets, this is kind of odd for a CS course, since almost everyone brings their laptops
- The class is sometimes noisy
- The class was good. The clicker questions were a good device to keep students interested and thinking. More clicker questions!
- The classroom is always packed and too crowded.
- The floor being slanted and the chairs being so loose were not a good combination.
- The lecture hall's chairs make me want to sleep. Among other things. Crimes, for one.
But that's just me.
Noise level is good and controlled.
- The room should be definitely bigger next time.
- Very large class