Number of Respondents: 68/126 (54%)
The instructor(s) helped me to understand the course concepts.
Average: 4.85
Standard Deviation: 0.36
Strongly Disagree | Disagree | Neutral | Agree | Strongly Agree | No Basis for Rating |
---|---|---|---|---|---|
0 | 0 | 0 | 10 | 57 | 0 |
0% | 0% | 0% | 14.71% | 83.82% | 0% |
Comments
[Strongly Agree] Ross Evans is a very gifted lecturer. He understands the level of knowledge of the students, is very relatable with his jokes and humour, and keeps the class thoroughly engaged. Every student who has him as a prof would be lucky.
[Agree] To some extend.
[Strongly Agree] This course's outstanding quality has been the instructor's extraordinary capacity to make difficult subjects understandable and relevant. The learning process has been significantly improved by their ability to clearly, succinctly, and relatably explain course ideas. They frequently add compelling examples and useful analogies to further enhance their explanations. Also, their routine use of interactive activities and discussions during lectures has made our lecture way more engaging and participatory learning environment compared to any other class :D
[Strongly Agree] Prof. Evans teaches really well, explains concepts very clearly and is always happy to answer questions during class or office hours.
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.84
Standard Deviation: 0.37
Strongly Disagree | Disagree | Neutral | Agree | Strongly Agree | No Basis for Rating |
---|---|---|---|---|---|
0 | 0 | 0 | 11 | 56 | 0 |
0% | 0% | 0% | 16.18% | 82.35% | 0% |
Comments
[Strongly Agree] The instructor's approachability and willingness to address questions or concerns outside of class have been invaluable in furthering our comprehension and overall learning experience. pausing after each core concept to invite questions from the students has been particularly invaluable, as it allowed for clarifications and deeper insights into the subject matter. The instructor's dedication to their student's academic growth has extended beyond the classroom, as they have been highly approachable and supportive during office hours and on Piazza. Their prompt and professional responses to inquiries have been immensely helpful, ensuring that each student's concerns were addressed in a timely and efficient manner.
[Strongly Agree] Ross is very helpful in supporting students. His office hours are a great resource and he always goes out of his way to answer every piazza post with detailed and informative responses (which is a rarity in other courses).
The instructor(s) stimulated my interest in this course.
Average: 4.79
Standard Deviation: 0.44
Strongly Disagree | Disagree | Neutral | Agree | Strongly Agree | No Basis for Rating |
---|---|---|---|---|---|
0 | 0 | 1 | 12 | 54 | 0 |
0% | 0% | 1.47% | 17.65% | 79.41% | 0% |
Comments
[Strongly Agree] The only bad part was the few weeks spent on SOLID. That was very very boring. Not Ross' fault, just the course curriculum for CS247.
[Strongly Agree] I come to class which is a good sign.
[Strongly Agree] His lectures are really engaging, great personality, and I actually stay awake during them!
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.61
Standard Deviation: 0.67
Strongly Disagree | Disagree | Neutral | Agree | Strongly Agree | No Basis for Rating |
---|---|---|---|---|---|
0 | 1 | 4 | 15 | 47 | 0 |
0% | 1.47% | 5.88% | 22.06% | 69.12% | 0% |
The course activities prepared me for the graded work.
Average: 4.6
Standard Deviation: 0.73
Strongly Disagree | Disagree | Neutral | Agree | Strongly Agree | No Basis for Rating |
---|---|---|---|---|---|
1 | 0 | 4 | 15 | 47 | 0 |
1.47% | 0% | 5.88% | 22.06% | 69.12% | 0% |
Comments
[Neutral] Provide more examples would be great.
[Strongly Agree] Their positive and relaxed demeanour, coupled with occasional humour, has not only made the lectures engaging but has also made every student feel open and comfortable to ask questions and participate actively in the learning process. Additionally, the instructor's generosity with their time during office hours, dedicating considerable attention to each student's queries, further reinforced the feeling of inclusivity and support. I cannot overlook the significant role that the well-designed assessments and assignments played in preparing me for the graded work. The course activities were thoughtfully planned to ensure a comprehensive understanding of the course material, and the examples provided by the instructor during lectures were incredibly valuable in aiding the application of theoretical knowledge to practical situations. The assignments, in particular, served as excellent opportunities to apply the concepts learned in class, solidifying my grasp of the subject matter and preparing me for the evaluations.
[Strongly Agree] I liked how the assignment concepts are mapped directly from the lectures, and how the prof shares code in the repo that is helpful for the assignment (the examples done in class)
[Agree] I didn't expect some things considered in the grading of assignments. It would be great if the grading criteria can be given before the assignment.
The intended learning outcomes were assessed through my graded work.
Average: 4.7
Standard Deviation: 0.49
Strongly Disagree | Disagree | Neutral | Agree | Strongly Agree | No Basis for Rating |
---|---|---|---|---|---|
0 | 0 | 1 | 18 | 48 | 0 |
0% | 0% | 1.47% | 26.47% | 70.59% | 0% |
Comments
[Agree] I feel like writing black box tests against unknown implementation of programs is not a great way to assess the learning. I think all due date 1 test cases should be made public.
The course workload demands were...
Average: 3.94
Standard Deviation: 0.64
Very Low | Low | Average | High | Very High | No Basis for Rating |
---|---|---|---|---|---|
0 | 0 | 16 | 39 | 12 | 0 |
0% | 0% | 23.53% | 57.35% | 17.65% | 0% |
Comments
[High] The workload for the course was very reasonable during the term, but the project at the end felt very crammed. It was honestly one of the most torturous things I've done since starting my education at Waterloo. In the future, perhaps the breadth of the project could be reduced, or assignments can be moved a week earlier each so that there is more time to do the project.
[High] As the term went on the course load definitely got higher, with A3 and the project.
Text Questions
The most important thing I learned in this course was:
OOP C++ features
The various design patterns that can model common programming situations.
using gdb to debug c/c++ programs
How to write C++ code that doesn't suck
Object Oriented Programming in more detail, Design Patterns
Only make friends that can do something for you.
The course has provided a comprehensive understanding of data abstractions and C++ implementation, with the instructor's expertise in ADTs, polymorphic objects, and generic functions. The course emphasizes critiquing designs for cohesion, coupling, generality, robustness, and information hiding, enhancing the ability to create modular, general, robust, and flexible software designs. The incorporation of basic UML models in expressing software designs and behaviour has enhanced collaboration with team members and stakeholders, demonstrating the benefits of UML diagrams in understanding and communicating complex systems.
Software Development Principle and Design Pattern
r-value memory
C++ has a lot features! The creators of the language have given us a lot of flexibility, so it's important to know about the intricacies of features so that we can choose whether to use them or not, and if we do use them, we can use them properly
A lot about C++ and design patterns
How to write cleaner code
C++ design patterns
planning out my code and incorporating appropriate design patterns to improve my C++ object oriented programming
Decorator pattern
visitor patterns, decorator pattern, iterator pattern, observer pattern, and how to design software with projects/assignments.
Being more aware of design patterns and code safety
Planning and good design are levels above just writing code. The variety and number of different design patterns that we learned about are all indicators that there are always more things to consider when writing programs beyond correctness and time/space complexity. The final design project is also a great opportunity to make use of everything we learned and challenge ourselves to go above what we normally have done in the past with regard to CS projects and assignments.
computer science
C++
Design patterns and general information about C++
The importance of good style of code as well as the different design patterns of OOP.
I've learned more c++ best practice, and more design patterns I haven't seen elsewhere.
deisng patterns
While abstractions are important, too much abstraction creates unneeded complexity. Same with design patterns, while they’re useful, it’s important to consider if they’d be good fit for the design and use.
How to engineer software with good practices, learn more about the ins and outs of OOP, SOLID design, the big 5
robust design principles
How to calculate the Fibonacci sequence using exceptions. :)
Just kidding, but I can’t choose just one thing.
Design patterns, and how helpful it is to design the software before starting to code.
Principles of good software desgin
How to program in OOP, structure classes and files for a large project, and how polymorphism works. I was at a disadvantage coming into this cause because of how awful our CS128 section was taught, but I felt this class made up for it.
How to create clean, scalable, sustainable programs and best practices for designing code architecture
Big 5, Decorators + Observer patterns, good practices
Common design patterns such as decorator and observer.
This course really improved my understanding of C++.
Big 5!
Object Oriented Programming. But also what I find to be the most cool in the course is all of the design patterns within object oriented programming. Since before the course I only knew "encapsulation," "polymorphism," "inheritance," "abstraction" but now I truly understand how these terms apply and how they work in different settings such as the cool design patterns we learned in class.
Learning various design patterns and strategies to tackle software engineering issues I would encounter in the future.
The formalized knowledge of C++ features and programming concepts like SOLID that I learned during my work terms. They were really solidified in this course and I feel like I have a very thorough understanding of these principles now.
How to properly design class (and how they interact) with standard design patterns.
Design pattern
The importance of dedicating time to critically think about and employ good designs/structures for classes and programs.
C++
formally learned many concepts for the first time; helped solidify design patterns and principles that i had already been using
What helped me to learn in this course was:
Ross Evans' glorious lectures
The mix of examples and conceptual content.
Ross Evans is a phenomenal lecturer. He is humourous, approachable, and very knowledgeable about the course content. He made this course very, very fun, and he fully deserves all the praise students give him on platforms such as UWFlow.
attending lectures
Very engaging lectures. Knowing that the lecture would be taught well and knowing there wouldn't really be moments where I'd complete zone out, motivated me to attend all the lectures and really learn the concepts.
The professor was very clear, friendly and enthusiastic. He was also made fun and relevant coding related jokes which made class engaging. I enjoyed coming to class, and I thought that this class was taught much more clearly than the other software engineering c++ programming classes that I have taken.
The assignments, professor Ross' lecturing abilities. He is very clear, explains the topics fairly well in an understandable way.
The instructor's outstanding educational strategy was truly inspirational. They expertly adapted their teaching style to make even the most difficult course concepts understandable and accessible by having a thorough awareness of the needs of the students. They absolutely brought the subject matter to life with the clarity and precision with which they presented each concept, which was further enhanced with vivid examples and realistic analogies. Their influence on my intellectual development and interest in the topic cannot be quantified : D
Lectures, course notes, examples, etc - overall the professor is great! :))
my const r-value memory
The lecture notes were very helpful, and the lectures themselves were as well -- they were clear, well-presented, and well-supported as well. Questions were answered thoroughly in class.
Prof. Ross Evans teaching the course
the assignments mainly, as well as code samples that were provided by the professor.
The assignments and published lecture code
going to lectures, attending office hours, doing assignments, posting lecture notes on Piazza, uploading lecture note examples to Git repo
Great lectures and an exciting professor
Projects and assignments as well as the engaging lectures.
Having lots of examples
The lecture example code was helpful to learn
instructor was very engaging and gave thorough well-explained examples to illustrate concepts
the slides and assignment
Professor
Attending the lectures - the lectures were very clear and I rarely had to go back to the lecture notes to clear up my understanding
The assignment problems.
Assignments, discussion with classmates.
assignments
Examples from lectures, doing the assignments, and Prof Evans’ office hours.
Ross's Lecture notes were wonderful, and the assignments really helped me learn and understand design patterns and C++
code examples
The lectures, office hours, Prof Evans’ teaching style (no slides, just writing) and how engaging his lectures are.
Prof Evans is one of my favourite profs so far in university, and I really hope he teaches another SE26 section in the future!!
The lectures were very engaging
Lectures and assignments
Code examples during lectures
The assignments and final project (should have been worth more than 20%).
Professor Ross is an awesome lecturer; he is very engaging, enthusiastic, and has a good sense of humour to liven up the course content. He teaches the course really well, provides lots of examples/demos, and is always happy to answer questions. Clearly a brilliant guy who has a very deep mastery of C++ programming
The class examples, going to office hours and asking Ross for extra help.
Reviewing the handwritten notes and doing the assignments.
Ross Evans! His lectures are very engaging and fun to attend, one of the few professors who can make CS lectures enjoyable and not dull!
Doing C++ practice problems helped me learn a lot.
Assignments
The assignments were helpful as it let me apply the knowledge I worked in class. The prof is also very good at explaining and describing concepts in a clear and fun way, which is important since because of this, I started attending the CS 247 lectures when usually I would sleep in at 10 am. Finally, I do appreciate that lectures are saved and posted on Piazza so if I miss a lecture I can easily catch up and I find that to be really really nice.
Going to the lectures. Ross' explanations are simple enough for me to understand (not the case for a lot of other courses ;w;) yet still effective enough to go through the material.
Attending lectures and taking notes
Having notes/slides (provided by Ross) that could be referenced
A large number of examples in the notes.
Purposing the solution and what problem it solved for design patterns (as opposed to simply stating what the pattern was)
Prof's enthusiasm.
Very engaging professor, went at a good pace during lectures
I found Ross Evan's teaching style particularly effective. The combination of using case-specific examples and slowly going through the examples (hand-writing concepts as they were discussed) gave me clear insight into the concepts being discussed.
My guy ross evans
Attending Ross Evan's lecture
- assignments were a good application of in class learning
- professor was very willing to help explain concepts in office hours
- professor was very understanding about deadlines, which made the course much less stressful
What changes, if any, would I suggest for this course?
Less focus on SOLID. It felt very useless and boring.
Change tutorials to be more focused on examples, would help to allow lectures to focus more on concepts (and slow down) rather than lectures having to have examples too (making them feel somewhat crammed). Also, give more time for later assignments, July felt too cramped with the weekly assignments.
As I mentioned above, the project at the end is really, really heavy. It's heavy enough that the joy of programming and developing is just smothered by the sheer number of hours spent working on it, right before the exam season. Please consider scaling it down or giving it more time in future offerings.
have nicely typeset lecture notes rather than just handwritten ones
Assigning the project earlier on in the course. The scope of the project seems way too large to fit in the last couple weeks of classes.
Better handwriting
Maybe improve your handwriting for better readiness.
pretty good, but a lot of content a little all over the place in a short amount of time
maybe less difficult exam questions
It would be helpful to have more in-depth, code-focused tutorials.
Reduce the amount of C++ trivia questions, as I feel that a heavy proportion of the midterm was reliant on trivia, and made students unexcited to learn. Additionally, although I enjoyed Ross Evans' lectures, he could improve on the neatness of his writing.
More organized notes
provisioning Git repos for each student (similar to Winter 2022 CS138 offering) that we could pull from for new assignments and commit to for our own work
None
Hire TA that know C++ so they don't confuse a shalllow copy with a deep copy.
The marking for code style was scuffed and an indicator for what we should do other than a general "good oop style" would be appreciated.
I would make better use of the tutorial time, maybe by having a code along, or going over programming or conceptual questions from scratch. The tutorials didn't feel very interactive and were usually a repeat of the lectures
the amount of work required for each assignment could be more evenly distributed
also it would be nice to have a longer timeline for the final project
notes should be clearer
None, solid course
Have an alternate typed version of the lecture notes
Provide a bit more in terms of preparation and what to expect on examinations. Some types of questions were not covered in assignments so it was difficult to anticipate what needed to be studied.
None really, it's pretty good. Typed up notes I guess.
I think it’s pretty perfect as it is, maybe more time for the final project?
A stronger focus into non-C++ topics, and more general design patterns in modern day software engineering. Also more practice material (none exists)
more clear notes (prepared in advance) and more resources
A git repo set up like cs138 where the course staff pushed to everyone but we each had our own “copy” of the repo that we can commit/push to would be nice.
The tutorials also weren’t the greatest/very helpful…
More time for the final project please! Another week would be great.
The TAs who grade assignments don't understand some C++ patterns. I had to make several regrade requests.
I would make course notes available for students (I know this is not something Professor Evans has control over). The board notes were super messy and sometimes counterintuitive.
Additionally, I wished during lectures the professor would explain the importance of something/main concept, before going through dozens of examples (and explaining issues with each one until we reached the result). I found that this was not an affective way to teach the content. Instead, the main idea should be explained and then examples used to illustrate it.
Perhaps the assignments could be less time consuming for the sake of the students' sanity
Please make tutorials better!
They're really just summaries of the lectures, which aren't as useful in my opinion. Many of us take notes and have the lecture slides available to do that.
Helpful things would be for example teaching us how to make testing files in the very first tutorial, and even making us to short activities on our own would be helpful!
I would suggest making the workload of this course less.
More defined hand marking components
The assignments are very very long and do take a lot of time which can be hard to complete when you have a heavy course load. Hence perhaps create shorter assignments. But I still enjoyed completing these assignments nonetheless, they just took a lot of time.
At the start of the course I would've said to have better notes online, but this would've discouraged students to come listen to his class and I now see that would be a terrible suggestion.
Instead, I would suggest just having a general outline on what will be taught each week to let students know what is being taught would be good QOL improvement.
Neater notes. Sometimes the notes were hard to read/reference.
Less homework and more groupwork
Create actual notes instead of just writing on scratch paper. A formalized pdf with printed code would be nice instead of hand-drawing notes.
Nothing, he is such a great teacher
- having well written course notes (instead of just the pages from class)