Abstract: It is generally ackno,.vledged that computer software design would benefit from insistence on a high standard of consistency and reliability. One solution to this is the application of formal reasoning techniques to establish the correctness of programs at an early stage in the design process. An increasing number of universities are integrating this approach to programming into their undergraduate computer science courses. This raises issues related to the process of learning formal reasoning methods and the difficulties computer science students may experience on such courses. In the light of the results of a preliminary survey of students' experiences in this area we look at the factors which may contribute to their difficulties and consider implications for computer science teaching.
Programming in the Real World: Computer science students' perceptions of the values and difficulties of learning formal methods