CS373 Spring 2021: Final Entry

Jyoti Luu
3 min readMay 8, 2021

--

Key Takeaways

  • 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.
  • Refactor, refactor, refactor.
  • Make your code beautiful.

How well do you think the course conveyed those takeaways?

Through the lectures, Professor Downing highlights these key takeaways throughout his lectures. Overall I think these takeaways are all mentioned, some more than others, but it is up to us as students to really apply them and use them to our benefit.

Were there any other particular takeaways for you?

I think through the lectures I realized how there are many ways to optimize your code and make it beautiful. Taking time to learn some of the infinite little quirks and features of Python was very insightful and interesting.

In terms of the project, I think I really understood how important it is to plan well when you are developing with a team. I think taking initiative, asking for help, and staying very organized through well-defined task delegation are skills that I will definitely take forward with me into my career.

How did you feel about cold calling?

I think cold calling is an effective way to keep us engaged in class. It can be scary to not know the answer and a hassle to get cold-called on but Professor Downing is very understanding and never makes you feel bad for not knowing how to respond to his questions.

How did you feel about office hours?

Office hours were pretty good. I think maybe having more specific help sessions geared towards setting up certain things like AWS, Docker, or the Relational Databases might be useful especially as students start the first phase of the project.

How did you feel about lab sessions?

I did not go to any lab sessions.

What required tool did you not know and now find very useful?

React and in particular React Bootstrap.

What’s the most useful Web dev tool that your group used that was not required?

Material UI really helped us with our table model pages for searching, sorting, filtering, and pagination.

How did you feel about your group having to self-teach many, many technologies?

Overall, self-teaching can be an effective way to learn something and it’s very hands-on which I like. Sometimes though, it can be really overwhelming, especially when you are trying to debug errors that no one on your team may know how to solve. But usually, it yields a lot of growth and helps us gain a lot of experience.

Give me your suggestions for improving the course.

In terms of lectures, I think sometimes it’s hard to understand a concept deeply just from 50 minutes of class. Perhaps having some sort of assignment to reinforce these concepts would be beneficial. Or going more in-depth in class, and providing more examples.

In terms of the project, I would suggest providing more resources for students. This could be in the form of making tutorial sessions for certain challenging aspects of the phases like AWS, Docker, or setting up the database. Additionally, just mentioning or going over some various helpful libraries and resources would be beneficial so students have a starting place for where to look. Alternatively, providing and strongly encouraging or incentivizing a way for students to more easily share useful tools they found for the project would be very useful.

--

--

Jyoti Luu
Jyoti Luu

Written by Jyoti Luu

I am a senior at The University of Texas at Austin studying Computer Science. I am interested in Full Stack Development in web and mobile applications.

No responses yet