Introductory Programming Course: From Classics to Formal Methods

Ian Douglas Sanders · 2009

Introductory courses in CS, especially those aimed at introductory programming concepts or fundamental concepts in CS, represent the core courses which give the student specific insight into what the body of knowledge of Computer Science en- tails. Due to this great importance the curriculum planning of these courses should be undertaken with special care. It is, however, a matter of some concern that many of these introductory courses are deficient in terms of a formal algorithmic approach to program- ming. This leads to a situation where undergraduate students base their algorithms and programs on trial and error and are content if their code runs rather than proving that the code they produce will always work correctly. In the longer term, we believe, this situation results in a great amount of low quality soft- ware produced by CS graduates. It is because of these problems that we argue that the lecturing of formal methods and correctness proofs must be taught as soon as possible in a student's CS studies. This paper presents a proposal that is aimed at introducing the student to a more formal algorithm and program development process, so that he/she be- comes able to produce correct efficient software from the beginning of his/her programming career. We also feel that such an approach will give students a much better idea of the nature of CS than many typ- ical introductory courses do.

Read the paper · More papers on PaperTik