skip to main content
article
Free Access

An undergraduate course in concurrent programming using Ada

Authors Info & Claims
Published:01 December 1994Publication History
Skip Abstract Section

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.

References

  1. [1] Ben-Ari, M, Principles of concurrent and distributed programming, Prentice-Hall, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. [2] Barnes, J., Programming in Ada, Addison-Wesley, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. [3] Burns, A, Concurrent programming in Ada, Cambridge University Press, 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. [4] Carriero, N. & Gelernter, D., How to write parallel programs: a first course, MIT Press, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. [5] Chandy, K. & Taylor, S., An introduction to parallel programming, Jones and Bartlett, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. [6] Davies, G., Teaching concurrent programming with Pascal-FC, SIGCSE Bulletin, 22 (2), (1990), 38-41. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. [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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. [8] Feldman, M., The portable dining philosophers, Proceedings of the 23rd Technical Symposium on Computer Science Education, (1992), 276-280. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. [9] Gehani, N., Ada concurrent programming, Prentice-Hall, 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. [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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. [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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. [12] Leach, R., An advanced operating systems project using concurrency, Proceedings of the 21st Technical Symposium on Computer Science Education, (1990), 39-44.Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. [13] McDonald, C., Teaching concurrency with Joyce and Linda, Proceedings of the 23rd Technical Symposium on Computer Science Education, (1992), 46-52. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. [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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. [15] Olszewki, J., CSP Laboratory, Proceedings of the 24th Technical Symposium on Computer Science Education, (1993), 91-95. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. [16] Sanders, D. & Hartman, J., Getting Started with parallel programming, Proceedings of the 21st Technical Symposium on Computer Science Education, (1990), 86-88. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. [17] Shumate, K., Understanding concurrency in Ada, McGraw-Hill, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. [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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. An undergraduate course in concurrent programming using Ada

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        • Published in

          cover image ACM SIGCSE Bulletin
          ACM SIGCSE Bulletin  Volume 26, Issue 4
          Dec. 1994
          66 pages
          ISSN:0097-8418
          DOI:10.1145/190650
          Issue’s Table of Contents

          Copyright © 1994 Author

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 1 December 1994

          Check for updates

          Qualifiers

          • article

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!