Advertisement

Teaching Object-Oriented Programming is more than teaching Object-Oriented Programming Languages

  • Jørgen Lindskov Knudsen
  • Ole Lehrmann Madsen
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 322)

Abstract

One of the important obligations of an expanding research area is to discuss how to approach the teaching of the subject. Without this discussion, we may find that the word is not spread properly, and thus that the results are not properly utilized in industry. Furthermore, discussing teaching the research area gives additional insight into the research area and its underlying theoretical foundation. In this paper we will report on our approach to teaching programming languages as a whole and especially teaching object-oriented programming.

The prime message to be told is that working from a theoretical foundation pays off. Without a theoretical foundation, the discussions are often centered around features of different languages. With a foundation, discussions may be conducted on solid pound. Furthermore, the students have significantly fewer difficulties in grasping the concrete programming languages when they have been presented with the theoretical foundation than without it.

Keywords

Programming Language Computer Science Department Programming Process Functional Programming Procedural Programming 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

7 References

  1. 1.
    H. Abelson, G.J. Sussman & J. Abelson: The Structure and Interpretation of Computer Programs, MIT Press, 1985.Google Scholar
  2. 2.
    L. Cardelli & P. Wegner: On Understanding Types, Data Abstraction, and Polymorphism, Computing Surveys, 17(4), 471–522 (December 1985).CrossRefGoogle Scholar
  3. 3.
    O.-J. Dahl, B. Myhrhaug & K. Nygaard: Simula 67, Common Base Language, Norwegian Computing Center, 1970.Google Scholar
  4. 4.
    A. Goldberg & D. Robson: Smalltalk-80: The Language and its Implementation, Addison-Wesley Publishing Company, 1983.Google Scholar
  5. 5.
    D.C. Halbert & P.D. O’Brian: Using Types and Inheritance in Object-Oriented Programming, IEEE Software, 4(5), 71–79 (September 1987).Google Scholar
  6. 6.
    P. Brinch Hansen: The Design of Edison, Software — Practice & Experience, 11, 363–396 (1981).zbMATHCrossRefGoogle Scholar
  7. 7.
    C.A.R. Hoare: Communicating Sequential Processes, Comm. of the ACM, 21(8), 666–677 (August 1978).zbMATHCrossRefMathSciNetGoogle Scholar
  8. 8.
    C.A.R. Hoare: Communicating Sequential Processes, Prentice-Hall, Inc., 1985.Google Scholar
  9. 9.
    E. Holbaek-Hanssen, P. Haandlykken & K. Nygaard: System Description and the DELTA Language, publication no. 523, Norwegian Computing Center, February 1977.Google Scholar
  10. 10.
    C. Horn: Conformance, Genericity, Inheritance and Enhancement, Proceedings of the European Conference on Object-Oriented Programming (ECOOP’87), Paris, France, June 1987.Google Scholar
  11. 11.
    M.A. Jackson: System Development, Prentice-Hall Inc., 1983.Google Scholar
  12. 12.
    J. Lindskov Knudsen & K. Stougård Thomsen: A Taxonomy for Programming Languages with Multisequential Processes, Journal of Systems and Software, 7(2) (June 1987).Google Scholar
  13. 13.
    J. Lindskov Knudsen & K. Stougård Thomsen: A Conceptual Framework for Programming Languages, Computer Science Department, Aarhus University, DAIMI PB-192, 1985.Google Scholar
  14. 14.
    J. Lindskov Knudsen: Name Collision in Multiple Classification Hierarchies, Proceedings of the European Conference on Object-Oriented Programming (ECOOP’88), Oslo, Norway, August 1988.Google Scholar
  15. 15.
    B. Bruun Kristensen, O. Lehrmann Madsen, B. Møller-Pedersen & Kristen Nygaard: Syntax Directed Program Modularization, in P. Degano & E. Sandewall (eds.): Integrated Interactive Computing Systems, North-Holland Publishing Company, 1983.Google Scholar
  16. 16.
    B. Bruun Kristensen, O. Lehrmann Madsen, B. Møller-Pedersen & K. Nygaard: The Beta Programming Language, in [31].Google Scholar
  17. 17.
    H. Ledgard & M. Marcotty: The Programming Language Landscape, Science Research Associates, Inc., 1981.Google Scholar
  18. 18.
    H. Liebermann: Using Prototypical Object to Implement Shared Behavior in Object Oriented Systems, Proceedings of Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA’86), Portland, Oregon, September 1986.Google Scholar
  19. 19.
    B.J. MacLennan: Principles of Programming Languages: Design, Evaluation, and Implementation, CBS College Publishing, 1983.Google Scholar
  20. 20.
    O. Lehrmann Madsen & B. Møller-Pedersen: What Object-Oriented Programming may be — and what it does not have to be !, Proceedings of the European Conference on Object-Oriented Programming (ECOOP’88), Oslo, Norway, August 1988.Google Scholar
  21. 21.
    O. Lehrmann Madsen: Block Structure and Object-Oriented Languages, in [31].Google Scholar
  22. 22.
    L. Mathiassen: Systemudvikling og systemudviklingsmetode (in Danish), Computer Science Department, Aarhus University, DAIMI PB-136, 1981.Google Scholar
  23. 23.
    B. Meyer: Genericity versus Inheritance, Proceedings of Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA’86), Portland, Oregon, September 1986.Google Scholar
  24. 24.
    R. Milner: A Calculus of Communicating Systems, Springer Lecture Notices in Computer Science, Vol. 92, Springer Verlag, 1980.Google Scholar
  25. 25.
    K. Nygaard: Basic Concepts in Object Oriented Programming, Sigplan Notices, 21(10), 128–132 (October 1986).Google Scholar
  26. 26.
    K. Nygaard & P. Sørgaard: The Perspective Concept in Informatics, in G. Bjerknes, Pelle Ehn & Morten Kyng (eds.): Computers and Democracy — A Scandinavian Challenge, Avebury, 1987.Google Scholar
  27. 27.
    J. Rees & W. Clinger (eds.): Revised 3 Report on the Algorithmic Language Scheme, Sigplan Notices, 21(12), 37–79 (December 1986).Google Scholar
  28. 28.
    W. Reisig: Petri Nets — An Introduction, Springer Verlag, 1985.Google Scholar
  29. 29.
    D. Sandberg: An Alternative to Subclassing, Proceedings of Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA’86), Portland, Oregon, September 1986.Google Scholar
  30. 30.
    B. Sheil: Power Tools for Programmers, Datamation, 29(2) (February 1983).Google Scholar
  31. 31.
    B.D. Shriver & P. Wegner (eds.): Research Directions in Object-Oriented Programming, MIT Press, 1987.Google Scholar
  32. 32.
    J.M. Smith & D.C.P. Smith: Database Abstractions: Aggregation and Generalization, ACM TODS, 2(2) (June 1977).Google Scholar
  33. 33.
    A. Snyder: Inheritance and the Development of Encapsulated Software Components, in [31].Google Scholar
  34. 34.
    B. Stroustrup: An Overview of C++, Sigplan Notices, 21(10) (October 1986).Google Scholar
  35. 35.
    B. Stroustrup: Multiple Inheritance for C++, Proceedings of EUUG Spring’ 87 Conference, 1987.Google Scholar
  36. 36.
    B. Stroustrup: What is “Object-Oriented Programming”?, Proceedings of the European Conference on Object-Oriented Programming (ECOOP’87), Paris, France, June 1987.Google Scholar
  37. 37.
    R.D. Tennent: Principles of Programming Languages, Prentice-Hall Inc., 1981.Google Scholar
  38. 38.
    K. Stougård Thomsen: Inheritance on Processes, Exemplified on Distributed Termination Detection, International Journal of Parallel Programming, 16(1), 17–52 (1987).CrossRefGoogle Scholar
  39. 39.
    D. Turner: An Overview of Miranda, Sigplan Notices, 21(12), 158–166 (December 1986).Google Scholar
  40. 40.
    P. Wegner: Dimensions of Object-Based Language Design, Proceedings of Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA’87), Orlando, Florida, October 1987.Google Scholar
  41. 41.
    W.A. Wulf: Languages and Structured Programs, in R.T. Yeh (ed.): Current Trends in Programming Methodology, Vol. I, Prentice-Hall Inc., 1977.Google Scholar
  42. 42.
    Scheme Manual (Seventh Edition), MIT, September 1984Google Scholar
  43. 43.
    Smalltalk/V: Tutorial and Programming Handbook, Digitalk Inc., 1986.Google Scholar
  44. 44.
    Special Issue on Smalltalk-80, Byte, Aug. 1981.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1988

Authors and Affiliations

  • Jørgen Lindskov Knudsen
    • 1
  • Ole Lehrmann Madsen
    • 1
  1. 1.Computer Science DepartmentAarhus UniversityAarhus CDenmark

Personalised recommendations