Introduction
Programming has been seen as being difficult to learn by students at both secondary and tertiary levels, with generally, a bi-modal distribution of the marks. The modal distribution at the high end indicated that a small number of students did not find programming difficult while the distribution at the low end indicated that another group had found it very difficult indeed.
Bearing this in mind this teaching manual will first present a literature review of research papers that seek to find a solution to both the high failure rate and the bi-modal distribution of the programming grades. Learning theories and teaching methodologies that will be reviewed will be:
- Learning Edge Momentum hypothesis
- Human Memory
- Cognitive load theory
- Mental Models and Notional Machines
- Motivation
- Teaching Methodologies such as worked examples, peer programming, algorithms, code walkthroughs, tinkering, relating computing content to other aspects of the curriculum
Based on this body of knowledge we shall try to create a teaching module for NCEA module AS91883: Develop a computer program. In compliance with the NCEA requirements the following topics will be covered:
- Sequence
- Variables and data types
- Iteration
- Selection
- Input
- Lists
- Methods
We shall be looking at the learning theories above to fine-tune the teaching of the programming topics
The manual is aimed at teachers who are new to programming or new to teaching. It also assumes that students will have no prior knowledge of programming. The teaching tool will be a Lego Mindstorms EV3 robot, running on MicroPython and Edison V2 running on EdPy.
Finally the relative merits and demerits of MicroPython and EdPy will be evaluated regarding their suitability for teaching the NCEA module and ease of migration to standard Python.
The manual will conclude with a programming assignment that would be compliant with testing the learning outcomes of AS91883.
Go to top
Summary
Programming is often perceived as challenging by students at both secondary and tertiary levels, with performance typically reflecting a bi-modal distribution. While a subset of students excels, a significant number struggle. This teaching manual seeks to address these issues by reviewing academic research on improving programming education and reducing failure rates.
The manual incorporates insights from learning theories such as Learning Edge Momentum, Human Memory, Cognitive Load Theory, Mental Models, Notional Machines, and Motivation. It also explores teaching methodologies, including worked examples, peer programming, algorithms, code walkthroughs, tinkering, and integrating computing with other curriculum areas.
With this foundation, the manual aims to develop a teaching module aligned with the NCEA AS91883 standard, covering topics such as sequence, variables and data types, iteration, selection, input, lists, and methods. These theories and methodologies will guide the instructional approach for each topic.
Designed for teachers new to programming or teaching, the manual assumes no prior programming knowledge among students. It employs Lego Mindstorms EV3 (running MicroPython) and Edison V2 (running EdPy) as teaching tools, providing practical and engaging ways to introduce programming concepts.
The manual evaluates the suitability of MicroPython and EdPy for the NCEA module, focusing on their potential for transitioning to standard Python. It concludes with a programming assignment that aligns with the learning outcomes of AS91883, ensuring students can demonstrate their understanding effectively.
Programming is often perceived as challenging by students at both secondary and tertiary levels, with performance typically reflecting a bi-modal distribution. While a subset of students excels, a significant number struggle. This teaching manual seeks to address these issues by reviewing academic research on improving programming education and reducing failure rates.
The manual incorporates insights from learning theories such as Learning Edge Momentum, Human Memory, Cognitive Load Theory, Mental Models, Notional Machines, and Motivation. It also explores teaching methodologies, including worked examples, peer programming, algorithms, code walkthroughs, tinkering, and integrating computing with other curriculum areas.
With this foundation, the manual aims to develop a teaching module aligned with the NCEA AS91883 standard, covering topics such as sequence, variables and data types, iteration, selection, input, lists, and methods. These theories and methodologies will guide the instructional approach for each topic.
Designed for teachers new to programming or teaching, the manual assumes no prior programming knowledge among students. It employs Lego Mindstorms EV3 (running MicroPython) and Edison V2 (running EdPy) as teaching tools, providing practical and engaging ways to introduce programming concepts.
The manual evaluates the suitability of MicroPython and EdPy for the NCEA module, focusing on their potential for transitioning to standard Python. It concludes with a programming assignment that aligns with the learning outcomes of AS91883, ensuring students can demonstrate their understanding effectively.
Go to top
Programming Assignment
This assignment is designed to help you explore the challenges and strategies involved in teaching programming effectively. It consists of both theoretical and practical components to enhance your understanding and skills. Follow the instructions carefully and complete all tasks provided.
The first part of the assignment focuses on short answer questions. You are required to explain the concept of a bi-modal distribution in programming grades and its implications for student learning. Additionally, you will describe two learning theories discussed in the manual that can help address teaching challenges. You are also expected to identify three teaching methodologies mentioned in the manual and explain how each can improve programming instruction. Furthermore, you will explore the significance of aligning the teaching module with the NCEA AS91883 standard and discuss the advantages of using Lego Mindstorms EV3 and Edison V2 robots as teaching tools for programming.
The second part of the assignment involves a practical task. You will use either a Lego Mindstorms EV3 running MicroPython or an Edison V2 running EdPy to write a simple program that navigates a square path. The program should include instructions for moving the robot forward a fixed distance, making a 90-degree turn, and repeating this sequence four times to complete the square. Ensure that your code is well-structured and includes appropriate comments to enhance readability and understanding.
After completing the practical task, you will write a short reflection of 200–300 words. In your reflection, discuss any difficulties you encountered while programming the robot and evaluate how the teaching tools (EV3 or Edison) supported or hindered your learning process. Additionally, suggest potential improvements to the teaching methodologies based on your experience with these tools.
To complete the assignment, submit your answers to the short answer questions in a document format, such as Word or PDF. Upload your robot programming code as a text file or a screenshot of your code editor. Include your reflection as part of the document or as a separate file. Ensure all components are submitted by the specified deadline.
This assignment encourages a combination of theoretical understanding and practical application. It aims to foster critical thinking and hands-on experience, providing an opportunity to engage deeply with the principles of programming education and its challenges.
Go to top