Title: Using Alice to develop Introductory Programming Skills
1Using Alice to develop Introductory Programming
Skills
G. Eccleston, G. Brindley, R. McDermott School of
Computing The Robert Gordon University Aberdeen,
UK ge_at_comp.rgu.ac.uk
2Plan of Talk
- The Context
- The Problem
- Module Desiderata
- Alice
- Assessment
- Evaluation
- Conclusion
3The Context
- CM1010 First Programming Module in School of
Computing at RGU - Policy of Java as first language
- Semester 1 introductory programming module taken
by all students - Followed by second OOP module in semester 2
- Initial stress on correct syntax
- Subsequent emphasis on structured programming
- Not much OOP per se
- Assessed by individual coursework submission
- Introduction of new route, BSc Computing for
Graphics and Animation
4Programming How hard can it be?
- A Very Simple Java Program
// A simple Java program to display some output
on the screen. import javax.swing. public
class HelloWorld public static void main
(String args) JOptionPane.showMessageDial
og(null, "Hello World!")
5Problems
- Relatively high module failure rate
- Mitigated by progressively diminishing module
expectation - Student disengagement with the subject at an
early stage - Major implications for subsequent learning
- The Programming Problem
- Emphasis on the algorithmic aspects of
programming - Not suitable for our student cohort
- Didnt make useful contact with their prior
experience - Too mathematical
- What to do?
6Module Desiderata
- Should be engaging (graphics, animation?)
- Conceptual model must make contact with students
prior experience in a positive way - (metaphor vs paradigm).
- Should be syntactically forgiving
- Should allow observable skill progression
- Should introduce basic OO vocabulary, e.g. class,
instance, method, - Should allow smooth transition to more
conventional code-based development environment
(BlueJ)
7Assessment Objectives
- Should allow assessment that was consonant with
the above framework - Should facilitate open-ended, divergent
assessment - Students should be able to negotiate aspects of
assessment - Should reduce the assessment burden
- Portfolio-based, from weekly lab exercises
- Group Project
8Alice 2.0
- Microworld-type environment developed by Carnegie
Mellon University - Users create objects in a virtual 3D world
- Code assembled using mouse to select program
building blocks - Then drag-and-drop them into place
- Prevents students from making syntax errors.
Textbook by W. Dann, S. Cooper, R. Pausch Also
work by C. Kelleher R. Pausch Ideas on metaphor
9Alice 2.0
- Facilitates a change of programming metaphor from
algorithmic execution to that of storytelling and
control - Scenarios and storyboards
- Program run as an animation
- provides immediate feedback.
- straightforward to see the impact of a
programming statement. - And its FREE!!!
10Advantages of Alice 2.0
- Allows students to learn computer programming
more easily - Drag-and-Drop editor for creating programs
- Programs are 3D movies or games
- Alice has been formally shown to improve learning
and retention - Alice is highly motivating for students
- Provided free (open source) by Carnegie Mellon
- Runs on
11Creating a new world
- Create a new world
- File ? New
- Choose template
12Techniques and Tools
- Mouse is used to
- approximately position objects in the scene
- Camera Navigation is used to
- set the camera point of view
- Drop-down menu methods are used to
- resize objects
- more precisely position objects in the scene
- Quadview is used to
- position one object relative to another object
13Objects
- An "object" is
- any thing that can be identified as unique
from other things - How is an object unique?
- has a name
- has properties
- width, height, colour, location
- can perform actions (methods)
- associated actions it can perform
- tasks it can carry out
14Objects are more real
15Three Basic Activities in Alice
- 1. Scene layout 2. Editing programs
- 3. Running programs
16Tutorials in-built
17(No Transcript)
18The Work Area
19Objects
- Objects come equipped with
- Standard Properties
- colour, opacity, vehicle, texture,
- Standard Methods
- move, turn, roll, resize, say, think, play
sound, move to/toward/away from, orient to, turn
to face, - Standard Functions
- Proximity functions, size, spatial relations,
point of view, - User can create own functions, variables,
methods, for objects - Inheritance (sort of!)
20Adding Objects
21Program Blocks
- Alice has Program Action blocks
- Do In Order sequential execution
- Do Together concurrent execution
- If/Else selection control structure
- Loop definite loops
- While indefinite loops
- For All In Order sequential iteration through
list/array - For All Together concurrent iteration through
list/array - Wait delays execution
- Print text output
- // comments
22Design and Implementation
- Stages
- The Scenario
- The Storyboard of Scenes Subscenes
- graphical
- textual
- Stepwise refinement to pseudocode
- Implementation (code assembly)
- Testing
- running the animation
- checking appropriate interactivity
23The Assessment
- Portfolio
- Group Project
- Based on a user-specified story e.g. adaptation
of a film, music video, computer game, fairytale
or own story. - Assessment specified each individual scene had to
contain - Separate sub-scenes,
- A user-created class
- At least 2 user-created methods
- At least 1 user-created function
- Variables, parameter passing, and keyboard- or
mouse-driven interactions,
24Evaluation
- Much greater student engagement
- Storytelling metaphor did indeed resonate with
students more than the more formal idea of an
algorithm - Clear development of proficiency over semester
- Students did more design prior to coding
- (though still not enough!)
- Evidence of testing
- Introduced to OO vocabulary and limited
application
25But
- By the end of the module, students were operating
at limits of software operation - Software bugs
- Concurrency slowdown
- Transition to semester 2 Java-based IDE (BlueJ)
has been challenging. - Students seemed to cope well with syntax
requirements - Problems with the Alice object model
- Alice is Prototype-based Language rather than OO
Language - Leads to some confusion about OO concepts
26Conclusions
- Good engaging, empowering experience for
students - Positive end-of-module feedback from Students
- Higher module pass rate
- Especially good for at-risk students
- Basic understanding of storytelling metaphor by
students -
- Lack of code-writing facility problematic
- Still run up against the algorithm problem in
follow-up module. - The Alice trial has been successful but further
work needs to be done on the transition to
(BlueJ) Java
27Future Development
- Integrated Foundation year
- Group work
- Supplementary work in other modules to support
programming module - More managed control of group project/portfolio
- Preparation for new version of Alice
- due January 2008?
- Develop link to BlueJ
28Look more closely at the java codeAlice code
Java code
29Alice 3.0 Sims
- Being developed by Electronic Arts and Carnegie
Mellon University - Based on Sims characters
30(No Transcript)