Systematic software development using VDM
Systematic software development using VDM
Software engineering with abstractions
Software engineering with abstractions
Larch: languages and tools for formal specification
Larch: languages and tools for formal specification
Derivation of programs for freshmen
SIGCSE '94 Proceedings of the twenty-fifth SIGCSE symposium on Computer science education
Towards an introductory formal programming course
SIGCSE '94 Proceedings of the twenty-fifth SIGCSE symposium on Computer science education
Rigorous proofs of program correctness without formal logic
SIGCSE '95 Proceedings of the twenty-sixth SIGCSE technical symposium on Computer science education
Formal Methods Reality Check: Industrial Usage
IEEE Transactions on Software Engineering
Software requirements & specifications: a lexicon of practice, principles and prejudices
Software requirements & specifications: a lexicon of practice, principles and prejudices
Teaching formal programming to first year computer science students
SIGCSE '96 Proceedings of the twenty-seventh SIGCSE technical symposium on Computer science education
VDM '91 Proceedings of the 4th International Symposium of VDM Europe on Formal Software Development-Volume I: Conference Contributions - Volume I
Exercises for teaching logic in a formal methods course: formalizing ERDs
SIGCSE '99 The proceedings of the thirtieth SIGCSE technical symposium on Computer science education
Formal Methods: Mathematics, Computer Science, or Software Engineering?
CSEET '00 Proceedings of the 13th Conference on Software Engineering Education & Training
Proceedings of the 12th annual SIGCSE conference on Innovation and technology in computer science education
Hi-index | 0.00 |
We present a new undergraduate course in formal methods which emphasizes software specification and description instead of formal program correctness or program derivation.This course is motivated by the idea that specifications play a key role in the software development process and that precise and clear descriptions of software systems and artifacts are important. It wants to show students that some simple notions from logic and mathematics (predicates and quantifiers, set theory, maps), together with appropriate constructs for defining software components and systems, can be useful for this purpose.The course is taught using the Spec notation [1] and we first discuss why we did not choose the ubiquitous Z notation. The content of the course is then presented, followed with a brief description of an on-line WWW system that was developed to help the students do the exercices presented in the course notes.