programming learning: difficulties and support tools

42
PROGRAMMING LEARNING: DIFFICULTIES AND SUPPORT TOOLS António José Mendes – University of Coimbra

Upload: kenyon-anderson

Post on 31-Dec-2015

34 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: Programming learning: difficulties and support tools

PROGRAMMING LEARNING: DIFFICULTIES AND SUPPORT TOOLSAntónio José Mendes – University of Coimbra

Page 2: Programming learning: difficulties and support tools

Portugal2

Vilnius - August 2010

Page 3: Programming learning: difficulties and support tools

Coimbra3

Vilnius - August 2010

Page 4: Programming learning: difficulties and support tools

University of Coimbra4

Vilnius - August 2010

Page 5: Programming learning: difficulties and support tools

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

Page 6: Programming learning: difficulties and support tools

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

Page 7: Programming learning: difficulties and support tools

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

Page 8: Programming learning: difficulties and support tools

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

Page 9: Programming learning: difficulties and support tools

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

Page 10: Programming learning: difficulties and support tools

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

Page 11: Programming learning: difficulties and support tools

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

Page 12: Programming learning: difficulties and support tools

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

Page 13: Programming learning: difficulties and support tools

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

Page 14: Programming learning: difficulties and support tools

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

Page 15: Programming learning: difficulties and support tools

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

Page 16: Programming learning: difficulties and support tools

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

Page 17: Programming learning: difficulties and support tools

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

Page 18: Programming learning: difficulties and support tools

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

Page 19: Programming learning: difficulties and support tools

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

Page 20: Programming learning: difficulties and support tools

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

Page 21: Programming learning: difficulties and support tools

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

Page 22: Programming learning: difficulties and support tools

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

Page 23: Programming learning: difficulties and support tools

Vilnius - August 2010

23

Program

Control

Output

AnimationProgram

Control

Output

Animation

What we did in the past - 1

Page 24: Programming learning: difficulties and support tools

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

Page 25: Programming learning: difficulties and support tools

Vilnius - August 2010

25

Simulation

Variables

Console

What we did in the past - 3

Page 26: Programming learning: difficulties and support tools

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

Page 27: Programming learning: difficulties and support tools

Vilnius - August 2010

27

Program

Control

Output

AnimationProgram

Control

Output

Animation

What we did in the past - 5

Page 28: Programming learning: difficulties and support tools

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

Page 29: Programming learning: difficulties and support tools

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

Page 30: Programming learning: difficulties and support tools

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

Page 31: Programming learning: difficulties and support tools

Vilnius - August 2010

31

What we did more recently - 1

Page 32: Programming learning: difficulties and support tools

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

Page 33: Programming learning: difficulties and support tools

Vilnius - August 2010

33

What we did more recently - 3

Page 34: Programming learning: difficulties and support tools

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

Page 35: Programming learning: difficulties and support tools

Vilnius - August 2010

35

What we did more recently - 5

Page 36: Programming learning: difficulties and support tools

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

Page 37: Programming learning: difficulties and support tools

Vilnius - August 2010

37

What we did more recently - 7

Page 38: Programming learning: difficulties and support tools

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

Page 39: Programming learning: difficulties and support tools

Vilnius - August 2010

39

What we did more recently - 9

Sessionpanel

Groupstate

Compilation/ Executionconsole

Edition area

Editionstate

Tele-pointer

Structuredchat

Page 40: Programming learning: difficulties and support tools

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

Page 41: Programming learning: difficulties and support tools

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

Page 42: Programming learning: difficulties and support tools

Vilnius - August 2010

42

What we are doing now