CFP last date
20 December 2024
Reseach Article

Enhanced Teaching Model (ETM) for Teaching Programming Languages

by Fawaz Alajmi, Ahmad Aa Alkhatib
International Journal of Computer Applications
Foundation of Computer Science (FCS), NY, USA
Volume 121 - Number 20
Year of Publication: 2015
Authors: Fawaz Alajmi, Ahmad Aa Alkhatib
10.5120/21655-5026

Fawaz Alajmi, Ahmad Aa Alkhatib . Enhanced Teaching Model (ETM) for Teaching Programming Languages. International Journal of Computer Applications. 121, 20 ( July 2015), 13-24. DOI=10.5120/21655-5026

@article{ 10.5120/21655-5026,
author = { Fawaz Alajmi, Ahmad Aa Alkhatib },
title = { Enhanced Teaching Model (ETM) for Teaching Programming Languages },
journal = { International Journal of Computer Applications },
issue_date = { July 2015 },
volume = { 121 },
number = { 20 },
month = { July },
year = { 2015 },
issn = { 0975-8887 },
pages = { 13-24 },
numpages = {9},
url = { https://ijcaonline.org/archives/volume121/number20/21655-5026/ },
doi = { 10.5120/21655-5026 },
publisher = {Foundation of Computer Science (FCS), NY, USA},
address = {New York, USA}
}
%0 Journal Article
%1 2024-02-06T23:08:55.407298+05:30
%A Fawaz Alajmi
%A Ahmad Aa Alkhatib
%T Enhanced Teaching Model (ETM) for Teaching Programming Languages
%J International Journal of Computer Applications
%@ 0975-8887
%V 121
%N 20
%P 13-24
%D 2015
%I Foundation of Computer Science (FCS), NY, USA
Abstract

Expectations from academics and the industry, to have students and employees who are independent and capable of quickly writing code to resolve work-related issues, are growing high. However, teaching and learning programming is certainly not easy and very challenging. Literature shows that a lot of work has been done to improve this. Nonetheless, it is evident that little effect of this work has had impact on the actual practice of teaching and learning of Software Development programming skills. This gap has been addressed in this paper to enhance the teaching and learning process of programming to students. Furthermore, teaching programming literature research has been classified into 3 categories; teaching approach, teaching model and teaching tool. As a result, this paper proposes the following objectives to tackle this problem: •Identify what research has found out about how to teach and learn programming and other aspects of Software Development •Investigate how and why this research has not been applied to teaching Software Development How more use could be made of it to improve teaching? Finally, an Enhanced Teaching Model (ETM) has been proposed, which combines several teaching approaches and models from literature. In addition, this model uses teaching tools to provide goal-focused exercises, assess students' performance and obtain feedback from the learning community. Last but not least, a discussion about the future work required in order to assess the model and thus improve it.

References
  1. Kori, Külli, et al. (2015): The Role of Programming Experience in ICT Students' Learning Motivation and Academic Achievement. International Journal of Information and Education Technology Vol. 6.
  2. T. Hüsing et al. (2013). E-leadership, e-skills for competitiveness and innovation vision, roadmap and foresight scenarios final report. European Commision E-Skills Vision.
  3. Ford, M. and Venema, S. (2010): Assessing the Success of an Introductory Programming Course. Journal of Information Technology Education 9:133-145.
  4. Thomas, L. , Ratcliffe, M. , Woodbury, J. , Jarman, E. (2002): Learning styles and performance in the introductory programming sequence . SIGCSE '02 Proceedings of the 33rd SIGCSE technical symposium on Computer science education
  5. Bornat, R. , Dehnadi, S. , and Simon (2008): Mental models, consistency and programming aptitude. ACE '08: Proceedings of the tenth conference on Australasian computing education Vol. 78.
  6. Sleeman, D. (1986). The Challenges of Teaching Computer Programming. Communications of the ACM. 29 (9). p. 840-841
  7. Blayney, P. J. (2009). Knowledge gap? Accounting practitioners lacking computer programming concepts as essential knowledge. In G. Siemens and C. Fulford (Ed. ), Proceedings of World Conference on Educational Multimedia, Hypermedia and Telecommunications (pp. 151-159). Chesapeake, VA: AACE.
  8. Topi, H. , Valacich, J. S. , Wright, R. T. , Kaiser, K. , Nunamaker, J. F. , Sipior & J. C. , et al. (2010). IS 2010: Curriculum guidelines for undergraduate degree programs in information systems. Communications of the Association for Information Systems, 26, 359-428
  9. Ramalingam, V. , LaBelle, D. & Wiedenbeck, S. (2004). Self-efficacy and mental models in learning to program. Association for Computing Machinery SIGCSE Bulletin, 36(3), 171-175
  10. Gonzalez, G. (2004). Constructivism in an introduction to programming course. Journal of Computing Sciences in Colleges, 19(4), 299-303.
  11. Robins, A. , Rountree, J. & Rountree, N. (2003). Learning and teaching programming: A review and discussion. Computer Science Education, 13(2), 137-172
  12. ISMAIL, M. N. , NGAH, N. A. & UMAR, I. N. (2010). Instructional strategy in the teaching of computer programming: a need assessment analyses. TOJET: The Turkish Online Journal of Educational Technology, volume 9 Issue 2, pp. 569–571
  13. Butler, M. & Morgan, M. (2007). Learning challenges faced by novice programming students studying high level and low feedback concepts. Proceedings ascilite Singapore, pp. 99 – 107
  14. Smith, P. A. & Webb, G. I. (2000). The Efficacy of a Low-Level Program Visualisation Tool for Teaching Programming Concepts to Novice C Programmers. Journal of Educational Computing Research, 22 (2), 27–39
  15. Boroni, C. M. et al. (1996). Dancing with Dynalab. In Proceedings of the 27th SIGCSE Technical Symposium on CS Education. Philadelphia, February. pp. 135–139
  16. Rowe, G. R. (2000). VINCE— An on-line tutorial tool for teaching introductory programming. British Journal of Educational Technology, 31(4), 359–369
  17. Fleury, A. E. (1993). Students' beliefs about Pascal programming. Journal of Educational Computing Research, 9(3), 355–371
  18. Scheftic, C. & Goldenson, D. (1986). Teaching programming methods and problem solving: the role of programming environments based on structure editors. In Proceedings of the National Educational Computing Conference, pp. 231–6
  19. Brusilovsky, P. (1994). Program visualisation as a debugging tool for novices. In Proceedings of INTERCHI '93 (Adjunct proceedings) Amsterdam, 24 – 9April 1993, pp. 29–30
  20. Ranjeeth, S. & Naidoo, R. (2007). An investigation into the relationship between the level of cognitive maturity and the types of errors made by students in a computer programming course. College Teaching Methods and Styles Journal, 3, 31–40
  21. Adams, J. C. (1998). Chance-it: an OO capstone project for cs-1, SIGCSE'98, 10-14
  22. Becker, K. (2001). Teaching with games: the minesweeper and asteroids experience, J. Comput. Small Coll, 17(2), 23-33
  23. Lorenzen, T. & Heilman, W. (2002). Cs1 and cs2: write computer games in java! SIGCSE Bull. , 34(4), 99-100
  24. Trono, J. A. (1994). Taxman revisited, SIGCSE Bull. , 26(4), 56-58
  25. Beck, K. (1999). Embracing change with extreme programming. Computer, 32(10), 70-77
  26. Hedin, G. , Bendix, L. , & Magnusson, B. (2003). Introducing software engineering by means of Extreme Programming, Proceedings of the 25th International conference on Software Engineering (pp. 586-593). Portland, Oregon: IEEE Computer Society
  27. Mills, G. (2000). Action research: a guide for the teacher researcher. Upper Saddle River, New Jersey:Prentice-Hall
  28. Williamsons, K. , Burstein, F. , & McKemmish (2002). The two major traditions of research. In K. Williamsons (Ed. ), Research methods for students, academics and professionals (2nd ed. ). Wagga Wagga, New South Wales: Centre for Information Studies, Charles Sturt University
  29. Odekirk, E. (2000). "Analysing Student Programs, in SIGCSE Bulletin: Conference Proceedings of the 5th Annual SIGCSE/SIGUE Conference on Innovation and Technology in Computer Science Education", ITiCSE 2000, Vol. 32, No. 3, pg. 191-191, ACM Press
  30. Mayer, R. E. (1981). The psychology of how novices learn computer programming. ACM Computing Surveys, 3, 121–141
  31. Perkins, D. N. , Hancock, C. , Hobbs, R. , Martin, F. & Simmons, R. (1986). Conditions of learning in novice programmers. Journal of Educational Computing research, 2, 37–56
  32. Linn, M. C. & Dalbey, J. (1985). Cognitive consequences of programming instruction: Instruction, access, and ability. Educational Psychologist, 20, 191–206
  33. Perkins, D. N. , Schwartz, S. & Simmons, R. (1988). Instructional strategies for the problems of novice programmers. In R. E. Mayer (Ed. ), Teaching and learning computer programming (pp. 153–178). Hillsdale, NJ: Lawrence Erlbaum
  34. Lippert, R. C. (1989). Expert systems: Tutors, tools, and tutees. Journal of Computer-Based Instruction, 16, 11–19
  35. Ramadhan, H. (1992). An intelligent discovery programming system. In Proceedings of ACM symposium on applied computing: Special track on visuality in computing. Kansas City, KS
  36. Rosenberg, R. (1987). A critical analysis of research on intelligent tutoring systems. Journal of Educational Technology, 27, 7–13
  37. Mannila, L. & de Raadt, M. (2006). An objective comparison of languages for teaching introductory programming. In Proceedings of the 6th Baltic Sea conference on Computing education research: Koli Calling 2006 (pp. 32-37). ACM
  38. McIver, L. , & Conway, D. (1996). Seven deadly sins of introductory programming language design. In Software Engineering: Education and Practice, 1996 Proceedings. International Conference (pp. 309-316). IEEE
  39. Soares, A. (2014). Reflections on Teaching App Inventor for Non-Beginner Programmers: Issues, Challenges and Opportunities. Information Systems Education Journal, 12(4), 56
  40. Tyler, J. (2011). App Inventor for Android: Build Your Own Apps - No Experience Required! : Wiley Publishing
  41. McNamara, C. (2007) Types of Research Methods. SERVE Center
  42. Quinson, M. & Oster, G. (2014). The Programmer's Learning Machine: A Teaching System To Learn Programming. Loria
  43. Lethbridge, T. (2014). Teaching Modeling using Umple: Principles for the Development of an Effective Tool. Software Engineering Education and Training (CSEE&T)
  44. Ngo-Ye, T. & Park, S. (2014) MOTIVATING BUSINESS MAJOR STUDENTS TO LEARN COMPUTER PROGRAMMING – A CASE STUDY. Proceedings of the Southern Association for Information Systems Conference. AIS Electronic Library
  45. Horváth, R. & Javorský, S. (2013). New Teaching Model for Java Programming Subjects. 5th World Conference on Educational Sciences. 116. p. 5188–5193. ScienceDirect
  46. Sarpong, K. , Arthur, J. & Amoako, P. (2013). Causes of Failure of Students in Computer Programming Courses: The Teacher – Learner Perspective. International Journal of Computer Applications. 77 (12). p. 0975–8887. IJCA Journal
  47. Brito, M. & Sá-Soares, F. (2013). Assessment frequency in introductory computer programming disciplines. Computers in Human Behaviour. 30. p. 623–628. Science Direct
  48. Lethbridge, T. , Mussbacher, G. & Forward, A. & Badreddin, O. (2011). Teaching UML Using Umple:Applying Model-Oriented Programming in the Classroom. Software Engineering Education and Training (CSEE&T). p. 421-428. IEEE
  49. Vihavainen, A. , Paksula, M. & Luukkainen, M. (2011). Extreme Apprenticeship Method in Teaching Programming for Beginners. Proceedings of the 42nd ACM technical symposium on Computer science education. p. 93-98. ACM Digital Library
  50. Caspersen, M. & Bennedsen, J (2007). Instructional Design of a Programming Course ?A Learning Theoretic Approach. Proceedings of the third international workshop on Computing education research. p. 111-122. ACM Digital Library
  51. Pears, A. , Seidman, S. & Malmi, L. & Mannila, L. & Adams, E. & Bennedsen, J. & Devlin, M. & Paterson, J. (2007). A Survey of Literature on the Teaching of Introductory Programming. Working group reports on ITiCSE on Innovation and technology in computer science education. p. 204-223. ACM Digital Library
  52. Leutenegger, S. & Edgington, J. (2007). A Games First Approach to Teaching Introductory Programming. Proceedings of the 38th SIGCSE technical symposium on Computer science education. p. 115-118. ACM Digital Library
  53. Keefe, K. , Sheard, J. & Dick, M. (2006). Adopting XPPractices for Teaching Object Oriented Programming. Proceedings of the 8th Australasian Conference on Computing Education. 52. p. 91-100. ACM Digital Library
  54. Pillay, N. (2003). Developing Intelligent Programming Tutors for Novice Programmers. ACM SIGCSE Bulletin. 35 (2). p. 78-82. ACM Digital Library
  55. Grimes, D. A. & Schulz, K. F. (2002). Bias and causal associations in observational research. The Lancet, 359(9302), 248-252.
  56. Jenkins, T. (2002). ON THE DIFFICULTY OF LEARNING TO PROGRAM. 3rd Annual LTSN-ICS Conference. University of Ulster, LTSN Centre for Information and Computer Sciences
  57. Kanemune, S. , Nakatani, T. , Mitarai, R. , Fukui, S. & Kuno, Y. (2002). Dolittle — Experiences in Teaching Programming at K12 Schools. The Second International Conference on Creating, Connecting and Collaborating through Computing. p. 177-184. IEEE
  58. MILNE, I. & ROWE, G. (2002). Difficulties in Learning and Teaching Programming—Views of Students and Tutors. Education and Information Technologies. 7 (1). p. 55-66. Springer Link
  59. Warren, P. (2001). TEACHING PROGRAMMING USING SCRIPTING LANGUAGES. Journal of Computing Sciences in Colleges. 7 (2). p. 205-216. ACM Digital Library
  60. Gal-Ezer, J. & Zeldes, A. (2000). Teaching Software Designing Skills. Computer Science Education. 10 (1). p. 25-38. Taylor Francis Online
  61. Deek, F. & McHugh, J. (1998). A Survey and Critical Analysis of Tools for Learning Programming. Computer Science Education. 8 (2). p. 130-178. Taylor Francis Online
  62. BRUSILOVSKY, P. , CALABRESE, E. & HVORECKY, J. & KOUCHNIRENKO, A. & MILLER, P. (1997). Mini-languages: a way to learn programming principles. Education and Information Technologies. 2 (1). p. 65-83. Springer Link
  63. SHNEIDERMAN, B. (1976). TEACHING PROGRAMMING: A SPIRAL APPROACH TO SYNTAX AND SEMANTICS. Computer and Education. 1 (4). p. 193-197. Science Direct
  64. Meerbaum-Salant, O. , Armoni, M. , & Ben-Ari, M. (2013). Learning computer science concepts with scratch. Computer Science Education, 23(3), 239-264
  65. Wolz, U. , Leitner, H. H. , Malan, D. J. , & Maloney, J. (2009). Starting with Scratch in CS1. SIGCSE Bulletin, 41,2–3
  66. Maloney, J. , Peppler, K. , Kafai, Y. , Resnick, M. , & Rusk, N. (2008). Programming by choice: Urban youth learning programming with Scratch. SIGCSE Bulletin, 40, 367–371
  67. Wood, J. M. (2003). Research Lab Guide. MICR*3260 Microbial Adaptation and Development Web Site. [Online ] Available from: http://www. uoguelph. ca/mcb/teaching/micr3260/research_lab/guide. shtml. [Accessed: 22nd Jan 2015]
Index Terms

Computer Science
Information Sciences

Keywords

Enhanced Teaching Model (ETM) Intelligent Teaching System (ITS) Teaching Approach Teaching Model Teaching Tool Software Development.