programming learning: difficulties and support tools
DESCRIPTION
Programming learning: difficulties and support tools. António José Mendes – University of Coimbra. Portugal. Coimbra. University of Coimbra. Our research center. CISUC – Centro de Informática e Sistemas da Universidade de Coimbra Cognitive and Media Systems Adaptive Computing - PowerPoint PPT PresentationTRANSCRIPT
PROGRAMMING LEARNING: DIFFICULTIES AND SUPPORT TOOLSAntónio José Mendes – University of Coimbra
Portugal2
Vilnius - August 2010
Coimbra3
Vilnius - August 2010
University of Coimbra4
Vilnius - August 2010
Our research center
CISUC – Centro de Informática e Sistemas da Universidade de Coimbra Cognitive and Media Systems Adaptive Computing Software and Systems Engineering Communications and Telematics Information Systems Evolutionary and Complex Systems
5
Vilnius - August 2010
Our group
Cognitive and Media Systems Knowledge & Intelligent Systems Lab Computational Creativity and Digital Media
Lab Ambience Inteligence Lab Educational Technology Lab
6
Vilnius - August 2010
Our Lab
The main themes Computer Science Education Simulation-based Educational Systems Collaborative and Social Learning
Environments The (current) team
3 PhD 7 PhD students (one waiting to defend) 1 MSc student 1 BSc student
7
Vilnius - August 2010
Summary
The problem The difficulties What we can find in the literature What we did in the past What we did more recently What we are doing now
8
Vilnius - August 2010
Summary
The problem The difficulties What we can find in the literature What we did in the past What we did more recently What we are doing now
9
Vilnius - August 2010
The problem - 1
Learning programming is difficult, no matter the language and/or paradigm used Incapacity to create an algorithm to solve a
given problem Difficulties to detect logical errors in their own
code Misconceptions about basic concepts
Low success rates even for Computer Science students
Complaints from other courses teachers
10
Vilnius - August 2010
The problem - 2 Learning programming requires both
knowledge and skill Teaching methodologies often fail to help students
develop abilities in programming practice Maybe, to a certain degree, programming
should be considered a skill-based or artistic discipline There is a parallel with musical instrument learning Practice based, but few reach a high proficiency
level Some learners develop quickly and show
“ability” while others seem unable to move beyond the basics
11
Vilnius - August 2010
Summary
The problem The difficulties What we can find in the literature What we did in the past What we did more recently What we are doing now
12
Vilnius - August 2010
Summary
The problem The difficulties What we can find in the literature What we did in the past What we did more recently What we are doing now
13
Vilnius - August 2010
The difficulties - 1
Student’s backgrounds and attitudes Several programming levels and learning styles
in the same class Used to memorization and to solve problems
using formulas Low curiosity and incapacity to take
programming difficulties as personal challenges “Minimum effort law” Errors are often seen as a problem and not as
learning opportunities Inadequate study strategies
14
Vilnius - August 2010
The difficulties - 2
The subject High abstraction level Essentially a problem solving subject Language syntaxes are complex (were created
to professionals) IDEs don’t ease error detection (especially
logical errors)
15
Vilnius - August 2010
The difficulties - 3
The teaching Traditional classes have low impact in
student’s abilities to solve problems Individualization is very difficult due to class
sizes It is difficult to help students to overcome their
difficulties Static learning materials are still central in
many courses
16
Vilnius - August 2010
Summary
The problem The difficulties What we can find in the literature What we did in the past What we did more recently What we are doing now
17
Vilnius - August 2010
Summary
The problem The difficulties What we can find in the literature What we did in the past What we did more recently What we are doing now
18
Vilnius - August 2010
19
Mini-languages Mini-Java, ...
Controlled development environments BlueJ, jGRASP, ...
Solution test tools Mooshak, ...
Microworlds Karel, the robot, ...
What we can find in literature - 1
Vilnius - August 2010
Animation tools http://www.cs.hope.edu/alganim/ccaa/
Simulation tools Algorithms (SICAS, …) Programs (Jeliot, OOP-Anim, ...)
Collaborative tools College, ...
20
Vilnius - August 2010
What we can find in literature - 2
Summary
The problem The difficulties What we can find in the literature What we did in the past What we did more recently What we are doing now
21
Vilnius - August 2010
Summary
The problem The difficulties What we can find in the literature What we did in the past What we did more recently What we are doing now
22
Vilnius - August 2010
Vilnius - August 2010
23
Program
Control
Output
AnimationProgram
Control
Output
Animation
What we did in the past - 1
Vilnius - August 2010
24
SICAS is a system to support learning of basic programming concepts, such as selection and repetition
It has features designed to help students visualize how their own programs work, allowing them to find and correct errors that may exist
What we did in the past - 2
Vilnius - August 2010
25
Simulation
Variables
Console
What we did in the past - 3
Vilnius - August 2010
26
OOP-Anim is a system to support learning of basic object oriented programming concepts
It shares the same pedagogical foundations of SICAS
It has features designed to help students visualize how their own object oriented programs work, allowing them to find and correct errors that may exist
What we did in the past - 4
Vilnius - August 2010
27
Program
Control
Output
AnimationProgram
Control
Output
Animation
What we did in the past - 5
Vilnius - August 2010
28
Our experience shows that animation based simulation tools are useful to many students
But some students fail to take full advantage as they are unable to create a first solution (even wrong) to a proposed problem
But
Summary
The problem The difficulties What we can find in the literature What we did in the past What we did more recently What we are doing now
29
Vilnius - August 2010
Summary
The problem The difficulties What we can find in the literature What we did in the past What we did more recently What we are doing now
30
Vilnius - August 2010
Vilnius - August 2010
31
What we did more recently - 1
Vilnius - August 2010
32
PESEN is a simple tool that introduces programming concepts in a very basic environment
Students have to program movements of simple shapes through basic commands, including repetiton and selection
What we did more recently - 2
Vilnius - August 2010
33
What we did more recently - 3
Vilnius - August 2010
34
ProGuide works together with SICAS, interacting with students during algorithm development, guiding them when necessary
It is a dialogue-based tool that helps novice programmers to solve problems using text based communication
When students are creating an algorithm, ProGuide monitors their actions (or lack of action) and interacts with them, trying to provide some guidance whenever necessary
What we did more recently - 4
Vilnius - August 2010
35
What we did more recently - 5
Vilnius - August 2010
36
SICAS-COL is a result of our collaboration with Universidad de Castilla-La Mancha (UCLM)
It is a collaborative tool that results from the integration of SICAS with dialogue tools included in DOMOSIM-TPC
Supports distributed group work in the design of solutions to basic programming problems
What we did more recently - 6
Vilnius - August 2010
37
What we did more recently - 7
Vilnius - August 2010
38
COLLEGE is a Real-Time Collaborative Programming tool developed by UCLM with some collaboration from our side
It allows geographically distributed programmers to work concurrently and collaboratively on the same programming task (edition, compilation and execution)
Students that work in groups need to communicate, argue and give opinions to other group members, encouraging reflection and learning
What we did more recently - 8
Vilnius - August 2010
39
What we did more recently - 9
Sessionpanel
Groupstate
Compilation/ Executionconsole
Edition area
Editionstate
Tele-pointer
Structuredchat
Summary
The problem The difficulties What we can find in the literature What we did in the past What we did more recently What we are doing now
40
Vilnius - August 2010
Summary
The problem The difficulties What we can find in the literature What we did in the past What we did more recently What we are doing now
41
Vilnius - August 2010
Vilnius - August 2010
42
What we are doing now