Part II: specifying components in RESOLVE
ACM SIGSOFT Software Engineering Notes
Inspections of formal specifications
SIGCSE '96 Proceedings of the twenty-seventh SIGCSE technical symposium on Computer science education
Teaching formal programming to first year computer science students
SIGCSE '96 Proceedings of the twenty-seventh SIGCSE technical symposium on Computer science education
Integration of mathematical topics in CS1 and CS2 (panel)
SIGCSE '98 Proceedings of the twenty-ninth SIGCSE technical symposium on Computer science education
Do we really teach abstraction?
Proceedings of the thirty-second SIGCSE technical symposium on Computer Science Education
A formal approach to component-based software engineering: education and evaluation
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Support for teaching formal methods
Working group reports from ITiCSE on Innovation and technology in computer science education
Striving for mathematical thinking
Working group reports from ITiCSE on Innovation and technology in computer science education
Mathematical reasoning in software engineering education
Communications of the ACM - Why CS students need math
A tool for helping teach a programming method
Proceedings of the 11th annual SIGCSE conference on Innovation and technology in computer science education
A principled approach to teaching OO first
Proceedings of the 39th SIGCSE technical symposium on Computer science education
Injecting rapid feedback and collaborative reasoning in teaching specifications
Proceedings of the 40th ACM technical symposium on Computer science education
Proceedings of the 41st ACM technical symposium on Computer science education
Review of recent systems for automatic assessment of programming assignments
Proceedings of the 10th Koli Calling International Conference on Computing Education Research
Mathematics throughout the CS curriculum
Journal of Computing Sciences in Colleges
An ACM 2013 exemplar course integrating fundamentals, languages, and software engineering
Proceedings of the 45th ACM technical symposium on Computer science education
Hi-index | 0.00 |
We introduce a "hands-on" experimentation approach for teaching mathematical specification and reasoning principles in a software engineering course. The approach is made possible by computer-aided analysis and reasoning tools that help achieve three central software engineering learning outcomes: (i) Learning to read specifications by creating test points using only specifications; (ii) Learning to use formal specifications in team software development while developing participating components independently; and (iii) Learning the connections between software and mathematical analysis by proving verification conditions that establish correctness for software components. Experimentation and evaluation results from two institutions show that our approach has had a positive impact.