Skip To Content

Athabasca University

Section 1

Section Goals

  • To describe the basic principles of object-oriented programming, aspect-oriented programming, and end-user programming.

Learning Objectives

Learning Objective 1

  • Outline the basic principles of object-oriented programming.
  • Define the main challenges of switching to object-oriented programming.
  • Identify the main challenges of using object-oriented programming.

Objective Leading Questions

  • What are the main characteristics of object-oriented programming?
  • According to Luker [1994], why is object-oriented programming not just syntax?
  • What are the main problems involved in switching to object-oriented programming? Are there only technical problems?
  • What are the main challenges of object-oriented programming?
  • How would you differentiate between "object-oriented programming to manage complexity," and "object-oriented programming and complexity management"?

Objective Readings

Required Readings

Luker, P.A. (1994), "There's More to OOP than Syntax!" ACM SIGCSE Bulletin 26, 1, 56-60. https://doi.org/10.1145/191033.191056

Jonson, R.A. (2000), "The Ups and Downs of Object-Oriented Systems Development," Communications of the ACM 43, 10, 68-73. https://doi.org/10.1145/352183.352205

Supplemental Readings

Fayad, M.E., W.-T. Tsai and M.L. Fulghum (1996), "Transition to Object-Oriented Software Development," Communications of the ACM 39, 2, 108-121. https://doi.org/10.1145/230798.230811

Ross, J.M. and H. Zhang (1997), "Structured Programmers Learning Object-Oriented Programming," SIGCHI Bulletin 29, 4, 93- 99. https://dl.acm.org/doi/pdf/10.1145/270950.270999

Or-Bach, R. and I. Lavy (2004), "Cognitive Activities of Abstraction in Object Orientation: An Empirical Study," ACM SIGCSE Bulletin 36, 2, 82-86. https://doi.org/10.1145/1024338.1024378

Hunt, A. and D. Thomas (2004), "OO in One Sentence: Keep it DRY, Shy, and Tell the Other Guy," IEEE Software 21, 3, 101-103. https://doi.org/10.1109/MS.2004.1293081

Objective Activities

Relevant Conferences/Publications

Learning Objective 2

  • Describe the basic principles of aspect-oriented programming (AOP).
  • Differentiate between AOP and object-oriented programming.

Objective Leading Questions

  • What is AOP?
  • What are the problems associated with AOP?
  • Do you think AOP really works? To what kinds of problems is it best suited? Does it work for large, multideveloper projects?
  • What new concepts does AspectJ introduce, when compared to Java?
  • What are the main advantages and disadvantages of AOP?

Objective Readings

Required Readings

Elrad, T., R.E. Filman and A. Bader (2001a), "Aspect-Oriented Programming: Introduction," Communications of the ACM 44, 10, 29-32. https://doi.org/10.1145/383845.383853

Murphy, G. and C. Schwanninger (2006a), "Aspect-Oriented Programming," IEEE Software 23, 1, 20-23. https://doi.org/10.1109/MS.2006.12

Kiczales, G., E. Hilsdale, J. Hugunin, M. Kersten, J. Palm and W. Griswold (2001), "Getting Started with ASPECTJ," Communications of the ACM 44, 10, 59-65. https://doi.org/10.1145/383845.383858

Supplemental Readings

Laddad, R. (2003), "Aspect-Oriented Programming will Improve Quality," IEEE Software 20, 6, 90-91. https://doi.org/10.1109/MS.2003.1241372

Alexander, R. (2003), "The Real Costs of Aspect-Oriented Programming," IEEE Software 20, 6, 92-93. https://doi.org/10.1109/MS.2003.1241373

Elrad, T., M. Aksit, G. Kiczales, K. Lieberherr and H. Ossher (2001), "Discussing Aspects of AOP," Communications of the ACM 44, 10, 33-38. https://doi.org/10.1145/383845.383854

Lesiecki, N. (2006), "Applying AspectJ to J2EE Application Development," IEEE Software 23, 1, 24-32. https://doi.org/10.1109/MS.2006.1

Kiczales, G., J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J.-M. Loingtier and J. Irwin (1997), "Aspect-Oriented Programming," In Lecture Notes in Computer Science: Vol. 1241. Proceedings of the 11th European Conference on Object-Oriented Programming, G. Goos, J. Hartmanis and J. van Leeuwen (Series Eds.), and M. Aksit and S. Matsuoka (Vol. Eds.), Springer, Berlin, Germany, pp. 220-242. https://doi.org/10.1007/BFb0053381

Viega, J. and J. Voas (2000), "Can Aspect-Oriented Programming Lead to more Reliable Software?" IEEE Software 17, 6, 19-21. https://doi.org/10.1109/52.895163

Elrad, T., R.E. Filman and A. Bader, Eds. (2001b), Aspect-Oriented Programming: Introduction [Special issue], Communications of the ACM 44, 10. https://doi.org/10.1145/383845.383853

Objective Activities

Relevant Conferences/Publications

Learning Objective 3

  • Define the concept of end-user programming.

Objective Leading Questions

  • What is end-user programming?
  • What are the risks of end-user programming?
  • What should the end-user programming paradigm support?

Objective Readings

Required Readings

Sutcliffe, A. and N. Mehandjiev (2004a), "End-User Development: Introduction," Communications of the ACM 47, 9, 31-32. https://doi.org/10.1145/1015864.1015883

Fischer, G., E. Giaccardi, Y. Ye, A.G. Sutcliffe and N. Mehandjiev (2004), "Meta-Design: A Manifesto for End-User Development," Communications of the ACM 47, 9, 33-37. https://doi.org/10.1145/1015864.1015884

Harrison, W. (2004), "The Dangers of End-User Programming," IEEE Software 21, 4, 5-7. https://doi.org/10.1109/MS.2004.13

Supplemental Readings

Lieberman, H., F. PaternĂ², and V. Wulf, Eds. End User Development, Springer, https://doi.org/10.1007/1-4020-5386-X

Objective Activities

Relevant Conferences/Publications

Updated August 28 2023 by FST Course Production Staff