Number of Respondents: 49/116 (42%)
The instructor(s) helped me to understand the course concepts.
Average: 4.65
Standard Deviation: 0.82
Strongly Disagree | Disagree | Neutral | Agree | Strongly Agree | No Basis for Rating |
---|---|---|---|---|---|
1 | 1 | 2 | 6 | 39 | 0 |
2.04% | 2.04% | 4.08% | 12.24% | 79.59% | 0% |
Comments
[Strongly Agree] Very engaging examples and analogies
[Strongly Agree] was my fave course ever!!! only because of ross evans he is the GOAT
[Strongly Agree] The lectures prepared by professor Ross were very engaging, and had very useful examples that helped to solidify my understanding of course concepts. The pacing of the lecture was very easy to follow, and I especially liked that notes were posted after lecture so that I didn't have to worry about missing any details during the lecture.
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).
Average: 4.78
Standard Deviation: 0.74
Strongly Disagree | Disagree | Neutral | Agree | Strongly Agree | No Basis for Rating |
---|---|---|---|---|---|
1 | 1 | 0 | 4 | 43 | 0 |
2.04% | 2.04% | 0% | 8.16% | 87.76% | 0% |
Comments
[Strongly Agree] I really appreciate the jokes during class which make it feel lighthearted.
[Strongly Agree] the best!!!!
The instructor(s) stimulated my interest in this course.
Average: 4.53
Standard Deviation: 0.97
Strongly Disagree | Disagree | Neutral | Agree | Strongly Agree | No Basis for Rating |
---|---|---|---|---|---|
2 | 1 | 2 | 8 | 36 | 0 |
4.08% | 2.04% | 4.08% | 16.33% | 73.47% | 0% |
Comments
[Strongly Agree] He's very funny! It makes class a lot more fun to go to. Also very interactive.
[Strongly Agree] yes. very well taught and very supportive
[Strongly Agree] Examples were very relevant to course work or were just fun (video games, none pizza with left beef, etc.)
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).
Average: 4.58
Standard Deviation: 0.93
Strongly Disagree | Disagree | Neutral | Agree | Strongly Agree | No Basis for Rating |
---|---|---|---|---|---|
2 | 0 | 3 | 6 | 37 | 0 |
4.08% | 0% | 6.12% | 12.24% | 75.51% | 0% |
Comments
[Neutral] Midterm felt like a lot of brute force memorization of c++ facts and design patterns. Not reflective of the tone in class.
The course activities prepared me for the graded work.
Average: 4.49
Standard Deviation: 0.95
Strongly Disagree | Disagree | Neutral | Agree | Strongly Agree | No Basis for Rating |
---|---|---|---|---|---|
2 | 0 | 4 | 9 | 34 | 0 |
4.08% | 0% | 8.16% | 18.37% | 69.39% | 0% |
Comments
[Strongly Agree] I really appreciate having had some questions to study for the short answer parts of the midterm.
[Strongly Agree] The assignments in this course were very fair, and a reasonable extension of the content covered in lectures.
The intended learning outcomes were assessed through my graded work.
Average: 4.55
Standard Deviation: 0.88
Strongly Disagree | Disagree | Neutral | Agree | Strongly Agree | No Basis for Rating |
---|---|---|---|---|---|
2 | 0 | 1 | 12 | 34 | 0 |
4.08% | 0% | 2.04% | 24.49% | 69.39% | 0% |
The course workload demands were...
Average: 3.52
Standard Deviation: 0.71
Very Low | Low | Average | High | Very High | No Basis for Rating |
---|---|---|---|---|---|
0 | 1 | 26 | 16 | 5 | 0 |
0% | 2.04% | 53.06% | 32.65% | 10.2% | 0% |
Comments
[Average] Would appreciate if the project were given a little earlier so I could spread out the work more.
[High] Giving so little time for the project while we also had a lot of other projects at the same time was a bit tough. Generally the assignments didn't take toooo long but the project did.
[Average] Good workload for the course. If it chose to go a bit higher that'd probably be fine, but as-is is good too!
[Very High] mostly in assignment part 2s
Text Questions
The most important thing I learned in this course was:
Object-oriented programming is a lot more involved than I previously thought (and hard)
design patterns
How to holistically think about a system.
the design patterns were interesting. I wish we got to spend a bit more time on them, because we went over each of them pretty quickly. I think the general idea of what the core concept of each design pattern could have been explained more, rather than just jumping into the example, because sometimes it was tricky to tell what was just the example and what was the design pattern itself.
Design patterns
I really learnt about the software engineering principles, and this course taught me alot about OOP! Especially as a beginner I find that it was easier to follow the concept.
Internal memory representation of C++, benefits and drawbacks of design patterns
C++
I really appreciate that you have emphasized the aspects of the course related to more general software engineering ideas rather than C++ language features.
The big 5
Programming principles as a Software Engineer. I think this course has a lot of real life application concepts that are important to know as a programmer. Also best practices for writing code. It made me think more about my coding style and how I can make it more organized, easier to read and modular.
How to write C++ in a good and scalable way using good OOP and design patterns
rvalue and std::move()
OOP
Lots of design principles. Helped me a lot with developing the mindset of thinking about reasoning behind design patterns and keep optimization and best practices in mind. I feel like now when I can easier tell when something can be improved and what the holes in implementations are.
How to code in C++
C++ is scary, and specs are just specs... (They need not be perfect)
The actual practical consequences of software design decisions, by having hands on.
Design patterns!
Software design principles and design patterns. Practical C++, as well as considering why C++ does those things (from perspective of a compiler and from C++ designers).
-the different types of design patterns
- thoroughly planning out a design
Design Patterns, definitely will help me with interviews in the future
how useful c++ is
Object-oriented programming and its design philosophies, why things are the way they are (e.g., virtual dtor), and design patterns and their motivation.
design patterns
Ross Evans taught me a lot about the advanced features of C++ and made me think way more about how I structure and design my programs.
C++ features!
Good software practices and design patterns! I think its going to be very helpful in future co-op and full time job.
Good software design. Understanding how to create modular code and getting in the mindset of thinking about tradeoffs.
GDB DEMO WAS GOATED. i have already used it in multiple courses
Software engineering design patterns and general architecture thinking.
What helped me to learn in this course was:
I liked how the professor wrote on the board during every lecture; it helped me understand better. I also really liked the booklets that we had in the first half of the semester.
Writing a lot of code and seeing if it worked
The lectures were engaging and useful and the notes from the TA were much appreciated.
the assignments were a challenging but not tedious! also the blookets were super helpful.
overall, you really seem to care about keeping classes engaging so I really appreciate that!
A lot of code examples
I liked the tutorials and Ross evans office hours were reallllyyy helpful!! He is such a GOAT!!
Code examples
i like blooket
the typed course notes from robin REALLY helped. Thank you!!!
Class notes and examples
I feel the lectures were helpful in improving my general understanding but I also found having practice content quite essential for preparing for the midterm.
Reviewing course notes. The assignments were also good since they reinforced the knowledge taught in class.
Rereading notes, memorizing definitions, glancing at examples to try to understand the implementations.
The funny related jokes that was spoken in class to make the contents more enjoyable. The TA’s transcribed notes are also helpful.
Lectures
Attending lectures!!! Ross is a good speaker and is super engaging 💥💯🔝‼️ - I also really liked the blookets (during both tutorials and lectures), which always helped to refresh my knowledge/point out gaps in it for which I need to review again.
Ross Evans! Keeps the class engaging/fun, easy to understand, and seems to really care about the students and our learning. One of my favourites profs I've ever had.
(Coming from someone that generally finds CS hard).
The prof and his amazing lectures.
The hands-on experience of the project was really amazing. It was a lot of fun, and tbh the hardest thing I've done at Waterloo yet, to design the UML but by the end it was so satisfying, our team was super proud of our design.
he looks and sounds like harry potter
Considering why we do certain things. Examples in class of applications of design patterns and common pitfalls. Blooket questions are helpful to make me think more critically. Ross is fun to be taught by and an engaging professor. Assignments are helpful to test my knowledge; project is a great application of course concepts. Asking questions after class was a great way to reinforce my understanding of what things were happening 'under the hood.'
- blooket
- Ross Evans’ humour
- clear notes by Robyn
- playing speluky
Blookets and also practical examples of design problems and solutions
the instructor
Assignments provide good practice and help uncover your blind spots and cement course concepts. The Blookets in class and tutorials really helped with tricky concepts and were good preparation for exams.
Ross Evans.
Assignments. very engaging lectures structured logically. Supportive TA.
Ross Evan's lectures were very engaging and the assignments matched the course content well.
The prof and his amazing notion notes
Ross was one of the best profs I ever had. He explains concepts very in depth and in a very interactive way. He made the course really fun and I wanted to come to class to learn!
The blooklet's in the first half of the course were great. The assignments were also done well, and they were relevant to the course. Ross Evans is also engaging during lectures.
jokes during lecture
The great pacing of the lectures and the notes posted by Professor Evans.
What changes, if any, would I suggest for this course?
Easier midterm (this midterm was very difficult, I feel like designing a shared pointer module was not something I was well prepared for).
Make the course language agnostic
While I think it's fine for a course to focus on a single language, it would be nice to see some examples implemented in other languages in addition to C++ or patterns that don't really exist in C++ but do in other languages.
sometimes, it felt like lessons were a bit like: here's a problem, here's a solution, but that solution doesn't really work, let's do this, but this doesn't really work, etc. I do like how you give the motivations for things, but sometimes it felt a bit overwhelming to learn things and have a bunch of code for things that ultimately didn't work or were just motivation. maybe it would be better to clearly outline that the following example is going to be motivation for something else?
When teaching design patterns, give an overview of the pattern before jumping straight into a code example
It kind of goes fast in the class, I find it difficult to take notes and keep up so maybe slow down a litle bit!
Exam testing specific names of errors didn't seem very connected to other parts of course content
I think the final project should be released earlier and have a week earlier due date for due date 2 to force people to start it earlier
please stop having due dates at 5pm. Why...
Why can't we have past midterms when you get it back on crowdmark anyways?
Less work.
I think this course will change soon, so I'm not sure if I can request anything specific, but I think it would be good to have more modern language features and a focus on generalizable ideas in software engineering that aren't too OOP-centric.
I will say, I feel that the lecture structure feels a bit like telling a story and not definitive split into like chapters/specific big umbrella concepts which can make it a little harder to turn back to the notes to find where something was once said. Which in turn makes it a little harder to study as it feels easy to miss some little detail. Maybe that's just because I'm more used to the strict separation of chapters but maybe just a bit more structure would help. Lecture delivery is great though!! Thank you :D
I would prefer more public test cases for the making test cases part to make sure I didn’t forget to submit some files in marmoset
Nothing that I can think of. I really appreciate the course outline and I love how its split into assignments and then a choice for our project. Feels a lot more applicable and I learn much more than a heavily weighted exam. I really feel like it works, please keep this outline for future years!
N/A
I suggest focusing on the reasoning and applications of design patterns, i.e some larger case studies. And, try to reduce the amount of C++ trivia ;-;
Let people bring a cheat sheet to the midterm or final would help make the trivia sections more tolerable.
I actually think it's okay
When a significant change happens to the git, I think it'd be nice to get a separate Piazza post that notifies us to git pull.
Could be nicer to get assignment grades a bit earlier to be able to apply the feedback to the second half of the assignment / to other assignments though this is probably hard to do.
For the next person to transcribe Ross Evans’ notes, it would be nice if the information was split up into different pages by concepts or lectures. Loading the whole notion was very laggy since there was a lot of information on one page
Less C++ trivia, some of these problems are really weird edge cases that I don't think I'll encounter ever
nothing
None, the course is amazing, don't change anything.
exams shouldnt rely on memorization as much (mostly because i suck at that)
Make it more interesting
none
More practice problems to give practice for the exams would be good.
longer time for group project, and make it earlier in the term
I would have liked to have more time to work on the final project for the course. As the term comes to an end there are multiple group projects and final assignments due, so it would have been nice to have more time so that there isn't such a heavy workload at the end of the term, especially since the final project is worth such a large part of our grade.
Project is fun but it is a lot of work in not a lot of time. Please consider releasing it earlier in the future