Undoing The Sequential Mindset: The Software-CAD Approach
This paper proposes a non-traditional approach to teaching programming, characterized here as the “Software-CAD” approach, which is particularly appropriate for students in professional computing programs, such as computer engineering, who need to acquire as early as possible a “total systems” view of computing embracing both hardware and software, and which can help to instil in any type of student good notions about program design. In this approach, programming is taught from the start in terms of a model of interconnected machines, using a graphical notation rooted in a an appropriate programming language (e.g., Modula2 or Ada) and supported by Software-CAD laboratory tools. Such an approach helps to undo the “sequential mindset” which traditional ways of teaching programming in languages such as Fortan, Pascal and C tend to impart. The paper outlines a set of courses following the approach and points to successful experience with prototypes of some of the courses at Carleton University and U.C. Santa Cruz, using both Ada and Modula2 (though not yet with supporting CAD tools), to indicate that the approach is feasible and promising and that students accept and like it. Although the approach can be followed without CAD laboratory support, such support is desirable for reasons of self-motivation and efficiency; appropriate support is expected to be available soon.
KeywordsSoftware Architecture Graphical Notation Digital Logic Module Machine Real Time Programming
Unable to display preview. Download preview PDF.
- Buhr, Karam, Hayes, Woodside, “Software CAD: A Revolutionary Approach”, IEEE Trans. Software Engineering, Special Issue on Ada, Spring 87.Google Scholar
- Buhr, Woodside, Karam, Van der Loo, Lewis, “Experiments with Prolog Design Descriptions and Tools in CAEDE, an Iconic Design Environment for Embedded, Multitasking Systems”, Proc. 8th International Conference on Software Engineering, London, Computer Society Press, Sep. 85.Google Scholar
- Buhr, Woodside, Karam, “An Overview and Example of Application of CAEDE: A New Design Environment for Ada”, Proc. International Ada Conference, Paris, “Ada in Use”, Cambridge University Press, May 85.Google Scholar
- Buhr, “Lessons from Practical Experience Teaching Hands- On, Real Time, Embedded System Programming With Ada”, Proc. International Ada Conference, Paris, “Ada in Use”, Cambridge University Press, May 85.Google Scholar
- Girczyc, Buhr, Knight, “Analysis of Ada as a High Level Hardware Description Language”, IEEE Trans. on CAD of Integrated Circuits and Systems, Vol. CAD-4, No. 2, Apr. 85.Google Scholar
- Buhr, “System Design With Ada”, textbook, Prentice Hall, 1984.Google Scholar
- Feldman, M.B., “Ada vs. Modula-2: A Response From the Ivory Tower”, ACM Sigplan Notices, Vol. 21, No. 5, May 86.Google Scholar
- Strom, Halim, “A New Programming Methodology for Long-Lived Software Systems”, IBM Jour. Res. Dev., Vol. 28, No. 1, Jan. 84.Google Scholar
- Brinch Hansen, “The Architecture of Concurrent Programs”, Prentice Hall, 1980.Google Scholar
- Holt, “Concurrent Euclid, Tunis and Unix”, Addison-Wesley, 1984.Google Scholar