CS 371p Spring 2020: Rishi Salem
- What did you do this past week?
This week we were preparing for project 1. We learned about the Collatz conjecture and about an algorithm that would allow us to find the number of collatz cycles for any positive integer. We also improvements to the algorithm which use caching to improve the time for the program.
We also studied the importance of a good working environment in finding and fixing bugs early, as well as ensuring that you have a good copy of your code at all times.
2. What’s in your way?
Regarding the setup for the project, while I have downloaded the Docker image, I have yet to set up the rest of the environment and learn how to use it. Since most of the software required is part of the Docker image, the only work I should need to do is practice coding and using the pipeline until I understand how it works, which shouldn’t take too long once I can set aside a few hours of uninterrupted work time. The project itself doesn’t seem too complicated, especially since we discussed strategies extensively in class to solve it efficiently and correctly
3. What will you do next week?
Next week I will learn how to use the environment and create a working Collatz program. If possible, I will optimize it as much as is required and finish the project by the upcoming weekend.
4. What was your experience of assertions, unit tests, coverage, and continuous integration? (this question will vary, week to week)
I have used unit tests, assertions, and continuous integration in the past, but not very consistently. In general, I have only created unit tests when I was worried I already had bugs in my code, rather than to debug as I went along. This has cost me more time than I would have spend just making the tests in the first place on multiple occasions. I have also only used continuous integration when working with other programmers, rather than to create save points for my own code. These are both tools I intend to use more in the future, as they appear to be very helpful in ensuring you always have a working version of your code.
I was not previously familiar with the concept of coverage, but it seems intuitive that tests that run through more code will find more errors. I will keep that in mind in the upcoming projects.
5. What made you happy this week?
I made a lot of progress in setting up for this project, and in general am getting used to the tools and procedures I’ll be using in several classes this semester. This is quite a relief to me, as I was worried the large number of new tools would be difficult to quickly learn about.
6. What’s your pick-of-the-week or tip-of-the-week?
This may be a little basic, but don’t procrastinate! Even if you only have a little time to do your work, do as much as you can, because putting things off for a “better time” only makes it harder for such a better time to come about.