Final blog post!
Takeaways from this course:
- test first, test during, test after, test, test, test
- when designing algorithms, demand the weakest capabilities (e.g. iterable vs. indexable)
- when designing containers, provide the strongest capabilities (e.g. indexable vs iterable)
- build decorators on top of containers, iterators, and functions
- utilize the benefits of being lazy (i.e. yield)
- 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
How well do you think the course conveyed those takeaways?
This course definitely emphasized these takeaways throughout the semester. We were not only able to learn these concepts in class but also use them in practice in our projects or tests. I am extremely glad that these important concepts are engrained within me so that I am more prepared to work in the software engineering industry.
Were there any other particular takeaways for you?
Personally, there were so many takeaways from this class. I had no experience using many of the tools and software needed for web development, so I feel like those were the main takeaways. Also, I realized how useful tools like Slack can be to create a collaborative workspace by integrating other necessary tools like Gitlab.
How did you feel about two-stage quizzes and tests?
At first, I was really nervous to take the exams on Hackerrank, but I think the process went much smoother and was much simpler than I expected. I really like that the exams were two-stage because I think it took some of the pressure off in a timed-environment. I think the exams really tested our application of the material we learned in class and, they were another great way to collaboratively learn any material we might have struggled on individually.
How did you feel about cold calling?
Again, I was super nervous about cold calling at the beginning of the semester. However, I think that it was a great way to keep everyone engaged, and I think that it helped me learn the material more efficiently. The cold calling is not as scary or serious as I thought at first. All the students and Professor Downing have created an amazing environment in class, which allows students to learn from their mistakes.
How did you feel about office hours?
I think that office hours were super helpful! All the TA’s and Professor Downing were extremely respectful and knowledgeable about the material covered in class as well as anything we needed for the projects. They were always willing to help us out, and made the class more enjoyable.
How did you feel about lab sessions?
I think lab sessions were a similar format to office hours, so I would say that they were helpful as well!
Give me your suggestions for improving the course.
I would suggest having the same test format for both exam 1 and 2. Also, I think the project requirements were extremely vague for some of the phases. I totally understand that it allows for more creativity and unique websites, but I think we spent a lot of unnecessary time clarifying the requirements.
To future students:
Overall, I have loved taking this course. I think it has taught me so many valuable technical and soft skills that will continue to help me in the future. Although I was uncertain about the disconnect between the class material and the projects, I think that it is a great way for students to really learn as much as they put into their projects. I recommend that every CS student takes this course in their time at UT.