CS373 SWE: Final Entry

Lilia Li
4 min readMay 9, 2021

Long Term 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
  1. How well do you think the course conveyed those takeaways?

I thought Professor Downing did an excellent job conveying these concepts listed. Professor Downing had a way of explaining these concepts in way that was really understandable and also drilled it into us. I learned so much about Python, SQL, Docker, and general software engineering practices without much prior knowledge at all.

2. Were there any other particular takaways for you?

After this class I learned a lot about how to manage a big project and how to figure out how to lead a team in a way that adjusts for the people in the group and what works best for them. I think I learned some good communication and teamwork skills that made for a really great learning experience. I also learned a lot about the different components that go into building a web app that I had never learned about before. Overall, this class taught me a lot of soft and hard skills that I feel have enriched me not only as a software developer but also as a person!

3. How did you feel about cold calling?

I thought that cold calling was a good way to keep students engaged. I know that I paid a lot more attention in class when I knew that I could be called on at any moment. I’m grateful for this because it forced me to learn things as the class went on because I have a tendency to just cram at the last moment.

4. How did you feel about office hours?

The office hours were always very accessible and the TAs were always very helpful. They were enough so that there was always a session I could attend if I needed, so I’m very satisfied with the format of office hours.

5. How did you feel about lab sessions?

Lab sessions were helpful as well. I didn’t attend very many, but similar to office hours they were always accessible and available whenever I needed to go to them.

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

Docker was a new discovery for me from this class that I had previously heard of but never really got into because I didn’t understand it that well, but after using it and learning about it in class I realized it’s very useful and a great way to package tools and code so that you can access it on any machine.

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

Material-UI was definitely the most helpful tool for frontend development. They have so many UI components that look nice, already have built-in functionality, and had lots of options for customization which made it easy to incorporate into our website. Material-UI also has really great documentation which made it really convenient to look up what exact syntax was necessary to add it to our codebase.

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

I felt that it was a challenge having to self-teach a lot of concepts and technologies like React and Javascript, however I know being able to self-teach is a very important skill in this industry, so I thought it was a good learning experience and good practice for me to get better at teaching myself new things. Also, there were so many resources online like youtube videos and online forums with people giving demos on how to do certain things or people solving certain bugs which made it a lot easier to handle all the uncertainty that came with these technologies. Overall, I don’t dislike it and I actually think it gives people the chance to develop this super important skill!

9. Give me your suggestions for improving the course.

Overall, I thought the course was structured very well and I really enjoyed it. Professor Downing was a great professor and the project was a lot of fun and I learned so many valuable skills from it. Definitely my favorite class I’ve taken so far at UT. However, a few improvements I could see being beneficial include making the rubric for the project much more specific as I had to ask my TA a lot of clarification on what was expected of us during each of the phases. I also think that Phase II should be allotted more time in the future since this was by far the most intensive phase, but the time to complete it didn’t reflect that. Also, I think that being able to have the option of choosing your own groups for the project might be beneficial so that people can choose partners who are on the same page in terms of motivation and skillsets. Sometimes it was a challenge having to pick up the slack for other teammates who weren’t willing to put as much time and effort into the project and it resulted in many extra hours working on the project in comparison to others.

--

--