CS 371p Fall 2020: Shayan Maradia Final Entry

Shayan Maradia
3 min readDec 6, 2020

How well do you think the course conveyed those takeaways?

  • test first, test during, test after, test, test, test
  • when designing algorithms, demand the weakest iterators (e.g. bidirectional vs. random access)
  • when designing containers, provide the strongest iterators (e.g. random access vs bidirectional)
  • build adapters on top of containers, iterators, and functions
  • always look for reuse and symmetry in your code
  • collaboration is essential to the quality of your code and to your well-being in producing it
  • refactor, refactor, refactor
  • make your code beautiful

When it came to testing, I feel like this was emphasized a lot throughout the class exercises and examples, and the importance of testing also became very important on the projects. The second idea was emphasized a lot especially through a lot of the HackerRank challenges where we were using iterators of different strengths, and this is similar to the third idea which was emphasized a lot when we were building different data structures. The rest of the takeaways were things we were constantly reminded of throughout class activities, in-class examples, readings, and projects. Overall, I think these ideas will stick with me going into the future.

Were there any other particular takaways for you?

I think, in general, there were a lot of things about C++ syntax that I learned through this class that I did not know previously because I had never worked in C++ before. Also, I got a lot of practice with pointers, which I have always struggled with in the past, and I think I have a much more thorough understanding of how they work. Also, I learned a lot of things about software development as a whole and things that are typically done when developers work on things during times such as when we had to create repos for our projects with issues, pipelines, merge requests, etc.

How did you feel about two-stage quizzes and tests?

I think it adequately allowed all of the students to be able to show their individual knowledge of the material on the tests and quizzes during the first-stage, and I think that the second group stage allowed for people to collaborate on things they were confused on, and I think this facilitates learning. People would answer each other’s questions and also determine what the best way to go about solving the question(s) is, and this allowed me to get the most learning out of the quizzes and tests.

How did you feel about cold calling?

I think it was actually a good idea because it allowed everyone to be active in the lectures, and it also allowed the class to be more discussion-like when Dr. Downing would ask questions to students that are called on and also allow them to clear any misunderstandings about the material by allowing them to ask questions. Also, the format of the class encouraged everyone to attend class, and the cold calling helped everyone be a part of class, especially when everything was virtual.

How did you feel about office hours?

I think they were very helpful, and the TA’s did a great job at answering any questions about the labs, class examples, etc., and I made use of office hours quite a bit. The TA’s are really friendly and always willing to help clear confusions and answer questions, allowing all students a chance to maximize how much they are learning through OOP.

How did you feel about lab sessions?

I think lab sessions were great for answering specific questions individuals/pairs would have on the labs. It was great especially when you are stuck on something and need an instructor to help guide you on how to proceed or debug something.

Give me your suggestions for improving the course.

I think the class was great, and the format of the class helped me gain an understanding of OOP and C++ programming from many different angles such as quizzes, class, HackerRank exercises, projects, papers, etc. I think this class was as good as any class can be!

--

--