Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Computer program verification: improvements for human reasoning
Computer program verification: improvements for human reasoning
How mathematical thinking enchances computer science problem solving
Proceedings of the thirty-second 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
Engaging students in specification and reasoning: "hands-on" experimentation and evaluation
ITiCSE '09 Proceedings of the 14th annual ACM SIGCSE conference on Innovation and technology in computer science education
Teaching mathematical reasoning across the curriculum
Proceedings of the 43rd ACM technical symposium on Computer Science Education
A systematic approach to teaching abstraction and mathematical modeling
Proceedings of the 17th ACM annual conference on Innovation and technology in computer science education
Hi-index | 0.00 |
This paper summarizes our experiences integrating topics in the software development fundamentals (SDF), programming languages (PL), and software engineering (SE) knowledge areas of the ACM 2013 curriculum within a single course. It is novel in combining object-oriented programming and software development practices with fundamental analytical reasoning about software correctness. The aim is to integrate and cover the topics in an effective fashion. The course description in this paper represents an approach we have applied successfully for over 5 years. Students tend to consider this course to be one of the more challenging encountered in the first two years of study. Interestingly, the challenge appears to stem equally from mastering object-oriented programming and design pattern components of the course, as it does from learning to use specifications for analytical reasoning of component correctness.