- How do you write programs that are maintainable, readable, and adaptable? Especially consider your work on the CRUD Python module from Project One, which you used to connect the dashboard widgets to the database in Project Two. What were the advantages of working in this way? How else could you use this CRUD Python module in the future?
Writing programs that are generic and re-usable in nature is a cornerstone to modern open-source programming (and enterprise programming as well!) THe idea that you write a wrapper thats adaptable to handle most scenarios once, and then is only maintained for bug-fixes and enhancements is far superior to the days of old where programs were segmented, poorly documented and often had layers re-written between major products. Thats not to say that doesn't happen in todays' world.
- How do you approach a problem as a computer scientist? Consider how you approached the database or dashboard requirements that Grazioso Salvare requested. How did your approach to this project differ from previous assignments in other courses? What techniques or strategies would you use in the future to create databases to meet other client requests?
I think this was approached in a way where you had to think about the user in general and assume that they were non technical. Often in other courses, we are learning skillsets or writing applications for ourselves (and usually heavily in the realm of the technical midset.) This application was designed to be utilized by people who handle animals, that may use a computer occasionally at home but are not experts. That means alot of the magic that makes the application run has to be hidden away, and not exposed to the user. The user in this case isn't writing queries against a database, they want to hit a button and get the data they need back.
- What do computer scientists do, and why does it matter? How would your work on this type of project help a company, like Grazioso Salvare, to do their work better?
I think first and foremost, a computer scientist makes the lives of other non-computer scientists easier by building applications that are simple to use, and work every-time. I think when we start trending out of this idea, we start hurting people more than we help them.