Hybrid Teaching and Learning of Computer Programming Language

Hybrid Teaching and Learning of Computer Programming Language

Fu Lee Wang, Tak-Lam Wong
DOI: 10.4018/978-1-61350-456-7.ch513
(Individual Chapters)
No Current Special Offers


Teaching and learning computer programming has created significant difficulties to both teacher and student. Large class size is one of the major barriers to effective instruction. A well-designed pedagogy can make the instruction most effective. Hybrid teaching and learning combines face-to-face instruction and computer-assisted instruction to maximize students’ learning. This chapter will share the authors’ experiences in City University of Hong Kong (CityU) as they teach computer programming courses with large class size by hybrid learning model. Evaluation has showed that hybrid teaching and learning provide great flexibilities to both teaching and learning of computer programming. The students’ academic results have been significantly improved in computer programming courses.
Chapter Preview

1. Introduction

Computer programming is an essential fundamental skill required in many curriculums for higher education nowadays. It is commonly believed that the students would develop their general problem-solving skills through learning programming. Learning computer programming has been known to be difficult for high-school and university students (Boulay, 1989), and has failed to catalyze the development of higher order thinking skills (Mason, 1999). A number of challenges have been identified for both teaching and learning programming (Sleeman, 1986).

A programming course typically has a large class size. Large class size is one of the major barriers to effective instruction. It is difficult to closely monitor individual student’s learning progress. The teachers do not have enough time to interact with all students in a class of hundreds of students within a few hours of lectures and tutorials each week. Teaching and learning computer programming has created significant difficulties to both teacher and student.

Hybrid learning is to combine face-to-face instruction with computer-assisted instruction (Graham, 2005; Graham & Allen, 2005). Hybrid learning is the convergence of two representative learning environments. The traditional face-to-face learning environment has been used for centuries. On the other hand, the rapid development of technologies provides distributed learning environment as an alternative. In the past, these two environments are separated because they use different media/method combinations. Therefore, they are used to address the needs of different audiences (Graham, 2005). Traditionally, distributed learning is used as an expansion to the face-to-face learning.

Taking the university education as an example, the face-to-face learning environment is used in a teach-directed synchronous environment where the interpersonal interaction is a key component. On the other hand, the distributed learning environment is usually used in distanced learning, which focus on asynchronous self-paced learning and learning-material is the key component. The rapid development has a significant impact on the learning environment. In fact, there is an increasing trend to integrate the two learning environments as a single system. Nowadays, more and more universities conduct the learning activities under both environments.

As there is an increasing need for hybrid learning systems, efforts have been continuously devoted into the research of hybrid learning (Choy, Lam, Poon, Wang, Yu, & Yuen 2007). A number of hybrid learning platforms have been developed in real world. We have successfully implemented hybrid learning to teach computer programming courses in the City University of Hong Kong (CityU). This paper is going to share our experiences of hybrid learning. Students taking computer programming courses very often come with various backgrounds and ability levels. We have incorporated several teaching strategies in designing our teaching and learning activities for computer programming course. We combined the advantages of both learning environments to deliver computer programming courses.

Related research has showed that computer-assisted instruction (CAI) technology can be a more effective way of teaching introductory programming courses (Anderson & Skwarecki, 1986). The CAI technology allows us to have a close monitoring of student’s learning progress. The CAI technology provides great flexibilities for us to render the teaching and learning of computer programming more effective. We have designed programming exercises with different levels of difficulty to fulfil the need of students with various backgrounds and ability levels. We can ensure that each step is learned by stepwise learning (Schulman, 2001). We also implemented peer learning scheme (Boud, Cohen, & Sampson, 2001). The group of more talented student will help the others to study programming. Both groups of talented and less talented student are benefited from peer learning scheme. On the other hand, we have designed programming activities in an incremental manner, so that the students gain the knowledge of large application development by implicit learning (Berry, 1997). This experience prepares the students ready to participation in a software development team.

Complete Chapter List

Search this Book: