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: 51 / 73 (70%)
Evaluate the organization and coherence of the lectures. |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
20 | 31 | | | | |
39% | 61% | | | | |
At what level were the instructor's explanations aimed? |
Too high | Somewhat too high | Just right | Somewhat too low | Too low | No opinion |
| 6 | 44 | 1 | | |
| 12% | 86% | 2% | | |
Evaluate the instructor's treatment of students' questions. |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
28 | 20 | 3 | | | |
55% | 39% | 6% | | | |
Evaluate the effectiveness of the instructor's visual presentation (blackboard, overheads, etc.). |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
26 | 24 | 1 | | | |
51% | 47% | 2% | | | |
Evaluate the effectiveness of the instructor's oral presentation. |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
29 | 19 | 2 | | | |
58% | 38% | 4% | | | |
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 |
11 | 9 | 6 | | | 25 |
22% | 18% | 12% | | | 49% |
Did you find the course interesting? |
Very Interesting | Interesting | Not interesting | No opinion |
24 | 26 | | |
48% | 52% | | |
Evaluate the overall effectiveness of the instructor as a teacher. |
Excellent | Good | Satisfactory | Unsatisfactory | Very poor | No opinion |
30 | 21 | | | | |
59% | 41% | | | | |
What proportion of lectures did you attend in this course? |
90-100% | 75-90% | 50-75% | 25-50% | < 25% |
45 | 6 | | | |
88% | 12% | | | |
Was the assigned work (assignments, projects, etc.) helpful in learning the course content? |
Very helpful | Helpful | Not helpful | No work assigned | No opinion |
29 | 22 | | | |
57% | 43% | | | |
Were the printed notes (if any) helpful in learning the course content? |
Very helpful | Helpful | Not helpful | No printed course notes | No opinion |
16 | 21 | | 9 | 5 |
31% | 41% | | 18% | 10% |
Was the required textbook (if any) helpful in learning the course content? |
Very helpful | Helpful | Not helpful | No text required | No opinion |
1 | 13 | 13 | 11 | 13 |
2% | 25% | 25% | 22% | 25% |
Did the course introduce an appropriate amount of new material? |
Too much | Somewhat too much | Okay | Somewhat too little | Too little | No opinion |
3 | 8 | 37 | 1 | 1 | 1 |
6% | 16% | 73% | 2% | 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 |
2 | 22 | 27 | | | |
4% | 43% | 53% | | | |
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 |
| 22 | 19 | 9 | |
| 44% | 38% | 18% | |
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 upbeat. Understands what he's talking about. Always happy to take questions. He is funny - it doesn't matter what the haters out there say.
- Awesome teacher. Much funnier than he thinks he is.
- Dave always makes sure his students understand everything before continuing on with the material. He is also a good person to talk to about problems outside of the course.
- Dave's presentation of the course is excellent. Importantly, he interacted with students and presented many examples.
- Engaging, very funny, makes the lectures so much fun. Knows the content well and very helpful at making the students understand the concepts.
- Funny
- Funny, made the class more fun to come.
- Good explanation, confident of what he is doing.
- Good explanations, teaching methods, fun class :)
- Good sense of humour, detailed explanation of concepts.
- Great examples and enthusiasm.
- He does an amazing job explaining concepts. He makes great analogies and made the course enjoyable.
- He does many examples that he made himself in scheme which help in understanding the concepts.
- He has made the classes interesting by doing funny voices (playing the part of mutual recursion functions), sharing personal stories.
- he is pretty funny and keeps class engaged.
- He is really good at using interesting examples to explain complicated topics.
- He teaches the course well, as he gives a lot of examples.
- He tells jokes and personal stories to keep the class atmosphere high and make the students more engaged in learning.
- His great sense of humour and jokes bright up the class of CS. Snaps you out of your sleep.
- I liked how the instructor combined oral presentations with hands-on demonstration. It was a good asset to learning material.
- It has all been done well except for that one assignment (A6 I think). I actually like recursion now. Explanations were very helpful - mutual recursion. The somewhat silly ways to remember concepts were good.
- Jokes, making things interesting.
- Kept the course interesting - humour helped. Interesting tangents/links to real-world stuff.
- Kept the course interesting with appropriately timed (albeit bad) jokes and pleasant sarcasm. Office hours were helpful.
- Light-hearted joker.
- Making the course interesting. Introduce new stuff.
- Materials were clearly and well explained.
- Switches between using the slides and examples on the board or Dr. Racket. Lectures are easy to understand, even if the content is somewhat complicated.
- The instructor effectively engaged the class in learning by teaching in a professional and appropriate manner, while also maintaining a calm, comfortable class atmosphere.
- The material was well explained & we were kept engaged and entertained whilst in class. Very approachable & helpful.
- Tried to make class interesting. Provided ample examples.
- Very enthusiastic and breaks down code explanation well when it's a lot to process. Good cheesy humour, engages class well.
- Very helpful explanations. Organized lectures.
- Very interesting person. Loud and funny. Does a lot of great examples with Dr. Racket during lectures.
- Very interesting!!!
Please make constructive comments about anything in the instructor's technique or style that could, in your opinion, be improved. |
- Assignments by this instructor were more difficult than by others.
- Doing a bit more review before midterm/final and making sure all aspects are covered in class.
- Don't know.
- Explain things slower and not skip around the slides.
- Go a little bit slower. Felt a little too fast.
- Go a little slower.
- He goes off topic somewhat too much.
- He should make his CS assignments easier since they took a lot more time to do than other assignments.
- He was a good instructor.
- Keep being awesome yo.
- Make the lecture more clean (sometimes the instructor forgets something and comes back to it later).
- Maybe he test out a few things before the lecture.
- More entertaining anecdotes.
- More interaction with students during lectures and slower pace at important concepts.
- More notes on blackboard could be a big help to me. Especially those tracing and stepping problems.
- Nothing significant!
- Organization during demonstrations.
- Sometimes pacing of presentation seems rushed - don't fully understand some things before we move on.
- Sometimes you move fast, even though we don't exactly understand.
- Spend more time on examples.
- Stay on topic a little better. Don't go off track too much.
What were the strong points of the course? |
- A lot of concepts were learned that can be practically applied (like trees).
- Always something to do.
- BST and recursion.
- Built a good CS foundation.
- Fun and presented many insights on other real life situations and applications.
- Good introduction to CS.
- I'm a pro at recursion now. Can see the benefits of the design recipe.
- Introduces a brand new way of programming.
- it got me thinking in a more formal way of coding, instead of randomly written code that works.
- It have lots of useful material.
- Learned a lot about cs and feel more comfortable in it as it was my first year taking any cs course.
- Learning how to code in scheme and liked different things you could do with scheme.
- Learning new concepts / applications of those concepts in the real world.
- Lots of information taught.
- Many different topics. Good teaching sequence. Doesn't go too fast.
- Material is close to reality, very helpful.
- Real world applications were great.
- Really interesting and fun.
- Recursion and BST.
- Started slow, so people with no programming knowledge would not be at a disadvantage.
- Teaching Scheme! I love it. It is my favourite programming language.
- The assignments helped reinforce the material.
- The assignments were a joy to do, especially the bonus questions.
- The course has a good balance of applied examples and abstract concepts.
- This whole course is very helpful in developing logic thinking.
- Topics covered.
- Very thorough.
- We are forced to write almost all of the built-in list functions.
What were the weak points of the course? |
- A bit complicated.
- A bit too much material.
- Assignments took too long.
- Assignments were a bit too difficult.
- Can't wait to learn something I can put on my resume (transfer student who had to find a job for winter co-op).
- halfway through the course, all assignments and lectures got much harder to understand.
- I found the clicker questions too often seem as if to trick people. Assignments were sometimes vague.
- It is too challenging for a person not familiar with functional programming.
- It was pretty good.
- Lengthy assignments, and assignment 6 was hard.
- Little introduction to lang scheme.
- Long assignments.
- Lots and lots of work - assignments are difficult to do well on even with a big time commitment.
- Nothing too significant.
- Only functional, could relate to reality and industry closer.
- Relate more to the real world.
- Scheme
- Scheme isn't a very useful language.
- Sometimes assignments take too long to complete.
- Sometimes the topic can become too confusing and abstract.
- Sometimes too much work to do.
- The course is kind of quick.
- Too much design recipe.
- We didn't play much about strings.
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. |
- Dave's jokes kept the class atmosphere light and enjoyable.
- Good attitudes.
- Good class atmosphere.
- Good class atmosphere.
- It was a fun atmosphere, where there was a lot to learn.
- It was a very positive environment.
- It was generally pretty good.
- It was good.
- Neutral.
- No negative atmosphere.
- Positive - everyone willing to learn.
- Positively
- Positively, with jokes.
- Positively.
- Positively.
- The class had a very very positive atmosphere, very group like.
- Very positive and funny instructor.
- Very positive and pleasant.
Any other comments, e.g., class size, suitability of room, noise level, etc. |
- Everything fine.
- Good class size.
- It was okay.
- Nice size. Easy to communicate.
- The class is pretty spread out, but other than that pretty good.
- Very good prof. Let him keep his job :) !
It was the first time teaching a functional language course, and I struggled with the pacing and assignment difficulty a bit, but overall it was a very positive experience.