Abstract
This paper describes a senior level course in concurrent programming using Ada. Unlike other similar courses in the subject area, it is not part of an operating systems course, nor is it tied to a particular hardware architecture. The course is software oriented and it discusses in depth a concurrent programming language, Ada, so that students are able to actually develop effective concurrent programs to solve problems in a wide range of applications. Ada is selected because of its popularity, superb portability, numerous hardware platforms, and rich concurrent constructs. Classical issues in concurrent programming are presented in the context of Ada. General issues in designing concurrent programming languages are elaborated using Ada, together with other concurrent programming languages such as CSP, Occam, and Linda. Finally, general principles of designing parallel programs are also discussed. Therefore, the course provides both the depth in a concurrent programming language for program development and the breadth in concurrent programming theory for insight. Using Ada throughout the course strengthens student's expertise in Ada and provides an useful reference point for understanding concurrent programming theory. The course is heavily based on handouts, examples, homework and programming assignments. A rich set of instructional materials are available from the author.
- [1] Ben-Ari, M, Principles of concurrent and distributed programming, Prentice-Hall, 1990. Google Scholar
Digital Library
- [2] Barnes, J., Programming in Ada, Addison-Wesley, 1991. Google Scholar
Digital Library
- [3] Burns, A, Concurrent programming in Ada, Cambridge University Press, 1985. Google Scholar
Digital Library
- [4] Carriero, N. & Gelernter, D., How to write parallel programs: a first course, MIT Press, 1990. Google Scholar
Digital Library
- [5] Chandy, K. & Taylor, S., An introduction to parallel programming, Jones and Bartlett, 1992. Google Scholar
Digital Library
- [6] Davies, G., Teaching concurrent programming with Pascal-FC, SIGCSE Bulletin, 22 (2), (1990), 38-41. Google Scholar
Digital Library
- [7] Elrad, T. & Nohl, D., The analysis and comparison of scheduling controls in concurrent languages through classification, Proceedings of the 23rd Technical Symposium on Computer Science Education, (1992), 89-93. Google Scholar
Digital Library
- [8] Feldman, M., The portable dining philosophers, Proceedings of the 23rd Technical Symposium on Computer Science Education, (1992), 276-280. Google Scholar
Digital Library
- [9] Gehani, N., Ada concurrent programming, Prentice-Hall, 1984. Google Scholar
Digital Library
- [10] Higginbotham, C. & Morelli, R., A system for teaching concurrent programming, Proceedings of the 22nd Technical Symposium on Computer Science Education, (1991), 309-316. Google Scholar
Digital Library
- [11] Jipping, M., el at., Concurrent distributed Pascal: a hand-ons introduction to parallelism, Proceedings of the 21st Technical Symposium on Computer Science Education, (1990), 94-99. Google Scholar
Digital Library
- [12] Leach, R., An advanced operating systems project using concurrency, Proceedings of the 21st Technical Symposium on Computer Science Education, (1990), 39-44.Google Scholar
Digital Library
- [13] McDonald, C., Teaching concurrency with Joyce and Linda, Proceedings of the 23rd Technical Symposium on Computer Science Education, (1992), 46-52. Google Scholar
Digital Library
- [14] Mims, T. & Hoppe, A., Utilizing a transputer laboratory and Occam in an undergraduate operating systems course, Proceedings of the 22nd Technical Symposium on Computer Science Education, (1991), 317-323. Google Scholar
Digital Library
- [15] Olszewki, J., CSP Laboratory, Proceedings of the 24th Technical Symposium on Computer Science Education, (1993), 91-95. Google Scholar
Digital Library
- [16] Sanders, D. & Hartman, J., Getting Started with parallel programming, Proceedings of the 21st Technical Symposium on Computer Science Education, (1990), 86-88. Google Scholar
Digital Library
- [17] Shumate, K., Understanding concurrency in Ada, McGraw-Hill, 1988. Google Scholar
Digital Library
- [18] Silver, J., Concurrent programming in an upper level operating system course, Proceedings of the 20th Technical Symposium on Computer Science Education, (1989), 217-221. Google Scholar
Digital Library
Index Terms
An undergraduate course in concurrent programming using Ada
Recommendations
Concurrent object-oriented programming in Classic-Ada
Although Ada supports concurrency and can thus be used as a concurrent programming language, it is not generally considered to be an object-oriented programming language. Classic-Ada is a preprocessor which adds the concepts of classes, inheritance, and ...
Object-oriented programming in Smalltalk and ADA
Though Ada and Modula-2 are not object-oriented languages, an object-oriented viewpoint is crucial for effective use of their module facilities. It is therefore instructive to compare the capabilities of a modular language such as Ada with an archetypal ...






Comments