International Journal of Computer Applications (0975 – 8887) Volume 121 – No.20, July 2015 13 Enhanced Teaching Model (ETM) for Teaching Programming Languages Fawaz Alajmi De Montfort University Ahmad AA Alkhatib Alzaytoonah University of Jordan 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. Keywords Enhanced Teaching Model (ETM), Intelligent Teaching System (ITS), Teaching Approach, Teaching Model, Teaching Tool, Software Development. 1. INTRODUCTION Computers are ubiquitous and our needs to implement things are pretty much dependent on them. Therefore, the demand for calibres to develop software and write efficient code is souring high, i.e. T. Hüsing et al. (2013). Unfortunately, the rate of ICT University dropouts has been increasing over the last decade, i.e. Kori, Külli, et al (2015). Programming languages are used to solve problems. However, problem solving is beyond the syntax of programming languages (Linn & Dalbey (1985) and Perkins, Schwartz & Simmons (1988)). We believe that the following two questions remain unanswered and will form the space of the research subject: Investigate how and why this research has not been applied to teaching Software Development? How more could be made of it to improve teaching? Researchers have been successful in identifying what has been causing the dropouts. Teaching and learning programming has always been challenging for all parties involved, especially to novices (Blayney (2009); Ramalingam, LaBelle and Wiedenbeck (2004); Robins, Rountree and Rountree (2003)). Interestingly, Sleeman (1986) described programming as the new Latin of the school syllabus. One does not have to look far to prove this crystal-clear fact. In reality, most students and teachers, who take part in this skill-building cycle, can simply approve this view. But one might wonder why this is the case where there are as complex subjects, if not more than programming, such as physics. Literature shows that there are issues with the teaching of programming languages to students, which can be briefly highlighted as below: Lack of interest and appreciation in programming languages by students Individual learning of programming is not practical and tedious Use of unsuitable languages to teach programming concepts Lack of visual programming Too much theory and emphasis on the language syntax itself rather than the programming concepts Lack of emphasis on the teaching of programming solving techniques Lack of feedback from students and teachers Tools are only based on tutorials and quizzes On the other hand, researchers provide solutions for those issues, which can be summarised as follows: Orient students with the aspects of programming Adopt LET US DO IT ALL TOGETHER approach, Ngo-Ye and Park (2014). peer programming, peer tutoring and problem solving strategies The language should be selected based on pedagogical suitability and not popularity in the industry Only calibre teachers should teach programming Programming courses should be flexible to all students to learn in different ways visual is essential to learning programming