Component-based software using RESOLVE
ACM SIGSOFT Software Engineering Notes
Things that make us smart: defending human attributes in the age of the machine
Things that make us smart: defending human attributes in the age of the machine
Client view first: an exodus from implementation-biased teaching
SIGCSE '99 The proceedings of the thirtieth SIGCSE technical symposium on Computer science education
Do we really teach abstraction?
Proceedings of the thirty-second SIGCSE technical symposium on Computer Science Education
Program Development in Java: Abstraction, Specification, and Object-Oriented Design
Program Development in Java: Abstraction, Specification, and Object-Oriented Design
Foundations of Computer Science
Foundations of Computer Science
Communications of the ACM - Self managed systems
Introducing abstraction and decomposition to novice programmers
ITiCSE '09 Proceedings of the 14th annual ACM SIGCSE conference on Innovation and technology in computer science education
Mathematics throughout the CS curriculum
Journal of Computing Sciences in Colleges
Specification engineering and modular verification using a web-integrated verifying compiler
Proceedings of the 34th International Conference on Software Engineering
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 |
The need for undergraduate CS students to create and understand mathematical abstractions is clear, yet these skills are rarely taught in a systematic manner, if they are taught at all. This paper presents a systematic approach to teaching abstraction using rigorous mathematical models and a web-based reasoning environment. It contains a series of representative examples with varying levels of sophistication to make it possible to teach the ideas in a variety of courses, such as introductory programming, data structures, and software engineering. We also present results from our experimentation with these ideas over a 3-year period at our institution in a required course that introduces object-based software development, following CS2.