next up previous
Next: Software Construction Up: Programming Projects Previous: Programming Projects

Basic Concepts

It is my opinion that we need to give the student more information about writing programs. Part of this information is needed to accomplish everything that must be done. Part is used in grading.

In any class that is not an introductory class, programming projects normally represent some system: a group of data and routines that work together. This makes designing and implementing programs much more difficult. These notes provide a simplified view of the entire system development process. I also include some ideas by which you can evaluate your design and code in the same way I will evaluate them.

There are two basic issues:

  1. Problem-solution.
  2. Requirement-code-test.
Every system is supposed to solve a problem of some sort. Until that problem has been solved in principle and on paper there is no need to worry about programming anything. After the problem has been solved in principle, we can start working towards a computer solution.

Therefore, each computer assignment has two phases: (1) a problem solution phase and (2) a programming phase. It is not the case that because you declare the solution works on paper that you will not have to modify lots of things. That is, the two phases are not independent. In class, though, you will be asked to turn in your preliminary design separate from your computer implementation. This is to give you feedback on your design while you still have time to do something constructive.

Aside on portfolio. Many times when a student is interviewed for a job, the interviewer wants to see some evidence of the student's work. This is a very common practice in such professions as architecture or music; it is becoming more common in computer science. You should have several great entries for a portfolio when done with your assignments.




next up previous
Next: Software Construction Up: Programming Projects Previous: Programming Projects

Steve Stevenson
Wed Feb 26 10:54:45 EST 1997