CS345 - Software Engineering - Spring 2005-2006
Charlie Peck and Chris Hardie
Department of Computer Science - Earlham College
Journal Questions
These are the questions you should answer in your course journals. Questions are posed
in the Friday class session and should be answered by the beginning of
the following Friday class session.
- Week of January 9: What's your itch, with respect to
technology? What kinds of problems are you interested in solving?
- Week of January 27:
- What is your favorite programming language, and why?
- When and how has coding style most benefited (or hurt) your software
engineering experiences?
- How do you interpret clarity, simplicity, generality, and automation?
- Week of February 3rd:
- Develop a well thought-out question for the class about open source software. The question can come from either the technical, social, or other another perspective. Put the question in your journal and come to class prepared to pose it during our discussion.
- For February 14th:
- Pick the three of the interface design principles and practices from Chapter 4 that you think are the most important, and explain why.
- For February 24th:
- How would you determine how many test cases are enough to thoroughly and successfully test a given piece of software, given a particular context? Support your thoughts with examples from your day-to-day and/or technology lives.
- For March 3rd:
- In The Art of Unix Programming, ESR talks about programming for portability. As the traditional distinctions between desktops and servers, home and work computers, mobile devices and full-featured devices, and other similar "ends of the spectrum" continue to blur, programming for portability becomes an even more central part of software engineering practices. Some technology pundits predict that soon all end-user applications will just be served as interactive webpages (Google?) and that the notion of platform-specific software will disappear. Talk about your experiences in creating tools (software and otherwise) that work well in different environments, and how you see the future of software portability (language, platform, etc.) playing out.
- For March 10th:
- The group project is about making existing data sets more accessible, and presenting them in ways that allow them to be more useful. Find at least one historical example of a case where having a different (better?) view of a particular data set would have had some significant impact on an important decision that was made. Choose an example from a field that affects some non-trivial population size - social services, politics, emergency response, travel/tourism industry, ecological/environmental protection, large-scale architecture/construction, etc. Share your thoughts on what it means to be able to "slice" data in new and different ways in those kinds of contexts, and how trends and progress in related tools and technologies can affect how humans live.
- For March 31st:
- The Apple Human Interface Design Guidelines say that characteristics of great software are high performance, ease of use, attractive appearance, reliability, adaptability, interoperability, and mobility. Comment on those characteristics and the value you find in each for the software you use; compare and contrast them to the other "mantras" we've encountered in the class so far.
- For April 7th: (due 8 PM EST on April 6th) Reflect on the process of how your group designed and built the API for the group project. Consider your role, how the group as a whole interacted, your work habits, etc. Answer questions such as:
- What did I do well?
- What was my contribution to the milestone's completion?
- Where can I make improvements, and how?
- What did the group do well?
- Where can the group make improvements, and how?
- Forthcoming...
Student Journals