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: 66 / 92 (72%)
Evaluate the organization and coherence of the lectures. |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
44 | 21 | 1 | | | |
67% | 32% | 2% | | | |
At what level were the instructor's explanations aimed? |
Too high | Somewhat too high | Just right | Somewhat too low | Too low | No opinion |
5 | 4 | 53 | 3 | 1 | |
8% | 6% | 80% | 5% | 2% | |
Evaluate the instructor's treatment of students' questions. |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
46 | 16 | 4 | | | |
70% | 24% | 6% | | | |
Evaluate the effectiveness of the instructor's visual presentation (blackboard, overheads, etc.). |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
39 | 26 | 1 | | | |
59% | 39% | 2% | | | |
Evaluate the effectiveness of the instructor's oral presentation. |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
53 | 13 | | | | |
80% | 20% | | | | |
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 |
10 | 16 | 8 | | | 32 |
15% | 24% | 12% | | | 48% |
Did you find the course interesting? |
Very Interesting | Interesting | Not interesting | No opinion |
39 | 25 | 1 | |
60% | 38% | 2% | |
Evaluate the overall effectiveness of the instructor as a teacher. |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
54 | 12 | | | | |
82% | 18% | | | | |
What proportion of lectures did you attend in this course? |
90-100% | 75-90% | 50-75% | 25-50% | < 25% |
62 | 1 | 1 | 2 | |
94% | 2% | 2% | 3% | |
Was the assigned work (assignments, projects, etc.) helpful in learning the course content? |
Very helpful | Helpful | Not helpful | No work assigned | No opinion |
42 | 22 | | | 1 |
65% | 34% | | | 2% |
Were the printed notes (if any) helpful in learning the course content? |
Very helpful | Helpful | Not helpful | No printed course notes | No opinion |
21 | 30 | 2 | 3 | 10 |
32% | 45% | 3% | 5% | 15% |
Was the required textbook (if any) helpful in learning the course content? |
Very helpful | Helpful | Not helpful | No text required | No opinion |
8 | 10 | 19 | 11 | 17 |
12% | 15% | 29% | 17% | 26% |
Did the course introduce an appropriate amount of new material? |
Too much | Somewhat too much | Okay | Somewhat too little | Too little | No opinion |
3 | 10 | 47 | 1 | 2 | 3 |
5% | 15% | 71% | 2% | 3% | 5% |
Was the amount of assigned work required for the course appropriate? |
Too much | Somewhat too much | Okay | Somewhat too little | Too little | No opinion |
2 | 17 | 46 | 1 | | |
3% | 26% | 70% | 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 |
2 | 19 | 28 | 11 | 5 |
3% | 29% | 43% | 17% | 8% |
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. |
- Always explains the concept very clear, willing to help students with their questions. Try to catch students attention, overall made this course very enjoyable.
- Clear and well prepared communication. Very useful examples done in class as well as introducing functions not shown in the course. Fun and relaxed while teaching the material at a decent pace.
- Clear explanations. Humour.
- Created visuals outside of course notes and kept class atmosphere exciting.
- Dave explains concepts extremely well -- at a level that is easy to understand and in a clear and concise manner. He's also extremely funny and keeps the course interesting!
- Dave is like a big, cuddly, hilarious teddy bear. He always has an upbeat attitude, and provides the classroom with a positive atmosphere.
- Dave is very engaging. The way he makes students laugh makes a lot of the more difficult material more approachable.
- Dave was fun and his use of visual aids involving himself and the piece of piece of paper for fold right.
- Energy with which material was taught was great.
- Engaging.
- Everything (seriously)
- Everything!
- Everything. Best prof.
- Excellent organization, presentation, and explanation.
- Excelling job of going through code examples. Giving 'real world' explanations. Keeping the class interested.
- Explain complicated programs. Had critical examples.
- Explained concepts well. He's very funny and is easy to pay attention to :)
- Explaining materials clearly and making sure the lectures aren't boring.
- Funny, good teaching style, made lectures interesting.
- Funny, made jokes, some of which no one but me understood.
- Funny, upbeat, makes boring things interesting, and keeps you awake when you want to fall asleep.
- Gives good examples to what we've learned in class.
- Good explanations
- Great explanations and examples! Kept classes interesting and relevant. Great job explaining lambda! I wasn't lost in the explanation. Great examples in Racket and funny pre-class videos!
- Great explanations of topics. Very helpful. Kept the class very interesting.
- He explained the concepts clearly by providing lots of examples. He is a humourous teacher.
- He is very good at explaining things
- He made class incredibly entertaining as well as really informative, which is something that hardly happens.
- He made the class interesting by spicing up the beginning of the class with videos that relate to the lecture.
- He try to keep our focus on what is he talking, which is very helpful.
- His enthusiasm made it impossible to not be interested in the material; he is a very effective speaker / teacher.
- His presentations were good. He was able to communicate clearly such that the main concept of the lessons were most often easy to grasp.
- I really, sincerely enjoyed this course. It was what I looked forward to weekly. The silliness and upbeat manner made every class fun and enlightening.
- I think that Dave did an excellent job of providing real world examples in order to teach new concepts effectively.
- I'm not even in your class, but I enjoy your teaching so much that I attend anyways. You explain things clearly and well, and have helped me make the subject matter make sense. Very engaging and interesting.
- Interesting oral presentation. Helpful notes on the board.
- Interesting presentations. Teacher always has a good sense of humour.
- Keeping the class involved through jokes and examples. Covered the material in an interesting manner.
- Made the course fun and interesting
- Making the course more interesting.
- Rather engaging
- Really funny, makes lectures entertaining.
- Really makes the lectures fun and is able to keep my attention. Gives good analogies of how concepts are applied in the real world.
- Some interesting content.
- Strong and fun explanations of material which can be harder
- Talks well, makes jokes.
- Teach the language well.
- The instructor explain the materials very well and made the class interesting by adding humour.
- The instructor has been very helpful in helping with those who are having trouble digesting the course material, and his explanations are most of the time clear.
- The instructor is a very good communicator. The course was taught in a relaxing atmosphere.
- The instructor took time to answer each relevant question and step through more difficult programs to help students think like a computer.
- The instructor was always very enthusiastic during class. His visual aids were very helpful in understanding difficult concepts. He was ALWAYS available to help when needed. Responses to questions were great and this encouraged more questions to be asked. Has great taste of videos and sense of humour.
- The instructor was very humourous and really put the students at ease during the lectures. He broke the lectures into very easy parts to understand.
- The lectures were funny and a pleasure to attend. The 'clone' explanation of recursion really helped to grasp the concept.
- Useful tips and side notes that really help with understanding the material and assignments. Has a very good sense of humour.
- Very friendly, trendy, makes class enjoyable.
- Very fun and enjoyable lectures compared to others!
- Very good at explaining things, did a great job of providing examples during lectures to make content more easily understandable. Made lots of jokes, which maintained a good atmosphere.
- Very good with using (humourous) analogies to understand difficult concepts. Good with mixing up learning strategies, introducing interesting ways to teach concepts (low voice, high voice for mutual recursion)
- Very well overall.
Please make constructive comments about anything in the instructor's technique or style that could, in your opinion, be improved. |
- Could be more interactive rather than use clickers.
- Could be more practical. Let us think about the question or group work.
- Covering more of the material on assignments. More than often certain assignment questions will be challenging, and described in the slides.
- Dave could go a little slower during some lectures.
- Did a good job introducing Scheme to individuals such as myself who had past programming experience -- very comprehensive.
- Everything is fun
- Everything is okay.
- Extra stepper problem examples for abstract list functions, etc.
- For a student who has never programmed before the first three weeks of CS 135 were difficult to follow and perhaps the instructor could have spent more time building a good foundation, before showing advanced material.
- He can slow down a bit with harder materials.
- He could have explained some of the concepts more thoroughly. When the results of the clicker questions disappoint, he could have tried a different way of explaining.
- He could spend a bit more time on newer concepts.
- He do a great job in teaching CS 135. He's teaching style help me to understand the idea.
- He should offer up more varied examples when available.
- I think the use of more visual representation would help several student understand the course more.
- I wouldn't want to be taught any other way.
- I'd say there was very little needed to improve.
- Maybe shift more often between the slides and the blackboard. Sometimes, it becomes hard to pay attention past the 1 hour mark.
- More examples. Better preparation for midterms/exams; I did assignments by myself and well, but always did poorly on midterms.
- More seriousness even WITH the jokes, positive attitude, etc.
- More time on theory than examples.
- No early clicker questions. I have 5 minutes to get to class.
- No opinions.
- None.
- Not a major issue, but he could have gone over what we were to be doing in the assignments in class.
- Not enough examples with lambda / local stepper questions. They aren't explained very well in the course notes either.
- Not really.
- Nothing in particular.
- Nothing, babe.
- Nothing: everything was perfect
- Nothing: keep doing what you're doing.
- Perhaps a few more examples and less personifying some concepts.
- Post the examples done in DrRacket online so we can download them.
- Should dress up as a cat for a lecture to psych people out.
- Slower style of teaching
- Some of his analogies were a little bit of a stretch.
- Sometimes things were a little too rushed in the last few minutes of class
- Sometimes, very rarely though, went through material too fast.
- The instructor was absolutely fantastic and I believe he is an ideal instructor.
- The pace of class is sometimes a little fast.
- Very hard to come up with something he could do better
- When doing examples of what is to come in Racket they were often the most relevant examples to assignments later, but weren't always in the notes.
- Your explanations sometimes became more advanced than we were expected to know and this lead to confusion in multiple situations.
What were the strong points of the course? |
- A good introduction to computer science.
- A lot of materials that are going to be useful in future courses.
- Abstract ideas introduced in this course.
- All the info in the course can be applied to other languages and useful, well, everywhere.
- Almost everything.
- Assignments were fair and enjoyable.
- Bonus questions were challenging.
- Challenging questions
- Clear explanations. Funny instructor.
- Doing assignments really helps learning the materials.
- Everything (almost).
- Focused heavily on core points and mechanics of CS in general.
- Good foundation for CS, introduced many concepts.
- Good introduction to CS
- Got challenging at the end. Learned cool stuff in scheme.
- Great introduction to CS
- Humourous, upbeat, educational, great, tension free environment
- I feel we learnt a lot for our time in class.
- I learned a lot of new interesting aspects of CS that I didn't know before.
- I personally think the support from all the instructors/students (piazza) is great.
- I think the assignments were very effective at enforcing the content of the course.
- Interesting and knowledgeful.
- Interesting course content. I learned a lot.
- Interesting material.
- Interesting perspective: started from a point that could be related to by non-CS students
- Interesting, good base for how to program
- Interesting, new concepts, challenging.
- Introduced advanced concepts.
- It provided some very interesting and fundamental concepts used in the field of computer science. The number of assignments and their difficulty level could be increased.
- It was very interesting and challenging. Gave a good insight on how future CS courses would be like.
- Learned many of the basics required to be successful in future CS courses.
- Let me think by a different ways.
- Lists.
- Pace of material was inconsistent. First month was too slow and easy, while at the end was many times faster. This is reflected in class average on assignments.
- Pretty interesting, prof is great
- Recursion
- Recursion
- Recursion was taught very well
- Recursion, BSTs and graphing. The constant jests of humour.
- Recursion. Emphasis on problem solving instead of syntax. Trees.
- So many concepts that lead to bigger are taught, and well.
- Taught me how to think
- Teaches step by step, not confusing.
- Teaching different methods to solve problems and how to complete them effectively.
- The approach taken to teach recursion and binary trees.
- The assignments were interesting, but not impossible.
- The building on previous concepts. Step-by-step development.
- The course was challenging, but in a good way. It helped me group concepts and truly understand the main points in each module. All assignments were also a lot of fun to do!
- The material started at a level where everyone could understand, and the assignments were helpful.
- The material, although challenging at points, was always explained extremely well and thoroughly.
- There are none. The course sucked.
What were the weak points of the course? |
- A bit of a steep curve
- Assignments are not clear in what they are asking us to do.
- Assignments take a long time to complete
- At times I felt like a lot of the assignment questions were difficult to understand.
- Can't think of any.
- Clicker questions frustrate me.
- Clicker questions not available on course website.
- Could have picked up a lot faster at the start.
- DESIGN RECIPE
- Design recipe was stupid. Tests and examples were useless. Scheme is useless. Inconsistency between TAs marking overall a poorly designed course that teaches nothing useful for the real world. 0/10.
- Didn't enjoy how it focused more on commenting code than actually coding.
- Different types of recursion (generative, accumulative, structural)
- I feel as though some concepts, such as lambda stepping and tests were 'skimmed' over.
- I wish the notes were more thorough. Design recipe, differing TAs in regards to marking
- I wished it used another language (java, c++, etc.)
- Introducing some concepts for too long that were not complex at all.
- Local / lambda.
- Markus not cooperating sometimes.
- Memorizing stepping rules.
- Moved too fast.
- Not a lot of proactive questions are supplied for midterm exams, which can be tough because written code is different from typed code (I'm not used to it!)
- Notes: more full stepping examples (especially for abstract list functions)
- Scheme is an odd choice, however there are interesting concepts that can be learned with it.
- Slightly fast pace.
- Some assignment questions are explained poorly, or not enough detail/examples.
- Some examples were a bit too lengthy.
- Some materials were too quickly went through.
- Somewhat difficult.
- Spent a little too less time on more of advanced concepts that were studied in detail
- Started off a little boring.
- Steep learning curve and sudden introduction of very abstract concepts.
- TAs mark randomly. Assignment marks are more or less dependent on the TA that marked it.
- The amount of homework expected for the third - fifth weeks.
- The choice to teach certain material didn't seem to be justified in class (ex. the difference between the 3 types of recursion, when it seemed like knowing what recursion was and being able to apply it in different ways would be enough).
- The course notes weren't very detailed, and I wish the assignments were due on a day different from math.
- The first few weeks were a bit boring because of my previous knowledge of computer science concepts.
- The last 3 or four sections of notes felt really rushed, while the first few chapters could have gone faster. The clicker questions were also strange.
- The slower speed at the beginning of the course.
- The teaching process of the second half of this course is a little bit fast for me.
- The testing process was very arduous. I believe students should be capable of testing their programs on their own. Marking for hard-coded tests is lame (that's just my opinion though).
- Too little time spent in areas of major difficulty for a lot of students.
- Too much materials and assignments require huge amount of time.
- Too slow covering the material
- Went through abstraction too quickly.
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. |
- Class atmosphere was always positive.
- Class atmosphere was great! Dave is a really good instructor.
- Class atmosphere was quite positive: instructor was very lively and engaging.
- Class size was good, as was the classroom setting. Wouldn't have been nearly as effective a learning atmosphere if it was in a lecture hall.
- Dave's attitude always kept a positive class atmosphere. It feels more like being in a room learning with a group of friends than class, which is great.
- Fun for all the peoples.
- Good.
- Great class atmosphere: very open and discussion oriented.
- He was funny and it affected the course positively.
- I didn't notice any negative effects. I'm also male, white 90+ average and attractive so I don't know if I would pick up on stuff like that. There were jokes that Dave made about his obesity which might have been harmful.
- I think that the attitude and respect in the class was appropriate.
- Instructor made class positive.
- It is a positive atmosphere, it make me less sleepy in class (not because of the class is bored, but it is about myself)
- Mostly neutrally, few instances of minor discrimination.
- Neutral, no problems.
- Never negative!
- No discrimination of any sort and always with good intentions and attitude.
- No prejudices to gender, race, ability or appearance that I could see.
- No, the atmosphere is pretty comfortable.
- Perfect.
- Perfect.
- Positive as everyone was respectful and generally well behaved/working well
- positive, very inclusive
- Positive. No issues at all.
- Positive. No issues at all.
- Positive; the class was active.
- Positively
- Positively
- Positively by instructor and students.
- Positively, always good spirits in class.
- Positively, instructor was high energy.
- Positively.
- Positively.
- Positively.
- Positively. He makes jokes appropriately and also teaches seriously at times.
- Positively. Very good.
- Positively: he interacted super well with everybody.
- The atmosphere was affected positively by the instructor due to his occasional jokes and overall positive attitude.
- The class atmosphere is quite active.
- The class atmosphere was always very positive and light due to the humour of the instructor.
- The instructor challenged and treated each student with an equal attitude.
- Very positive.
- Very positively, felt at home.
Any other comments, e.g., class size, suitability of room, noise level, etc. |
- 3:00 is usually my nap time, but I never fell asleep in class.
- All good.
- All good.
- At the back of the room I found it difficult to read the bottom of the projector screen over everyone else's heads.
- Class size was a good size.
- Class too small. Every class there are people without a desk at the back.
- Didn't like the classroom. It was far too stuffy for the number of students.
- Do more clicker questions!
- Even though I'm probably going to finish with a low 70 and I'm switching into CS 116 next term because I'm not a CS major, I really enjoyed my time in CS 135, despite the extra course load, because of Dave. He really made the course bearable and always had us well prepared for the assignments. Keep doing your thing Dave! :)
- Everything is good.
- Give this man a raise!
- Good classroom size.
- If you sat towards the rear of the class it was difficult to see the bottom of the slides, especially on clicker questions
- Needs cell service.
- No, most things work pretty well.
- PERFECT.
- room was a little bit too small, not enough seats.
- The class size is satisfactory. The instructors jovial attitude made the material most interesting specifically mutual recursion. Students sometimes used DrRacket on clicker questions but otherwise the use of clickers was helpful.
- The classroom (MC 1056) sucks
- The Indiana Jones metaphor was probably the most correct comparison I have ever heard (leap of faith)
- The speaker in the room, if left on, was loud and hissy. Room was a good size for the class.
- This class was one of my favourites. I always looked forward to coming to it.
Behind the scenes it was a bit of a challenge teaching with several "new" instructors and as a result some of the assignments were awkward. This term I also felt a little stretched: I had just taken on new (double degree) advising responsibilities and teaching CS 350 was also quite demanding.