Number of Respondents: 45/91 (49%)
The instructor(s) helped me to understand the course concepts.
Average: 4.76
Standard Deviation: 0.48
Strongly Disagree | Disagree | Neutral | Agree | Strongly Agree | No Basis for Rating |
---|---|---|---|---|---|
0 | 0 | 1 | 9 | 35 | 0 |
0% | 0% | 2.22% | 20% | 77.78% | 0% |
Comments
[Strongly Agree] Ross Evans knew his stuff.
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.58
Standard Deviation: 0.68
Strongly Disagree | Disagree | Neutral | Agree | Strongly Agree | No Basis for Rating |
---|---|---|---|---|---|
0 | 1 | 2 | 12 | 30 | 0 |
0% | 2.22% | 4.44% | 26.67% | 66.67% | 0% |
Comments
[Strongly Agree] He had some pretty funny jokes some times.
The instructor(s) stimulated my interest in this course.
Average: 4.51
Standard Deviation: 0.72
Strongly Disagree | Disagree | Neutral | Agree | Strongly Agree | No Basis for Rating |
---|---|---|---|---|---|
0 | 1 | 3 | 13 | 28 | 0 |
0% | 2.22% | 6.67% | 28.89% | 62.22% | 0% |
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.25
Standard Deviation: 0.88
Strongly Disagree | Disagree | Neutral | Agree | Strongly Agree | No Basis for Rating |
---|---|---|---|---|---|
0 | 2 | 7 | 13 | 22 | 0 |
0% | 4.44% | 15.56% | 28.89% | 48.89% | 0% |
Comments
[Strongly Agree] He laid out what we were going to do everyday.
The course activities prepared me for the graded work.
Average: 4
Standard Deviation: 1.14
Strongly Disagree | Disagree | Neutral | Agree | Strongly Agree | No Basis for Rating |
---|---|---|---|---|---|
1 | 6 | 4 | 13 | 19 | 1 |
2.22% | 13.33% | 8.89% | 28.89% | 42.22% | 2.22% |
Comments
[Neutral] agree for assignments, strongly disagree for midterm
The intended learning outcomes were assessed through my graded work.
Average: 4.14
Standard Deviation: 0.94
Strongly Disagree | Disagree | Neutral | Agree | Strongly Agree | No Basis for Rating |
---|---|---|---|---|---|
1 | 2 | 5 | 18 | 18 | 0 |
2.22% | 4.44% | 11.11% | 40% | 40% | 0% |
Comments
[Strongly Disagree] midterm was almost entirely trivia -- tested more whether we could regurgitate syntax rather than an actual understanding of programming concepts
The course workload demands were...
Average: 4.49
Standard Deviation: 0.58
Very Low | Low | Average | High | Very High | No Basis for Rating |
---|---|---|---|---|---|
0 | 0 | 2 | 19 | 24 | 0 |
0% | 0% | 4.44% | 42.22% | 53.33% | 0% |
Comments
[Very High] really time consuming assignments -- understandable by nature of the content
Text Questions
The most important thing I learned in this course was:
Basics of Bash, polymorphism, using classes, Concepts of software engineering, design patterns
Programming within the OOP paradigm.
How to right usable code 101
Great
Start assignments early, never underestimate the time it takes to debug code.
Concepts of OOP
Linux, OOP, and strong programming logic.
how to implement design patterns
Core OOP principles, how to apply them
What my learning style was and how the course did not cater to it.
Object-Oriented Programming
One question can take many, many hours, so plan ahead of time
Design patterns, abstractions, and measures of good program design.
OOP
cannot rely entirely on lectures to learn, significant portion of time outside lectures spent teaching myself new material for assignments.
The qualities of good structured code, tradeoffs of different design patterns, and pointers and references
It is important to organize your code well using various SWE principals. Starting assignments early was also something I learned the hard way :)
How to implement various design patterns in C++
To be organized when writing programs
The entirety of OOP and C++
c++
How to code with C++ and how to navigate and use bash
Different types of design patterns in software development
Good code design + standard design patterns
Bash
time management
C++ design patterns, really great industry knowledge for C++, Linux and Bash
Ross is a very cool professor
Programming
How to efficiently organize my code in an object oriented.
Core Object Oriented programming principles that are applicable to future jobs.
How to design programs, and plan my solutions before actual programming. Once I was programming, I learned how to be assertive when I came across a problem.
OOP
I got a deeper understanding of various design structures that can help me streamline my code and solve problems
How to make a big project from scratch in an organised and structurally sound manner. Everything we had learned about classes and design patterns came in handy when my team was working on the final project. Working on the project was probably the best learning experience I have had in university so far.
Classes and organizing different functions within them.
Fundamentals of C++, OOP and Software Engineering principles
What helped me to learn in this course was:
Lecture Notes, Assignments
The tutorial content was helpful to review difficult course content.
Assignments
Ross's patience and fantastic explanations of concepts during lectures and office hours
Good in class examples as well as tutorial examples. The extra tutorial reviews also helped. It was also good have 2 due dates for each assignment, it helped me better understand the requirements for each assignment,
The assignments help me to learn a lot
The in-person lectures were very helpful. Ross Evans was definitely one of the best professors I have had so far. His method of teaching perfectly aligned with how I learn. The bi-weekly assignments were also very helpful.
the professor being very engaging
Related assignments
There weren’t many helpful measures taken in the delivery of this course, but I appreciated the activity on Piazza, both from other students and TAs. Ross was pretty helpful for the most part too.
Approachable professor [Ross Evans].
Well-organized lectures and assignments
Getting help with concepts from classmates
Code examples of theoretical design concepts. Being able to ask for help/clarification during office hours.
Friends
Concepts introduced in lectures were clearly explained and backed up with concrete examples
Code examples during lectures, diagrams, explaining why specific concepts like inheritance are useful and necessary
Ross was amazing lecturer (one of my favourites to go to). He was always engaging in lecture and was happy to help afterwords.
Ross Evans' very good office hours
The course structure
The lectures, content, etc.
the notes
Mostly the tutorials, very helpful sessions
Going to class as regularly as possible and working through assignments.
Working through assignments
Instructor
good time management strategy
The assignments and Ross is a really great lecturer!
I like his accent
Other peoples notes
The lecturer was great. Probably the best prof I’ve had at Waterloo. Explains things really clearly. Answers questions well too.
Attending classes and taking detailed notes from lectures
Assignments, tutorials, going to office hours.
my own notes
Lots of good examples, approachable explanations (always starting with the problem we're trying to solve was really helpful)
Peers. Explaining topics to my friends and learning confusing concepts from them was what helped me learn in this course. Office hours were really helpful too! I loved how there was almost always office hours going on so you never felt unsupported.
Ross was a good prof but I feel like he used to speed through everything and the students were left behind to catch up. It was fine when we were covering easy topics in class, but as we got into the more complicated stuff, Ross did not slow down or devote more time to it.
Tutorials that had examples of concepts that would be tested during assignments and the midterm.
The assignments utilized lecture content, while also adding enough difficulty that required students to think through solutions.
What changes, if any, would I suggest for this course?
Reduce the work load, longer time for the final project, reduce a couple assignments
Course notes would be phenomenal as I often found myself spending more time trying to note down what's being said so I don't miss anything rather than having the chance to let the concepts sink in.
Ross Evans was great and engaging, but the course itself was structured poorly. At the very least, there should have been course notes, like almost all other Math/CS courses have. Without notes, missing lectures were a death sentence.
Remove midterm and final, more assignments instead
More lenient deadlines/grading
It would be good to have some sort of course notes or at least an overview of the topics that will be discussed throughout the term. (Also clearer writing on the board would be super helpful...)
Allocate more grades to the assignments than the exam. Also, for the exam, add questions that are more reflective of what was done in the assignments and lectures instead of questions that appear "out of the blue."
None
more time for A5
Inclusion of course notes
CS246 is known to be a fast-paced course that requires more time and effort than most others (even acknowledged on the course’s own website). Despite this, there aren’t many measures taken to help students get through it. The lack of course notes, for one, was extremely irksome. I am not somebody who can understand concepts while taking proper notes, and this issue was exacerbated by not having material to refer to.
This also meant that oftentimes, sick students would have to show up to class, which is neither good for them nor for those around. Taking notes was a whole other hassle during class since the handwriting of the instructor was effectively illegible due to the pace he had to write with (given that so much had to be covered in one lecture).
The material taught in class, moreover, did not seem to prepare one for the assignments on the content. The already steep learning curve became steeper still on assignments as there were no similar examples given in class.
Overall, I wish the course really catered to the needs of students and helped them understand integral concepts in programming, instead of demanding an insane amount of time and effort from students to “thin out the batch”.
Do not have written midterms and finals. If anything, make assignments weighted much more than written assessments, and get rid of "trick questions" that will never matter in the real world of programming.
- Please, please add official course notes, slides and recorded lectures: it was very difficult to catch up and understand concepts if I had to miss a class
- post assignment and examination solutions: otherwise I have no feedback on what I did wrong
- give more time for final project implementation (2 weeks instead of 1.5 weeks)
- give old midterms for practice
More varied code examples, aside from the ones shown in lectures, especially in tutorials, that are more closely related to assignment content.
Having detailed official notes/videos posted
A significant portion of the midterm exam covered C++ trivia not specifically introduced in class; would prefer a midterm examination actually relevant to the content taught. Also, give lecture notes.
Post class notes (for reference), release assignment 5 ahead of time + teach more design patterns before A5 DD1
For Ross's case, I'd advise writing on the board a little larger. There were some words that I could not read very well.
Give the students course notes. Makes no sense why we don't have them. Very easy to make, and great benefits for students.
I think the "we need to make the workload super tough because other courses expect us to" is really dumb, because on a lot of assignments they could've combined questions that were testing the same concept without losing any of the learning value while reducing the workload demands of the course.
I would make the course slower (think they are doing this already) its simply too much too fast. I would reduce content, like the entirety of bash. I would also recommend providing course notes.
make the assignments shorter
I would suggest implementing and uploading course notes or slides. As it is, writing code on the board seems like a clunky way to present it and accidently missing a class has too high of a consequence.
Introducing course notes available for all students. This term did not include course notes, so if I missed a class due to circumstances like co-op interviews or mistyped some of my notes during class, it was extremely difficult to catch up. Having access to accurate and current course notes would have made the course much more manageable, and lack of course notes made the course unnecessarily frustrating and difficult.
Add course notes / outline of covered topics to facilitate independent review outside of class
Public past tests/finals to better prepare
Not a difficult course at all -- the content in this course was genuinely extremely useful.
However (I think many others have more to say about this too), the main reason I have a generally unfavorable view of this course is the lack of publicly available notes.
The """"rationale"""" is probably "well this is how it was run before COVID so you gotta come to lecture now," but the fact of the matter is that the impact of the pandemic was massive, and there are now highly detailed notes and lecture videos IN EXISTENCE for nearly all courses.
So from my point of view, there exists a massive pool of useful resources being ACTIVELY WITHHELD from students, simply to uphold some archaic notion of "you gotta physically come to lecture".
Even in the event that there needs to be a small change in the lecture content, it is without a doubt that publicly available notes would still be useful, and I see absolutely no reason how having access to these resources would hinder the learning process -- I might add that in EVERY course where online resources were readily available, I would say I learned much faster and retained much more content than those that did not post notes.
Apologies for the long rant, but hopefully if someone reads this, it just might make a small change for the sake of future students...
ADD COURSE NOTES PLEASE!!!!!!
Since I’m not a good note taker, course notes would help
Provide course notes
More in depth into important topics such as polymorphism and the like
I think having an official course note would benefit this class greatly, with some small problems, exercises, and notes to think about at the end of each section. I oftentimes found myself understanding what was written in the lecture, but not being able to apply my knowledge enough, even with assignments. I think the final project is too heavy of a project this close to exams, and perhaps assigning it a week earlier and giving us three weeks to do it would allow students to study and prepare for other classes. I know the course will change next year with the removal of Linux, but I still think the note in the course syllabus that "some weeks will be significantly harder than other courses" is problematic, the course needs to find a way to structure itself so that students are more so set up for success, and supported when doing their work. This being said, I understand the need for large assignments in a course like this, and I enjoyed doing them, it jus seemed that towards the end of the term this course monopolized my time greatly, and I felt that I was neglecting other courses.
make public course notes
Please please please please make/upload real course notes we can look at outside of the class. If someone's sick or busy and can't make it, they'll just miss all that stuff
Please introduce course notes. It would have helped me and everyone else so much.
Half of the midterm questions were C++ trivia which most people didn’t have memorised. I felt it wasn’t fair to test us on that.
A3, which was an S level assignment, was probably doable but the timing clashed with midterms from other courses people were taking and no one was able to do well on it. Maybe keep that in mind when releasing a S level assignment.
80 min classes are a bit much. It would be nice if Ross had taken 1-2 minute breaks every now and then and spoken about something else, or interacted with the class etc. it’s very hard to not zone out during 80 minutes of nonstop C++/OOP.
Provide online notes as it's not easy to grasp the concepts learned in class immediately, so having supplementary notes would allow for learning concepts at a quicker and more seamless pace.
I think the midterm multiple choice was over-tuned, some of the questions were really difficult or niche. Some the assignments also needed edits in the instructions, as there was always vagueness in what the instructors wanted. It would be nice to make sure assignments instructions were looked over before being released.
The schedule for this course is very tight, not reasonable given the earlier assignment is easier, and the final project is very heavy especially during pre-exam period.