CompSci 308 Spring 2023 |
Advanced Software Design and Implementation |
As soon as we started programming, we found to our surprise that it was not as easy to get programs right as we had thought. We had to discover debugging. I can remember the exact instant when I realized that a large part of my life from then on was going to be spent in finding mistakes in my own programs. — Maurice Wilkes, 1949
Submit a Markdown formatted plain text file, named week08_testing.md
, to the journals
folder of your individual portfolio_NETID
repository provided for you in the course's Gitlab group.
As you program larger, more complex, projects it is vitally important, and some would say morally imperative, that you have confidence that the most basic aspects of your code works correctly based on automatically testing it (rather than manual, occasional, tests). Beyond that, testing is vitally important to producing real world software and, unless we begin to take software bugs seriously, our industry may need to become regulated. The good news is that like making readable, minimally well-designed code, is a matter of practicing to develop new habits.
After answering the questions above, watch Bob Martin's video on the need for professionalism in coding and then answer the following questions:
Take time regularly to reflect on the development of your thoughts by describing what you have learned from specific, important, events or resources. These efforts at metacognition helps you deepen your learning by making you more aware of your own thinking and more active in your education. These can be about anything useful, interesting, unexpected, controversial, or a spectacular success or failure that occurred.
ChatGPT can help you generate ideas, create example code, review, refactor, or even debug code. While you are not required to use it, if you do, I think it would be helpful to share our collective experiences. To that end, each week's Journal will include a place for you to share how you used ChatGPT in more detail than would typically be found when attributing it within your code or README file. I have also created an ED thread tag for ChatGPT. This exercise can also help you reflect on how to use it more deliberately and usefully.