Understanding the Programming Techniques Using a Complex Case Study to Teach Advanced Object-Oriented Programming

Teaching Object-Oriented Programming (OOP) as part of a Computing-related university degree is a very difficult task; the road to ensuring that students are actually learning object oriented concepts is unclear, as students often find it difficult to understand the concept of objects and their behavior. This problem is especially obvious in advanced programming modules where Design Pattern and advanced programming features such as Multi-threading and animated GUI are introduced. Looking at the students’ performance at their final year on a university course, it was obvious that the level of students’ understanding of OOP varies to a high degree from one student to another. Students who aim at the production of Games do very well in the advanced programming module. However, the students’ assessment results of the last few years were relatively low; for example, in 2016-2017, the first quartile of marks were as low as 24.5 and the third quartile was 63.5. It is obvious that many students were not confident or competent enough in their programming skills. In this paper, the reasons behind poor performance in Advanced OOP modules are investigated, and a suggested practice for teaching OOP based on a complex case study is described and evaluated.





References:
[1] Madsen, O. (2002), In Memory of Ole-Johan and Kristen Nygaard, Journal of Object Technology, Vol. 1, no. 4, September-October 2002
[2] Deitel, P., Deitel, H., (2015), Java How To Program (Early Objects) (10th Edition), Pearson (2017), ISBN-13: 9780133807806.
[3] Barnes, D., Kölling, M., (2016). Objects First with Java A Practical Introduction using BlueJ. Sixth Edition, Pearson, 2016. ISBN (US edition): 978-013-447736-7. ISBN (Global Edition): 978-1-292-15904-1.
[4] Barnes, D., Kölling, M., (2016), Object-Oriented Programming in Java with Games and Simulations, Second edition, Pearson, 2016, ISBN-10: 013-405429-6, ISBN-13: 978-013-405429-2.
[5] Deitel, P., Deitel, H., (2000), C++ How To Program, Pearson.
[6] Freeman, E., Robson, E., Sierra, K., & Bates, B. (2004), Head First Design Patterns, O’Reilly Media
[7] Gamma, E., Vlissides, J., Johnson, R., Helm, R., (1994), Design Patterns Elements Of Reusable Object-oriented Software, Addison-Wesley.
[8] Nevison, C., Wells, B., (2004), Using a maze case study to teach: object-oriented programming and design patterns, Proceedings of the Sixth Australasian Conference on Computing Education, p.207-215, January 01, 2004, Dunedin, New Zealand.
[9] Karg, S., (1996), available from, http://www.angelfire.com/trek/software/elevator.html, last accessed on 20/12/2017.
[10] Kearney, S., (2017), available from: https://www.slant.co/topics/10229/~ides-for-java-on-windows, last accessed on 20/12/2017.