Press enter to skip the top menu

Teaching Introductory Programming

Learning Theories and Teaching Tools

Learning Edge Momentum

In order to explain the bi-modal distribution of marks for many students Anthony Robins proposed the Learning Edge Momentum (LEM) hypothesis. The basic concepts and structures of programming, i.e. sequence, loops, variables, collections, etc. are very tightly integrated resulting in the fact that sound knowledge of one concept will make the learning of a new concept easier. Also, once a student gains sound knowledge of the first concept the cognitive load of learning the next concept is reduced, thus further enhancing the learning of the next concept. The reverse also holds, i.e. an incomplete understanding of the first concept will make the learning of the next concept more difficult, thus further increasing the cognitive load. According to the hypothesis the cumulative effects of either a positive or negative start to a course may account for the bi-modal distribution. (Robins, 2010)

An offshoot of the LEM hypothesis is that the early lessons, beginning at the very first lesson, must be planned and structured so that at the conclusion of any topic the student will have thorough knowledge of the introduced concepts before moving to the next one. (Robins, 2010)

Equally the importance of the early programming lessons and their effect on the course outcomes must be strongly emphasised to students. (Robins, 2018)

Go to top

Human Memory

Psychologists divide memory into two sections: short-term or working memory and long-term memory. The short-term memory is what we use for everyday activities such as dialling a phone number, or performing simple calculations. For this reason it is referred to as working memory. This is where new knowledge is first encountered and then processed before being stored in long-term memory. Working memory is volatile – it holds data for only a matter of seconds, which is why remembering a new credit card or phone number is difficult. Furthermore it is very limited: it can only hold approximately five items of information simultaneously and any new in-coming item usually displaces another resident item. Long-term memory, however, is quite different. We don’t know how large it is or how to measure it but it is large enough for our knowledge store (Norman, 2013). The data to be learnt must be held in the working memory for processing. Within that memory it must compete with other data in the same memory. Due to this it may not be processed correctly or not saved at all, due to the overload of competing data. However, according to Schnotz et al., (2009), motivation can temporarily increase working memory, thus enabling it to hold more information thereby improving learning. As we shall later see, robots have been known to increase student motivation, which makes a strong case for using them in CS1 courses.

As just mentioned new data coming into memory can displace data already existing there, resulting in data being lost. This is referred to as the cognitive load.

Go to top

Cognitive Load Theory

The theory of CL was first introduced in the 1980s. It emphasises that all new information is first processed in the volatile and low capacity working memory before being stored in long-term memory as a schema (Sweller, Merriënboer, & Paas, 2019). The CL consists of three sub-loads: intrinsic, extraneous and germane. The intrinsic is the load placed on the learner by the complexity of the topic that is to be learned. The extraneous is the load placed by external sources not directly related to the topic, i.e. noise in class or syntax of a programming language. Germane load is that which is devoted to actual learning (Sorva J. , 2012).

For lesson design we should be aiming at eliminating extraneous load and reducing the intrinsic load (Sweller, van Merrienboer, & Paas, 1998). Clearly we cannot eliminate the latter completely, since then there would be nothing new to learn. On the other hand if the new topic is too complex the resulting intrinsic load may leave no space for the germane load, thus resulting in no schema being created. Extraneous load can be reduced using worked examples and the intrinsic load by breaking a complex topic into smaller subtopics, which should be recombined only when the learner has created appropriate schemas for each of the subtopics (Sorva J. , 2012).

Go to top

Discussion

Of the topics related to learning that we have discussed motivation appears to be the most important. It helps to temporarily increase the size of working memory (Schnotz, Fries, & Holger, 2009). This in turn helps to create schema resulting in better quality learning, which itself provides a high impetus for the learning edge momentum. This in turn will result in the creation of a successful programme, which further increase motivation. Thus, in relation to LEM, CLT and motivation, the three areas are as tightly integrated as the programming concepts that they help to explain

Go to top

Teaching Tools

The teaching tool used in this module will be an Edison V2 robot, running on the language EdPy. EdPy is a specialised version of Python that has been adapted for the Edison robot.

As stated earlier, robots were chosen due to their ability to motivate students (Barker & Ansorge, 2007) (Nugent, et al., 2009) (Petre & Price, 2004) and Python was chosen due to its ease of use as an introductory language (Koulouri, Lauria, & Macredie, 2015).

The robot will be tested for it's ability to facilitate the teaching of the programming concepts for the NCEA module AS91880.

Go to top

Notional Machines and Mental Models

A notional machine is a simplified presentation of the components of a computer system that are involved in the execution of a program, thus enabling a learner to understand the programme’s workings (Sorva J. , 2012). It is an important mental model for a learner to acquire accurately because without it they can form wrong theories as to how a programme works (Robins, 2018)

A short video demonstrating the concept of a notional machine

Above is a video showing the notional machine of a simple program. It is an abstraction of a computer with RAM on the left and the CPU on the right.

The RAM is divided between the programme at the top and the area where the data used by the programme at the bottom.

Go to top