Using multimedia to develop students' programming concepts

The growing use of computers and computer technology is creating a worldwide need for more programmers and computer professionals. The increasing complexity of programming languages and applications is demanding higher skills sets from the programmers who are being trained. Kann et al. (1997) suggest that the graphic representation of algorithms used in most textbooks are too abstract and insufficient for learners to develop the logical thinking required in computer science courses. Many programming students have problems due to a lack of understanding of conceptual and mental models (Soloway et al., 1981). This paper describes the development of an alternative teaching approach, based on constructivist learning principles, and multimedia technologies. The Dynamic Interactive Visualisation Tool in teaching C (DIVTIC), uses multimedia and visual imagery to provide learners with a step-by-step representation of program executions in the C language as a means to enhance their understanding. DIVTIC was designed around constructivist principles, and combines collaborative and visualisation learning strategies with use of the Internet and the World Wide Web to support the learning of programming. This paper will describe the conceptual framework supporting the design of DIVTIC and will report on a study which sought to explore the effectiveness of its use among a cohort of students studying introductory programming at Suranaree University of Technology (SUT) in Thailand. The paper will describe how the students used DIVTIC and will discuss how this use was able to support and encourage their learning. INTRODUCTION As technology is growing rapidly, interactive multimedia technology is being used more and more in the educational sector. To keep pace with this rapid change, researchers need to optimise the use of new technologies in teaching and learning environments. Thus, instructional materials and tools are being produced by incorporating updated software with such advanced delivery technologies as the Internet (e.g., Oliver et al., 1996; Rowe and Thorburn, 1999; Warendorf, 1997; Yoo, 1998). The teaching and learning of any programming language is a difficult activity. Conventional instruction may not always be appropriate to help students in developing semantic knowledge (Oliver and Malone, 1993). There have been many efforts to develop tools for the teaching and learning of programming languages (e.g., Daly, 1999; Jehng and Chan, 1998; Rowe and Thorburn, 1999; Smith and Webb, 1998). However, this still remains a problem in many institutions (Carter and Jenkins, 1999). The reasons for this are that the development of new languages make current resources outdated, the focus of the learning is on syntax rather than on semantics and concepts, and the difficulty in visualising of program executions. New programming languages are more complex because they have more advanced features. For example, for many years, Pascal was the major introductory computer programming language and was the most popular first language for teaching students in the nineties (Brilliant and Wiseman, 1996). However, Pascal is no longer used in industry (Hubbard, 1996) and many institutions have now switched from Pascal to C. The problems experienced by novice programmers learning a procedural language such as Pascal as their first programming language are increased when learning C (Hubbard, 1996; Smith and Webb; 1998). The C language is too difficult for many novices to acquire on their own (Johnson, 1995). BACKGROUND Computer programming courses are more difficult and time consuming than other courses for the majority of students (Hagan and Lowder, 1996). Usually, novices have different background knowledge before entering an introductory computer programming course. Consequently, a class may contain a range of proficiency levels. Wilcocks and Sanders (1994) suggest the use of a computeraided dynamic program animator to support the instructors of weaker student programmers on those who may be too shy to ask questions and on those who are difficult to assist when classes are large. Generally, students differ in their ability to understand material that is very abstract and difficult to visualise. Previous research has proposed ways to improve instructional materials and therefore student outcomes. For example, instruction can incorporate a dynamic explanation tool to help students visualise each step in program execution (Karsten and Kaparthi, 1998; Rowe and Thorburn, 1999; Lischner, 2000). With emerging technologies, there are many ways to improve instructional materials and to help instructors and students improve the teaching and learning environment. This paper describes a study that sought to develop an instructional model using the most recent developments in technology as a means to enhance student learning. OPPORTUNITIES OF MULTIMEDIA Students in science majors, especially in the computing field, need to learn valid basic concepts during their introductory computing courses as these form a strong background for more advanced programming courses in their college curriculum (Herrmann and Popyack, 1994). At the moment, current teaching is based on textbooks and this does not always work well. Many students who finish introductory classes, do not know what they are doing. Kann et al. (1997) suggest that the graphic representation of algorithms used in most textbooks are abstract visualisations and are not sufficient for learners to develop the logical thinking required in computer science courses. Students’ problems are mostly based on a lack of understanding of conceptual and mental models (Soloway et al., 1981). This study explored the opportunity for creating a technology based learning model that used visualisation to provide student activities for building their understanding of the programming process. The model was based on the learning principles necessary for learning successful programming; it was derived from the literature that can be used to inform and guide the design of the learning environments. Methods of visualisation, collaboration, constructivism, and student-centred learning were used to explore how the design might be used to best benefit teaching and learning in introductory computer programming. This model also provides a benefit for instructors who may want to move from traditional instruction methods to using technology as a teaching medium. The study sought to explore strategies to use technology, not only to help students to learn effectively, but also to:  prepare students with a strong background in computer programming,  reduce learning time,  save teacher consultation time, and  engage students in student-centred activities. THE DESIGN OF AN INTERACTIVE LEARNING SETTING The study involved a design of an interactive learning model, Dynamic Interactive Visualisation Tool in Teaching C (DIVTIC). The design of DIVTIC was based on the learning principles necessary for successful programming learning; it was derived from the literature that has been used to inform and guide the design of the learning environments. DIVTIC is composed of 8 sections and its characteristic features, along with the learning principle, are shown in Table 1. DIVTIC was designed to be more visually explicit than the existing systems (e.g., Rowe and Thorburn, 1999). DIVTIC shows phrases in each line and employs a combination of complementary tools that encourage students to be active learners. Table 1: The Relationship between DIVTIC Characteristic and Learning Principle DIVTIC Characteristic Learning Principle Syllabus/Lecture Notes Student-centred resource Computer Structure Student-centred resource Animated Examples Visualisation and Constructivism ‘C’ Compiler Student-centred resource ‘C’ WebBoard Collaboration Self-Evaluation Constructivism FAQ Pool Constructivism ‘C’ References & Links Constructivism The elements of DIVTIC are described as follows:  Syllabus/Lecture Notes: There are six sections including syllabus, textbook, lecture notes, laboratory, weekly task, and sample sections. The syllabus section includes the information on topics taught during the semester, the laboratory test date, midterm and final test dates, and relevant course textbooks. The textbook section includes a revised version of the previous lecture notes. The lecture notes section contains power point slides used by the instructor in the lectures. The laboratory section is where all students who are registered in the course can download the weekly laboratory problem ahead of time. The weekly task section is designed to contain weekly activities that the students can be required to do at the beginning of each laboratory session. The sample section is designed to contain a sample of previous midterm and final examinations.  Computer Structure: This section was designed to offer an overview of the basic structure of a computer and contains 12 different parts of hardware including a monitor, central processing unit (CPU), CD-ROM, hard disk, floppy disk, mouse, computer system, scanner, printer, modem, digital camera and zip drive. Each part is given a definition and description.  Animated Examples: This section contains 10 chapters. Each chapter is comprised of three to six animated examples. The students move the mouse over each chapter to reveal a submenu containing some animated examples.  ‘C’ compiler: This section was designed to teach the users how to use C compiler step-by-step.  ‘C’ WebBoard: This section was designed to permit students to have asynchronous discussion so that they would share ideas, information, questions and suggestions by reading and posting the messages at whatever hour of the day they are most productive. The instructor can also visit the WebBoard page daily to reply to those messages. This ensures that all messages have been answered by either a peer or the instructor himself.  Self-Evaluation: In this section, students tes