Dr Chao Mbogo (KeMU), Professor Edwin Blake (UCT), and Associate Professor Hussein Suleman (UCT) A presentation at the 21st Annual Conference on Innovation and Technology in Computer Science Education (ITiCSE 2016) 11th – 13th July in Arequipa, Peru
Computer programming is a difficult subject, especially for novice learners.
Novice learners can be supported to learn programming while they are outside
the classroom.
Introduction
2
The constructivist theory supports the notion of support while a learner is learning by doing.
Introduction
3
Scaffolding refers to support provided so that learners can engage in activities that would otherwise be beyond their unassisted efforts.
Introduction
4
Graph showing percentage of respondents (Ghana N=2051, Kenya = 2000) who have the item at home in working order Source of Data: (Bowen & Goldstein) Introduction
Mobile phones are the most widely used mobile devices among learners in developing countries (Kyafulilo, 2012). 5
Limitations of mobile phones, such as a small screen size and a small keypad, impede their use as typical programming environments. Challenges faced by learners of programming should be considered.
Introduction
6
Poor infrastructure and facilities is one of the major challenges faced by higher
education in Africa (Traxler, 2014) (Apiola, 2011).
Studies have investigated the use of mobile technology and social media to support
learning of programming through discussions (Maleko, 2014).
There exists some mobile programming environments:
AppInventor SAND IDE Related Work
TouchDevelop 7
Programming environments on mobile phones for learning Java could include scaffolding techniques that are specifically designed for mobile phones, and designed based on learners’ needs.
Design
8
Scaffolding should be designed with some essential character that provides mandatory scaffolding to support learners. This is ‘Static Scaffolding’. Static scaffolding techniques were designed based on a theoretical scaffolding framework and elicited learners’ needs (from a survey with 160 learners in three universities)*. The scaffolding framework provided two strategies for static scaffolding: (i) providing visual organizers in order to give access to functionality; and (ii) constraining the space of activities. *Mbogo, C., Blake, E. & Suleman, H., 2014. Supporting the Construction of Programs on a Mobile Device: A Scaffolding Framework. In Proceedings of 4th International Conference on M4D Mobile Communication for Development. Dakar, Senegal, p. 155. Available at: http://people.cs.uct.ac.za/~edwin/MyBib/2014-m4d.pdf [Accessed March 11, 2014].
Design
9
Design
10
Experiment
One Two
Methodology
Institution UWC JKUAT KeMU JKUAT
Number of learners 14 13 13 24
11
1. Write a program that initialises x to 10 and prints out its double value. Save this program as XValue.java 2. Using a for-loop print the first 10 natural numbers. Save this program as Natural.java 3. Write a program that accepts input from the user and displays this as “Your input is “ + input. Save this program as Natural.java 4. Write a program that uses a method input() to capture and display the names of two students. Save this program as MethSt.java
Data Collection Methods: • Google Analytics. • Questionnaires.
5. Write a program that creates two classes. The second class contains the constructor below. Access this constructor from the main class Output() { System.out.println (“Constructor called”); } 6. Write a program that uses a for-loop within a method avg() to calculate the sum of the numbers 20-100 and displays the sum. Call this method from the main method. Methodology
12
Goal: To measure the use of static scaffolding techniques to construct Java programs
on a mobile phone.
Based on CIAO model and M3 (Micro-Meso-Macro) Evaluation Frameworks.
Evaluation Metric
Definition
Specific Metrics
Task Success
- Measure in/completeness.
-
Use of static scaffolding techniques.
- How learners used the static scaffolds.
- Use of static scaffolds on complete and incomplete programs. - Progression of use. - Learner behavior.
Qualitative feedback
- Self reported data.
- Learners’ perceptions.
Evaluation
Tasks attempted. Tasks not attempted. Tasks completed. Tasks not completed.
13
Experime Institution nt
One
Two
Results
Task 1
Task 2
Task 3
Task 4
Task 5
Task 6
A
C
A
C
A
C
A
C
A
C
A
C
UWC
14
12
10
7
6
3
2
0
0
0
0
0
JKUAT
13
9
10
5
5
1
2
1
1
0
0
0
KeMU
13
9
11
8
7
5
1
0
0
0
0
0
JKUAT
24
18
19
17
20
12
12
7
6
3
5
3
14
UWC- JKUA KeMU- JKUA 1 T-1 2 T-2
incomplete completed
incomplete completed incomplete completed incomplete completed 0 5 10 15 Average use per learner across all the programming tasks editing program one part at a time
Results
20
program overview 15
Task Task Task Task Task Task 1 2 3 4 5 6
incomplete completed incomplete completed incomplete completed incomplete completed incomplete completed incomplete completed 0
Results
2 4 6 8 10 12 14 16 Average use per learner in all tasks at JKUAT-2 editing program one part at a time program overview
18
20
16
Learners found static scaffolding alone (in comparison to user-
initiated or automatic scaffolding) sufficient to construct programs. Observed Learner Behavior Pattern Learners who made at most two attempts before completing each program part used only static scaffolding. Rejected the use of an automatic scaffold such as an example and opted to use the provided static scaffolds alone.
Learners were able to go directly to the part of the program that contained the erroneous code by easily accessing it through the program layout at the main interface. Results
17
‘The application divides the program or code into sections then one can then track and write the code properly by following the sections.’ ‘The sections are well laid out.’ ‘The separate segments of program are useful.’
‘How the codes are divided into chunks making the application easier to use.’ ‘The chunks made it easier to construct the program.’
Results
18
Use of scaffolding techniques on a mobile programming environment
should be accompanied with classroom learning (use of desktop IDEs). The benefits of a static scaffolding technique such as completing a program one part at a time may not have been achieved if such as scaffolding technique was optional. One of the main criticisms of the constructivist approach is that learners are expected to construct new knowledge with minimal guidance:
Learning programming-by-doing on such small devices can be supported
by providing some static scaffolding techniques that are always present.
Use the devices that the learners already have and design applications
that consider both the limitations of the available devices and learners’ needs.
Conclusion
19
Studying the limitations of the interface during the use of more
complex programs and if and how this might influence design of additional scaffolding techniques.
A comparative study with a desktop programming environment (with
and without scaffolding).
A study involving pre-test and post-test analysis in order to test if
learners gained programming skills.
Learners use the static scaffolding over an extended period of time. Conclusion
20
Thank you! Questions and Comments?
[email protected]
21