Lecture notes for the Introduction to Computer Science I by James Tam Return to the course web page

The Software Design, Development and Maintenance Process

Notes for the required material 

Optional teaching material

It would be useful to spend time covering examples illustrating how the software design process occurs in an iterative fashion.  This can be done by taking example algorithms that have flaws or weaknesses (such as the ATM example in the flowchart and pseudo-code notes).  There are excellent examples of how this can be done in the notes for the previous year's versions of this course, which can be found under the url:

Background / Sources of additional information

Teaching Tips

The main point of this section is to teach students how to problem solve regardless of implementation.  They should learn how to find the answer to typical problems faced in the area of Computer Science without first thinking about the programming language that it will eventually be coded in.  Consequently high level techniques such as writing pseudo-code and drawing flowcharts are taught in this section.