430 likes | 584 Views
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
E N D
Programming learning: difficulties and support tools António José Mendes – University of Coimbra
Portugal Vilnius - August 2010
Coimbra Vilnius - August 2010
University of Coimbra Vilnius - August 2010
Our research center • CISUC – Centro de Informática e SistemasdaUniversidade de Coimbra • Cognitiveand Media Systems • AdaptiveComputing • Software andSystemsEngineering • CommunicationsandTelematics • InformationSystems • EvolutionaryandComplexSystems Vilnius - August 2010
Our group • Cognitive and Media Systems • Knowledge & IntelligentSystemsLab • Computational Creativity and Digital Media Lab • AmbienceInteligenceLab • EducationalTechnologyLab 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 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 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 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 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 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 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 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 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) 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 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 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 Vilnius - August 2010
What we can find in literature - 1 • Mini-languages • Mini-Java, ... • Controlled development environments • BlueJ, jGRASP, ... • Solution test tools • Mooshak, ... • Microworlds • Karel, the robot, ... Vilnius - August 2010
What we can find in literature - 2 • Animation tools • http://www.cs.hope.edu/alganim/ccaa/ • Simulation tools • Algorithms (SICAS, …) • Programs (Jeliot, OOP-Anim, ...) • Collaborative tools • College, ... 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 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 Vilnius - August 2010
What we did in the past - 1 Vilnius - August 2010
What we did in the past - 2 • SICASis 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 Vilnius - August 2010
What we did in the past - 3 Simulation Variables Console Vilnius - August 2010
What we did in the past - 4 • OOP-Animis 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 Vilnius - August 2010
What we did in the past - 5 Vilnius - August 2010
But • 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 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 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 Vilnius - August 2010
What we did more recently - 1 Vilnius - August 2010
What we did more recently - 2 • 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 Vilnius - August 2010
What we did more recently - 3 Vilnius - August 2010
What we did more recently - 4 • 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 Vilnius - August 2010
What we did more recently - 5 Vilnius - August 2010
What we did more recently - 6 • 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 Vilnius - August 2010
What we did more recently - 7 Vilnius - August 2010
What we did more recently - 8 • 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 Vilnius - August 2010
What we did more recently - 9 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 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 Vilnius - August 2010
What we are doing now Vilnius - August 2010