Anonymous student feedback for SWE419 and SWE619 (OO Specs & Construction). For teaching evaluation the students were asked the following: There is no right or wrong answer for the below questions, but they can help me improve the class. I might present your text verbatim (but anonymously) to next year’s students when they are considering taking the course (e.g., in the first week of class) and also add your advice to the project description pages. 1. What were your favorite and least aspects of this class? Favorite topics? 2. Favorite things the professor did or didn’t do? 3. What would you change for next time? SWE419: OO Specs & Construction ------------------------------- Fall 2022 --- 1. What were your favorite and least aspects of this class? Favorite topics? Favorite topic was type abstraction. Least favorite was inheritance. 2. Favorite things the professor did or didn’t do? The professor emphasises teaching as well as self study better than most classes. It comes naturally. 3. What would you change for next time? A better class room hah! --- Favorite topics may be data encapsulation I like that the professor was engaging I would maybe have a better study guide. ---- 1. This class felt very relevant to my other courses this semester, as I saw things we were learning here being explained in CS 330 and CS 321, which was cool because I already understood those topics (Hoare logic, for example) before they were addressed in those classes because of 419. 2. I liked how the professor let us work in groups and made use of in class exercises, as well as weekly quizzes. I always like those because I feel like they help make sure we understand the material. 3. This isn’t the professor’s decision, but 3 hour classes like we had this semester are always difficult to sit through, at least for me. --- 1. favorite aspects: I liked the challenge of the homeworks and working with the group and the lectures were pretty interesting for certain aspects least favorite aspect: sometimes the homework questions were pretty confusing and the in class examples was not my favorite because my group members tended to show to class late so i had no one to figure it out with and bounce ideas off of and there really wasnt much stress to do them sometimes. favorite topic: dont have any i liked most if not all of them except hoare logic which was very difficult for me to understand favorite things professor did: The lectures were easy to engage too. i liked that the professor stayed behind after quizzes to make sure everything was fine and was very reasonably for most if not all things in the class favorite things professor didn't do: sometimes the notes were posted late and questions on homework was sometimes confusing and maybe find another way to make everyone more engaged in the in class examples when students talk to each other the lecture part showing how it was done was good tho just student to student part 2.what would i change next time? i would make sure to read materials before doing the homework because what shouldve been 1-2 hours usually went to around 3-4 hours with our group trying to figure some stuff out sometimes --- The class was very interactive which made this course interesting and easier to understand through discussions 2. Favorite things the professor did or didn’t do? Had a very friendly relationship with all his students, making it easier to communicate with him 3. What would you change for next time? Feedback on assignments, so they can be gone over before exams. That'll make preparation easier and provide more clarity --- 1. The content was hard to grasb 2. I liked the prof engaged with the class 3. have the class be less than 1:45 there is a lot of content to pack into one class --- What were your favorite and least aspects of this class? Favorite topics? Favorite aspects was the teaching style and lectures covered.2. Favorite things the professor did or didn’t do? Favorite things were that professor allowed students to work on problems then would go over answers. Very helpful when learning.3. What would you change for next time? I would add the in class solutions online so that there can be some availability to look back and see the answers. instead of just the questions --- 1. My favorite part of this is learning the LSP topic. I would also suggest to have a slide notes. 2. I would review the course material more often if i could change for next time. And, thanks for professor, I really enjoy the course of learning, and get to know your research topic! SWE619: OO Specs & Construction ------------------------------- Fall 2021 --- 1. What were your favorite and least aspects of this class? Favorite topics? Ans: The concept of pre and post-condition, mutability, the different takes on topics by Bloch and Liskov, LSP, and many more. 2. Favorite things the professor did or didn’t do? Ans: I liked how the professor went about explain things- sometimes from technical to abstract implementation and at times from abstract to technical. I think it would have helped if you had shared some of your general notes on the topics we went through in the class. 3. What would you change for next time? Ans: Not much. But I think towards the beginning of the semester, having quiz at the end of the class distracted my focus from the class discussion. So maybe have quiz available before or after class. --- 1. What were your favorite and least aspects of this class? Favorite topics? Favorite aspect of the class was the structure. Having lectures and in-class assignments paired with reading and homework assignments gave great coverage for learning and application both in and outside of class. Class materials were sometimes convoluted; it was difficult to decipher at first the acceptable file submission types. Material was often written in an unclear way or with typos. It was sometimes hard to find files; It wasn’t clear on the final that the file names linked to code at first. Favorite topics were Lambdas and Generics; very useful tools to streamline programming and taught well. 2. Favorite things the professor did or didn’t do? ThanhVu bringing up his own research and relating concepts from class to his work, particularly in regards to testing, was nice to see how content from class can be applied practically. 3. What would you change for next time? We didn’t have a mid-semester recap; it would have been nice to refresh on the materials learned so far. --- 1. I liked that this class was online but it also made some of the material harder to understand. I like the group work (though it is always challenging to schedule). I found it helpful to discuss the concepts with my group. Having the quiz at the end of class was very helpful; It gave us a chance to get refocused on the course and the material. I work full time so comign straight off of afternoon meetings to a quiz would have been challenging. 2. I like that you added a lecture on Hoare Logic. 3. I felt our team wasn't always prepared to start the in class exercises. I like when we would have some lecture/review prior to jumping in. --- 1. What were your favorite and least aspects of this class? Favorite topics? my favorite part of the class was the inclass examples they made it easy to understand concepts my least favorite part of the class was A) having it be in such a long time block B) the context switching of vocabulary between the books and the professor teaching, it made me really confused at some point. 2. Favorite things the professor did or didn’t do? i loved learning about the professors research topic and being able to talk to the professor openly 3. What would you change for next time? change the lenth of time a class was, because it was online it was very difficult to sit through the full length of time without being in a classroom. --- 1. Favorite: Program Verification; Least: mutable and immutable. 2. Presenting many in-class exercises is really benefit for me to do practice. 3. Do more practice. --- 1. What were your favourite and least aspects of this class? Favourite topics? Great working loved the course, invariants and reasoning. 2. Favorite things the professor did or didn’t do? He’s so supportive 3. What would you change for next time? Nothing. --- 1. What were your favorite and least aspects of this class? Favorite topics? Favorite : Junit testing , least favorite: equal overriding 2. Favorite things the professor did or didn’t do? Favorit Hoar logic 3. What would you change for next time? Provide slides --- Least favorite topic was Generics because it was most difficult, but I found it very useful. Hoare logic was second least favorite. Favorite was contract writing I felt we could have reviewed the quizzes the following week to go over correct answers. The comments in the grades of quizzes were not very useful. --- What were your favorite and least aspects of this class? Favorite topics? - Favorite: Reading Reflections, because I like to write. - Least Favorite: Manual Hoare Logic (extremely tedious). This may be something an animation would help to teach better, and reduce the amount of time spent on it. Question 7.2: Favorite things the professor did or didn’t do? - No rush on quizzes, etc. No matter how well I do on assignments, or anything non-timed, I always freeze up under time pressure. This has cost me so many points over the years that I would not want to count. The longer time limits here reduces stress, which enables one to more clearly think about and articulate answers. - The TA was quite helpful. This was the first class where someone asked why I did not submit a quiz (hit save, instead of submit). Question 7.3: What would you change for next time? - I think that more topics could be covered, if less of the semester was spent fixated on a few topics, such as equals() / hashCode(). In particular, I think clone() is a relic of the past, which could be summarized as “Don’t Use This”. - Other aspects of object oriented design could be covered, such as design patterns. - A more explicit and direct introduction to SOLID. - The MapPoly example should be replaced. I believe the concepts would be clearer, if they were introduced using more simplistic examples. For example, the professor’s class Dog example for covariance/contravariance was a good example. - From life experience, more emphasis should be given to teaching interfaces, and why they are useful. equals() and hashCode() are going to get auto-generated most of the time. On the other hand, it is surprising how many developers seem to avoid interfaces, and detest composition over inheritance. - I would add an assignment on using Coverity or some other static analysis tool. - I am not sure what would be the best approach exactly, but I would put far more emphasis on the fact that these principles can be applied to other languages as well. This class is not really a “learn Java” class. Rather, this is a “learn good OOP principles” class, but comes off as being a little too Java centric. All that said, this was my favorite class this semester. Way back in 2010, I took CS 332 with Paul Ammann, which I would rank as one of the two most influential in the undergrad CS curriculum. This class seems very similar to my recollection of that class, but this class was more approachable and fun, which I would argue can make it more educational. --- 1.What were your favorite and least aspects of this class? Favorite topics? Hoare Logic sucked!!! It was so hard! 2. Favorite things the professor did or didn’t do? I like that the professor gave us time during the class to work with partners and made most of our assignments and reading reflection group based. I worked really well with my team. 3. What would you change for next time? I would possibly make the final a bit shorter! Thank you for a great semester professor! --- 1. What were your favorite and least aspects of this class? Favorite topics? Favorite aspect would be professor explain the course work by including practical examples on the fly. 2. Favorite things the professor did or didn’t do? Professor giving insights on his Research work would be my favorite part of the course. 3. What would you change for next time? Nothing much. Loved the course. --- 1. What were your favorite and least aspects of this class? Favorite topics? 2. Favorite things the professor did or didn’t do? I liked that the professor typed out the notes instead of using slides, it made it easier to follow along 3. What would you change for next time? --- 1. I think Junit was my least favorites since it's specific to Java. Favorite topics? I really enjoyed the generics piece of the course. 2. Professor rocked he was super helpfully and responsive couldn’t ask for anything more. 3. I wish we would have covered reflection since this came up in my job recently and maybe touched on functional programming with lambda expressions. --- 1. What were your favorite and least aspects of this class? In class exercise Favorite topics? Loop-invariants. 2. Favorite things the professor did or didn’t do? In class Exercise 3. What would you change for next time? Online to in-person. --- 1. What were your favorite and least aspects of this class? Favorite topics? I enjoyed learning about pre and post conditions. I feel like this was a really valuable insight to programming and system architecture. The Hoare logic was difficult to grasp, but I believe I finally got it. 2. Favorite things the professor did or didn’t do? I appreciated that the professor regularly reviewed the homework and in-class exercises. 3. What would you change for next time? I would do less group work. It allowed for some students to do less work overall. If they saw that another student in their group completed an assignment they wouldn’t attempt it themselves. --- 1. What were your favorite and least aspects of this class? Favorite topics? 2. Favorite things the professor did or didn’t do? The professor was very good I enjoy this class. 3. What would you change for next time? nothing --- 1. What were your favorite and least aspects of this class? Favorite topics? I was glad to work within a group because most of the times my group members were able to explain or help with homework. My recommendation to new students is that, if you don’t have Computer science background, this class is too difficult for you. 2. Favorite things the professor did or didn’t do? 3. What would you change for next time? I had hard time following the lectures. I think it would be easier if we had power point slides to follow along. It is easy to lose track of what the question is or the topic. --- 1. What were your favorite and least aspects of this class? Favorite topics? My favorite aspect of the class were the weekly assignments as I felt they helped me practice the concepts we were learning and understand them better. My least favorite aspect was it being online as I would've preferred meeting in person with the class but the in-person section was already full. My favorite topic was learning about contracts and specifications.  2. Favorite things the professor did or didn’t do? I liked going over the weekly reading reflections at the beginning of each class but wished we could've gone over the quizzes more in depth. 3. What would you change for next time? An in person class  --- 1. My favorite part about this class were the in-class exercises. Perhaps the least favorite were group hw assignments since it was difficult to find the right time for everybody to meet. 2. I thought the lectures were well organized and well-explained. I do not have complaints. 3. I would not change much for next time other than the group homework assignments. --- 1. What were your favorite and least aspects of this class? Class interaction, because no one liked to participate. Favorite topics? Going over theories and diferent kinds of testing. 2. Favorite things the professor did or didn’t do? Did: Always tried to engage conversations with students. 3. What would you change for next time? Nothing.