CS373 Fall 2022: Joanne Chen | Blog 2

Joanne Chen
3 min readSep 2, 2022

--

What did you do this past week?

This past week, I began to familiarize myself with GitLab and the CI/CD pipeline and start on the first project. So far, I have implemented the basic brute-force version of the Collatz solution with the two additional small optimizations discussed on the class quiz (decreasing the range when possible, combining the odd step and subsequent even step). For this, I also added some small unit tests along the way for any helper functions I created and overall black-box testing to make sure I was returning the correct maximum cycle length in the range.

What’s in your way?

Some small confusions (that I plan on going into office hours for at some time next week) are in my way, such as not being clear on the difference between unit tests and acceptance tests and the concept of implementing a meta cache. Other than that, I have a clear plan for my next steps on the project, and once I clarify the aforementioned misunderstandings, it should be smooth sailing.

What will you do next week?

This next week, I plan on first implementing the lazy cache method and then implementing the meta cache method, adding the subsequent tests along the way. Afterwards, my solution should be complete and I will do final checks with the rubric and the HackerRank.

What did you think of Paper #1 Syllabus?

I thought Paper #1 Syllabus was a really clear and fleshed-out plan for the course, and it gives me a good sense of what to expect from this class. This class features a lot of different features that I haven’t really experienced in previous classes (cold-calling, no technology, different grading system) that I am interested in seeing how those features materialize in the class and whether I prefer those features or the traditional structures of classes.

The only things that I wished it also covered was more in depth about the deadlines for the projects such that I could plan more in advance of how to balance workload between different classes.

What was your experience of assertions, unit tests, and coverage?

I haven’t really used assertions prior to this class, so I’m still getting used to developing the intuition of when I should add an assertion and when it is best to instead substitute that with a unit test.

I enjoy using the unit tests though I want to look into more about other functions provided by unit tests to avoid only using assertEqual, especially in cases where I have to develop my own sanity checks, but I don’t want to manually solve for the solution to the supplied test case just to test my program.

I really like the coverage feature! By specifying what lines were not covered, it helped me quickly identify logical errors by immediately knowing where to look to understand why those lines of code were not being executed even though they were expected to be executed.

What made you happy this week?

Something that made me happy this week is eating good food! Since I wasn’t in Austin this summer, it was nice being able to revisit and eat out at some of the restaurants I missed over the summer.

What’s your pick-of-the-week or tip-of-the-week?

While I have had some experience with git before this class, most of my experience has been limited to just pulling/committing/pushing; I haven’t had to deal with more of the complexities and benefits of git via branching, which I think would be very helpful in this class in the future by breaking down large full-stack projects into smaller features and components that each have their own branch before being merged back into the main branch. I found this resource (https://learngitbranching.js.org/) a really good visual tutorial to be able to understand more of what each git command is doing and how certain errors might be encountered and resolved along the way.

--

--