SlideShare ist ein Scribd-Unternehmen logo
1 von 40
Improving Engagement of
Students in Software
Engineering
E R A S M U S + Project 2017-1-NL01-KA203-035259
Tanja E. J. Vos
Open Universiteit
Universidad Politecnica de Valencia
https://impress-project.eu/
An EU-funded project aiming at improving students’
engagement in Software Engineering courses through
gamification.
https://impress-project.eu/
: about the project
Software is
everywhere
Failing software is everywhere
2017 stats effects:
(3.7 billion people)
$1.7 trillion in assets
Consequences of failing software get
worse
Software engineering stakeholders
* Customers want to have quality products
* Bosses want to make money
* Engineers want to program wonders
Software engineering stakeholders
* Customers want to have quality products
* Bosses want to make money
* Engineers want to program wonders
What should we teach
students?
Teaching/learning programming is fun
* Create something!
* Solve puzzles!
* See it work!
* Different solutions
Pex (Microsoft)
Scratch
Lego
Software engineering
* Customers want to have quality products
* Bosses want to make money
* Engineers want to program wonders
But…… engineers should not only program
They also need to test the modules they build
... and invest in formalizing the modules’
specification
Not only programming…
we need to teach software engineering
* waterfall, iterative, agile
* requirements, architecture, ….
* 14 UML diagram types
* 23 design patterns
* over 80 refactorings
* Testing
* Security
* ….
* …
* …
Forexample
Forexample
IMPRESS
• Can gamification improve the engagement in SE
courses?
• Different level of gamification:
• Gamified class room SE quizzes
• SE education games
• Two additional aspects: integrated analytics and
AI/automation to reduce teachers’ effort.
Quizzes
kahoot.it
https://play.kahoot.it/#/?quizId=3a549d3a-c964-47d5-ad6c-c80f01964206
IMPRESS result 1
Quizzes on:
* Testing
* Introduction Software Engineering
* Security
* Formal specifications
* Java programming
* Software architecture
Games to learn testing
code-defenders.org
int abs(int x) {
if (x >= 0)
return x;
else
return -x;
}
int abs(int x) {
if (x >= 0)
return x;
else
return -x;
}
@Test
void testAbs() {
int res = abs(42);
assertEquals(42,
res);
}
Mutation Testing1970’s — DeMillo (Georgia Tech), Lipton (Princeton), Sayward (Yale)
int abs(int x) {
if (x >= 0)
return x;
else
return -x;
}
int abs(int x) {
if (x >= 0)
return x;
else
return -x;
}
@Test
void testAbs() {
int res = abs(42);
assertEquals(42,
res);
}
int abs(int x) {
if (x <= 0)
return x;
else
return -x;
}
Mutation Testing1970’s — DeMillo (Georgia Tech), Lipton (Princeton), Sayward (Yale)
int abs(int x) {
if (x >= 0)
return x;
else
return -x;
}
int abs(int x) {
if (x >= 0)
return x;
else
return -x;
}
@Test
void testAbs() {
int res = abs(42);
assertEquals(42,
res);
}
int abs(int x) {
if (x >= 0)
return x;
else
return +x;
}
Mutation Testing1970’s — DeMillo (Georgia Tech), Lipton (Princeton), Sayward (Yale)
@Test
void testAbs() {
int res = abs(42);
assertEquals(42,
res);
}
int abs(int x) {
if (x >= 0)
return x;
else
return -x;
}
int abs(int x) {
if (x >= 0)
return x;
else
return -x;
}
@Test
void test() {
??
}
int abs(int x) {
if (x >= 0)
return x;
else
return +x;
}
Mutation Testing1970’s — DeMillo (Georgia Tech), Lipton (Princeton), Sayward (Yale)
public class Arithmetics {
public int abs(int x) {
if (x < 0)
return x;
else
return -x;
}
}
Attackers
public class TestArithmetics {
@Test
public void testAbs() {
Arithmetics a;
a = new Arithmetics();
assertEquals(1, a.abs(-1));
}
}
Defenders
public class Arithmetics {
public int abs(int x) {
if (x >= 0)
return x;
else
return -x;
}
}
Class Under Test
Code Defenders
Score points for
surviving mutants
Score points for
effective tests
Equivalent Mutant Duels
no way! here is
a killing test!
equivalent
!
equivalent!
oh no! :(
Multi-player
Two-player
vs.
Code Defenders
0 20 40 60 80
I enjoyed playing Code
Defenders
Writing unit tests is more fun in
the game than during coding
I learned/practiced useful skills
Fully agree Partially agree
Neither agree nor disagree Partially disagree
Survey
Open Challenges
• Communication mechanism to foster collaboration
• Many opportunities to spice up gameplay
• Integrating more technologies (GUI, concurrency, etc.)
• Analysis for grading and intervention
• …
code-defenders.org
IMPRESS result 2
Games to learn to write formal specifications
Informal specifications…. source of
bugs..
A lesson in writing formal specifications
* We can write simple expressions:
* constants like 1,2,3
* identifiers like x,y,Students
* properties, e.g. x.age, y.goal
* e1 ⊗ e2 where ⊗ is + , - , * , = , > , ≥ , < , ≤ , ∈
* A simple formula is a simple expression of type Boolean
A lesson in writing formal specifications
* A formula is either:
* a simple formula
* ∀identifier∈simple-expression● formula
* ∃identifier∈simple-expression● formula )
* For example:
* ∀x∈Students● x.age ≥ 16
* ∃x∈Students● x.age = 16
A lesson in writing formal specifications
Let us
kahoot.it
https://play.kahoot.it/#/k/fef8e9b9-d851-4823-95ab-4cac2ad10b45
In production: Formal-Z game
* a game to train student to write formal specifcations interpretable in
Java
* will lean more towards the “engagement” aspect
* https://git.science.uu.nl/impresshs/javawlp
From tower defense to computer defense
The concept of Fomal-Z
IMPRESS result 3
future work
* Education quizzes and games for Software
Engineering, experimenting with the balance
between “seriousness” and “excitement”.
* Data analytics.
* Studying these innovations in actual class rooms.

Weitere ähnliche Inhalte

Ähnlich wie Improving Engagement of Students in Software Engineering Courses through Gamification

Csise15 codehunt
Csise15 codehuntCsise15 codehunt
Csise15 codehuntTao Xie
 
Compiler Case Study - Design Patterns in C#
Compiler Case Study - Design Patterns in C#Compiler Case Study - Design Patterns in C#
Compiler Case Study - Design Patterns in C#CodeOps Technologies LLP
 
Gamifying Teaching and Learning of Software Engineering and Programming
Gamifying Teaching and Learning of Software Engineering and ProgrammingGamifying Teaching and Learning of Software Engineering and Programming
Gamifying Teaching and Learning of Software Engineering and ProgrammingTao Xie
 
Yoyak ScalaDays 2015
Yoyak ScalaDays 2015Yoyak ScalaDays 2015
Yoyak ScalaDays 2015ihji
 
Declare Your Language: Dynamic Semantics
Declare Your Language: Dynamic SemanticsDeclare Your Language: Dynamic Semantics
Declare Your Language: Dynamic SemanticsEelco Visser
 
Python week 2 2019 2020 for g10 by eng.osama ghandour
Python week 2 2019 2020 for g10 by eng.osama ghandourPython week 2 2019 2020 for g10 by eng.osama ghandour
Python week 2 2019 2020 for g10 by eng.osama ghandourOsama Ghandour Geris
 
How to write clean & testable code without losing your mind
How to write clean & testable code without losing your mindHow to write clean & testable code without losing your mind
How to write clean & testable code without losing your mindAndreas Czakaj
 
Test-Driven Design Insights@DevoxxBE 2023.pptx
Test-Driven Design Insights@DevoxxBE 2023.pptxTest-Driven Design Insights@DevoxxBE 2023.pptx
Test-Driven Design Insights@DevoxxBE 2023.pptxVictor Rentea
 

Ähnlich wie Improving Engagement of Students in Software Engineering Courses through Gamification (20)

10.ppt
10.ppt10.ppt
10.ppt
 
Csise15 codehunt
Csise15 codehuntCsise15 codehunt
Csise15 codehunt
 
Compiler Case Study - Design Patterns in C#
Compiler Case Study - Design Patterns in C#Compiler Case Study - Design Patterns in C#
Compiler Case Study - Design Patterns in C#
 
Gamifying Teaching and Learning of Software Engineering and Programming
Gamifying Teaching and Learning of Software Engineering and ProgrammingGamifying Teaching and Learning of Software Engineering and Programming
Gamifying Teaching and Learning of Software Engineering and Programming
 
American sign language recognizer
American sign language recognizerAmerican sign language recognizer
American sign language recognizer
 
Yoyak ScalaDays 2015
Yoyak ScalaDays 2015Yoyak ScalaDays 2015
Yoyak ScalaDays 2015
 
Declare Your Language: Dynamic Semantics
Declare Your Language: Dynamic SemanticsDeclare Your Language: Dynamic Semantics
Declare Your Language: Dynamic Semantics
 
Java Basics - Part1
Java Basics - Part1Java Basics - Part1
Java Basics - Part1
 
Python week 2 2019 2020 for g10 by eng.osama ghandour
Python week 2 2019 2020 for g10 by eng.osama ghandourPython week 2 2019 2020 for g10 by eng.osama ghandour
Python week 2 2019 2020 for g10 by eng.osama ghandour
 
L10
L10L10
L10
 
Effective Object Oriented Design in Cpp
Effective Object Oriented Design in CppEffective Object Oriented Design in Cpp
Effective Object Oriented Design in Cpp
 
Synopsis tic tac toe
Synopsis tic tac toeSynopsis tic tac toe
Synopsis tic tac toe
 
C#, What Is Next?
C#, What Is Next?C#, What Is Next?
C#, What Is Next?
 
Lab # 1
Lab # 1Lab # 1
Lab # 1
 
Python week 1 2020-2021
Python week 1 2020-2021Python week 1 2020-2021
Python week 1 2020-2021
 
How to write clean & testable code without losing your mind
How to write clean & testable code without losing your mindHow to write clean & testable code without losing your mind
How to write clean & testable code without losing your mind
 
Raising the Bar
Raising the BarRaising the Bar
Raising the Bar
 
Tdd is not about testing
Tdd is not about testingTdd is not about testing
Tdd is not about testing
 
Python slide
Python slidePython slide
Python slide
 
Test-Driven Design Insights@DevoxxBE 2023.pptx
Test-Driven Design Insights@DevoxxBE 2023.pptxTest-Driven Design Insights@DevoxxBE 2023.pptx
Test-Driven Design Insights@DevoxxBE 2023.pptx
 

Mehr von Facultad de Informática UCM

¿Por qué debemos seguir trabajando en álgebra lineal?
¿Por qué debemos seguir trabajando en álgebra lineal?¿Por qué debemos seguir trabajando en álgebra lineal?
¿Por qué debemos seguir trabajando en álgebra lineal?Facultad de Informática UCM
 
TECNOPOLÍTICA Y ACTIVISMO DE DATOS: EL MAPEO COMO FORMA DE RESILIENCIA ANTE L...
TECNOPOLÍTICA Y ACTIVISMO DE DATOS: EL MAPEO COMO FORMA DE RESILIENCIA ANTE L...TECNOPOLÍTICA Y ACTIVISMO DE DATOS: EL MAPEO COMO FORMA DE RESILIENCIA ANTE L...
TECNOPOLÍTICA Y ACTIVISMO DE DATOS: EL MAPEO COMO FORMA DE RESILIENCIA ANTE L...Facultad de Informática UCM
 
DRAC: Designing RISC-V-based Accelerators for next generation Computers
DRAC: Designing RISC-V-based Accelerators for next generation ComputersDRAC: Designing RISC-V-based Accelerators for next generation Computers
DRAC: Designing RISC-V-based Accelerators for next generation ComputersFacultad de Informática UCM
 
Tendencias en el diseño de procesadores con arquitectura Arm
Tendencias en el diseño de procesadores con arquitectura ArmTendencias en el diseño de procesadores con arquitectura Arm
Tendencias en el diseño de procesadores con arquitectura ArmFacultad de Informática UCM
 
Introduction to Quantum Computing and Quantum Service Oriented Computing
Introduction to Quantum Computing and Quantum Service Oriented ComputingIntroduction to Quantum Computing and Quantum Service Oriented Computing
Introduction to Quantum Computing and Quantum Service Oriented ComputingFacultad de Informática UCM
 
Inteligencia Artificial en la atención sanitaria del futuro
Inteligencia Artificial en la atención sanitaria del futuroInteligencia Artificial en la atención sanitaria del futuro
Inteligencia Artificial en la atención sanitaria del futuroFacultad de Informática UCM
 
Design Automation Approaches for Real-Time Edge Computing for Science Applic...
 Design Automation Approaches for Real-Time Edge Computing for Science Applic... Design Automation Approaches for Real-Time Edge Computing for Science Applic...
Design Automation Approaches for Real-Time Edge Computing for Science Applic...Facultad de Informática UCM
 
Estrategias de navegación para robótica móvil de campo: caso de estudio proye...
Estrategias de navegación para robótica móvil de campo: caso de estudio proye...Estrategias de navegación para robótica móvil de campo: caso de estudio proye...
Estrategias de navegación para robótica móvil de campo: caso de estudio proye...Facultad de Informática UCM
 
Fault-tolerance Quantum computation and Quantum Error Correction
Fault-tolerance Quantum computation and Quantum Error CorrectionFault-tolerance Quantum computation and Quantum Error Correction
Fault-tolerance Quantum computation and Quantum Error CorrectionFacultad de Informática UCM
 
Cómo construir un chatbot inteligente sin morir en el intento
Cómo construir un chatbot inteligente sin morir en el intentoCómo construir un chatbot inteligente sin morir en el intento
Cómo construir un chatbot inteligente sin morir en el intentoFacultad de Informática UCM
 
Automatic generation of hardware memory architectures for HPC
Automatic generation of hardware memory architectures for HPCAutomatic generation of hardware memory architectures for HPC
Automatic generation of hardware memory architectures for HPCFacultad de Informática UCM
 
Hardware/software security contracts: Principled foundations for building sec...
Hardware/software security contracts: Principled foundations for building sec...Hardware/software security contracts: Principled foundations for building sec...
Hardware/software security contracts: Principled foundations for building sec...Facultad de Informática UCM
 
Jose carlossancho slidesLa seguridad en el desarrollo de software implementad...
Jose carlossancho slidesLa seguridad en el desarrollo de software implementad...Jose carlossancho slidesLa seguridad en el desarrollo de software implementad...
Jose carlossancho slidesLa seguridad en el desarrollo de software implementad...Facultad de Informática UCM
 
Redes neuronales y reinforcement learning. Aplicación en energía eólica.
Redes neuronales y reinforcement learning. Aplicación en energía eólica.Redes neuronales y reinforcement learning. Aplicación en energía eólica.
Redes neuronales y reinforcement learning. Aplicación en energía eólica.Facultad de Informática UCM
 
Challenges and Opportunities for AI and Data analytics in Offshore wind
Challenges and Opportunities for AI and Data analytics in Offshore windChallenges and Opportunities for AI and Data analytics in Offshore wind
Challenges and Opportunities for AI and Data analytics in Offshore windFacultad de Informática UCM
 

Mehr von Facultad de Informática UCM (20)

¿Por qué debemos seguir trabajando en álgebra lineal?
¿Por qué debemos seguir trabajando en álgebra lineal?¿Por qué debemos seguir trabajando en álgebra lineal?
¿Por qué debemos seguir trabajando en álgebra lineal?
 
TECNOPOLÍTICA Y ACTIVISMO DE DATOS: EL MAPEO COMO FORMA DE RESILIENCIA ANTE L...
TECNOPOLÍTICA Y ACTIVISMO DE DATOS: EL MAPEO COMO FORMA DE RESILIENCIA ANTE L...TECNOPOLÍTICA Y ACTIVISMO DE DATOS: EL MAPEO COMO FORMA DE RESILIENCIA ANTE L...
TECNOPOLÍTICA Y ACTIVISMO DE DATOS: EL MAPEO COMO FORMA DE RESILIENCIA ANTE L...
 
DRAC: Designing RISC-V-based Accelerators for next generation Computers
DRAC: Designing RISC-V-based Accelerators for next generation ComputersDRAC: Designing RISC-V-based Accelerators for next generation Computers
DRAC: Designing RISC-V-based Accelerators for next generation Computers
 
uElectronics ongoing activities at ESA
uElectronics ongoing activities at ESAuElectronics ongoing activities at ESA
uElectronics ongoing activities at ESA
 
Tendencias en el diseño de procesadores con arquitectura Arm
Tendencias en el diseño de procesadores con arquitectura ArmTendencias en el diseño de procesadores con arquitectura Arm
Tendencias en el diseño de procesadores con arquitectura Arm
 
Formalizing Mathematics in Lean
Formalizing Mathematics in LeanFormalizing Mathematics in Lean
Formalizing Mathematics in Lean
 
Introduction to Quantum Computing and Quantum Service Oriented Computing
Introduction to Quantum Computing and Quantum Service Oriented ComputingIntroduction to Quantum Computing and Quantum Service Oriented Computing
Introduction to Quantum Computing and Quantum Service Oriented Computing
 
Computer Design Concepts for Machine Learning
Computer Design Concepts for Machine LearningComputer Design Concepts for Machine Learning
Computer Design Concepts for Machine Learning
 
Inteligencia Artificial en la atención sanitaria del futuro
Inteligencia Artificial en la atención sanitaria del futuroInteligencia Artificial en la atención sanitaria del futuro
Inteligencia Artificial en la atención sanitaria del futuro
 
Design Automation Approaches for Real-Time Edge Computing for Science Applic...
 Design Automation Approaches for Real-Time Edge Computing for Science Applic... Design Automation Approaches for Real-Time Edge Computing for Science Applic...
Design Automation Approaches for Real-Time Edge Computing for Science Applic...
 
Estrategias de navegación para robótica móvil de campo: caso de estudio proye...
Estrategias de navegación para robótica móvil de campo: caso de estudio proye...Estrategias de navegación para robótica móvil de campo: caso de estudio proye...
Estrategias de navegación para robótica móvil de campo: caso de estudio proye...
 
Fault-tolerance Quantum computation and Quantum Error Correction
Fault-tolerance Quantum computation and Quantum Error CorrectionFault-tolerance Quantum computation and Quantum Error Correction
Fault-tolerance Quantum computation and Quantum Error Correction
 
Cómo construir un chatbot inteligente sin morir en el intento
Cómo construir un chatbot inteligente sin morir en el intentoCómo construir un chatbot inteligente sin morir en el intento
Cómo construir un chatbot inteligente sin morir en el intento
 
Automatic generation of hardware memory architectures for HPC
Automatic generation of hardware memory architectures for HPCAutomatic generation of hardware memory architectures for HPC
Automatic generation of hardware memory architectures for HPC
 
Type and proof structures for concurrency
Type and proof structures for concurrencyType and proof structures for concurrency
Type and proof structures for concurrency
 
Hardware/software security contracts: Principled foundations for building sec...
Hardware/software security contracts: Principled foundations for building sec...Hardware/software security contracts: Principled foundations for building sec...
Hardware/software security contracts: Principled foundations for building sec...
 
Jose carlossancho slidesLa seguridad en el desarrollo de software implementad...
Jose carlossancho slidesLa seguridad en el desarrollo de software implementad...Jose carlossancho slidesLa seguridad en el desarrollo de software implementad...
Jose carlossancho slidesLa seguridad en el desarrollo de software implementad...
 
Do you trust your artificial intelligence system?
Do you trust your artificial intelligence system?Do you trust your artificial intelligence system?
Do you trust your artificial intelligence system?
 
Redes neuronales y reinforcement learning. Aplicación en energía eólica.
Redes neuronales y reinforcement learning. Aplicación en energía eólica.Redes neuronales y reinforcement learning. Aplicación en energía eólica.
Redes neuronales y reinforcement learning. Aplicación en energía eólica.
 
Challenges and Opportunities for AI and Data analytics in Offshore wind
Challenges and Opportunities for AI and Data analytics in Offshore windChallenges and Opportunities for AI and Data analytics in Offshore wind
Challenges and Opportunities for AI and Data analytics in Offshore wind
 

Kürzlich hochgeladen

complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...asadnawaz62
 
welding defects observed during the welding
welding defects observed during the weldingwelding defects observed during the welding
welding defects observed during the weldingMuhammadUzairLiaqat
 
System Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event SchedulingSystem Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event SchedulingBootNeck1
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girlsssuser7cb4ff
 
Class 1 | NFPA 72 | Overview Fire Alarm System
Class 1 | NFPA 72 | Overview Fire Alarm SystemClass 1 | NFPA 72 | Overview Fire Alarm System
Class 1 | NFPA 72 | Overview Fire Alarm Systemirfanmechengr
 
NO1 Certified Black Magic Specialist Expert Amil baba in Uae Dubai Abu Dhabi ...
NO1 Certified Black Magic Specialist Expert Amil baba in Uae Dubai Abu Dhabi ...NO1 Certified Black Magic Specialist Expert Amil baba in Uae Dubai Abu Dhabi ...
NO1 Certified Black Magic Specialist Expert Amil baba in Uae Dubai Abu Dhabi ...Amil Baba Dawood bangali
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHC Sai Kiran
 
Solving The Right Triangles PowerPoint 2.ppt
Solving The Right Triangles PowerPoint 2.pptSolving The Right Triangles PowerPoint 2.ppt
Solving The Right Triangles PowerPoint 2.pptJasonTagapanGulla
 
Vishratwadi & Ghorpadi Bridge Tender documents
Vishratwadi & Ghorpadi Bridge Tender documentsVishratwadi & Ghorpadi Bridge Tender documents
Vishratwadi & Ghorpadi Bridge Tender documentsSachinPawar510423
 
Research Methodology for Engineering pdf
Research Methodology for Engineering pdfResearch Methodology for Engineering pdf
Research Methodology for Engineering pdfCaalaaAbdulkerim
 
Earthing details of Electrical Substation
Earthing details of Electrical SubstationEarthing details of Electrical Substation
Earthing details of Electrical Substationstephanwindworld
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...VICTOR MAESTRE RAMIREZ
 
Transport layer issues and challenges - Guide
Transport layer issues and challenges - GuideTransport layer issues and challenges - Guide
Transport layer issues and challenges - GuideGOPINATHS437943
 
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfgUnit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfgsaravananr517913
 
Mine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptxMine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptxRomil Mishra
 
An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...Chandu841456
 
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTIONTHE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTIONjhunlian
 

Kürzlich hochgeladen (20)

complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...
 
welding defects observed during the welding
welding defects observed during the weldingwelding defects observed during the welding
welding defects observed during the welding
 
System Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event SchedulingSystem Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event Scheduling
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girls
 
POWER SYSTEMS-1 Complete notes examples
POWER SYSTEMS-1 Complete notes  examplesPOWER SYSTEMS-1 Complete notes  examples
POWER SYSTEMS-1 Complete notes examples
 
Class 1 | NFPA 72 | Overview Fire Alarm System
Class 1 | NFPA 72 | Overview Fire Alarm SystemClass 1 | NFPA 72 | Overview Fire Alarm System
Class 1 | NFPA 72 | Overview Fire Alarm System
 
NO1 Certified Black Magic Specialist Expert Amil baba in Uae Dubai Abu Dhabi ...
NO1 Certified Black Magic Specialist Expert Amil baba in Uae Dubai Abu Dhabi ...NO1 Certified Black Magic Specialist Expert Amil baba in Uae Dubai Abu Dhabi ...
NO1 Certified Black Magic Specialist Expert Amil baba in Uae Dubai Abu Dhabi ...
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECH
 
Solving The Right Triangles PowerPoint 2.ppt
Solving The Right Triangles PowerPoint 2.pptSolving The Right Triangles PowerPoint 2.ppt
Solving The Right Triangles PowerPoint 2.ppt
 
Vishratwadi & Ghorpadi Bridge Tender documents
Vishratwadi & Ghorpadi Bridge Tender documentsVishratwadi & Ghorpadi Bridge Tender documents
Vishratwadi & Ghorpadi Bridge Tender documents
 
Research Methodology for Engineering pdf
Research Methodology for Engineering pdfResearch Methodology for Engineering pdf
Research Methodology for Engineering pdf
 
Earthing details of Electrical Substation
Earthing details of Electrical SubstationEarthing details of Electrical Substation
Earthing details of Electrical Substation
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
 
Transport layer issues and challenges - Guide
Transport layer issues and challenges - GuideTransport layer issues and challenges - Guide
Transport layer issues and challenges - Guide
 
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfgUnit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
 
Mine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptxMine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptx
 
An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...
 
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTIONTHE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
 
Design and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdfDesign and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdf
 
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
 

Improving Engagement of Students in Software Engineering Courses through Gamification

  • 1. Improving Engagement of Students in Software Engineering E R A S M U S + Project 2017-1-NL01-KA203-035259 Tanja E. J. Vos Open Universiteit Universidad Politecnica de Valencia https://impress-project.eu/
  • 2. An EU-funded project aiming at improving students’ engagement in Software Engineering courses through gamification. https://impress-project.eu/ : about the project
  • 4. Failing software is everywhere 2017 stats effects: (3.7 billion people) $1.7 trillion in assets
  • 5. Consequences of failing software get worse
  • 6.
  • 7. Software engineering stakeholders * Customers want to have quality products * Bosses want to make money * Engineers want to program wonders
  • 8. Software engineering stakeholders * Customers want to have quality products * Bosses want to make money * Engineers want to program wonders What should we teach students?
  • 9. Teaching/learning programming is fun * Create something! * Solve puzzles! * See it work! * Different solutions Pex (Microsoft) Scratch Lego
  • 10. Software engineering * Customers want to have quality products * Bosses want to make money * Engineers want to program wonders But…… engineers should not only program They also need to test the modules they build ... and invest in formalizing the modules’ specification
  • 11. Not only programming… we need to teach software engineering * waterfall, iterative, agile * requirements, architecture, …. * 14 UML diagram types * 23 design patterns * over 80 refactorings * Testing * Security * …. * … * …
  • 14.
  • 15. IMPRESS • Can gamification improve the engagement in SE courses? • Different level of gamification: • Gamified class room SE quizzes • SE education games • Two additional aspects: integrated analytics and AI/automation to reduce teachers’ effort.
  • 18. IMPRESS result 1 Quizzes on: * Testing * Introduction Software Engineering * Security * Formal specifications * Java programming * Software architecture
  • 19. Games to learn testing code-defenders.org
  • 20. int abs(int x) { if (x >= 0) return x; else return -x; } int abs(int x) { if (x >= 0) return x; else return -x; } @Test void testAbs() { int res = abs(42); assertEquals(42, res); } Mutation Testing1970’s — DeMillo (Georgia Tech), Lipton (Princeton), Sayward (Yale)
  • 21. int abs(int x) { if (x >= 0) return x; else return -x; } int abs(int x) { if (x >= 0) return x; else return -x; } @Test void testAbs() { int res = abs(42); assertEquals(42, res); } int abs(int x) { if (x <= 0) return x; else return -x; } Mutation Testing1970’s — DeMillo (Georgia Tech), Lipton (Princeton), Sayward (Yale)
  • 22. int abs(int x) { if (x >= 0) return x; else return -x; } int abs(int x) { if (x >= 0) return x; else return -x; } @Test void testAbs() { int res = abs(42); assertEquals(42, res); } int abs(int x) { if (x >= 0) return x; else return +x; } Mutation Testing1970’s — DeMillo (Georgia Tech), Lipton (Princeton), Sayward (Yale)
  • 23. @Test void testAbs() { int res = abs(42); assertEquals(42, res); } int abs(int x) { if (x >= 0) return x; else return -x; } int abs(int x) { if (x >= 0) return x; else return -x; } @Test void test() { ?? } int abs(int x) { if (x >= 0) return x; else return +x; } Mutation Testing1970’s — DeMillo (Georgia Tech), Lipton (Princeton), Sayward (Yale)
  • 24. public class Arithmetics { public int abs(int x) { if (x < 0) return x; else return -x; } } Attackers public class TestArithmetics { @Test public void testAbs() { Arithmetics a; a = new Arithmetics(); assertEquals(1, a.abs(-1)); } } Defenders public class Arithmetics { public int abs(int x) { if (x >= 0) return x; else return -x; } } Class Under Test Code Defenders Score points for surviving mutants Score points for effective tests Equivalent Mutant Duels no way! here is a killing test! equivalent ! equivalent! oh no! :(
  • 26. 0 20 40 60 80 I enjoyed playing Code Defenders Writing unit tests is more fun in the game than during coding I learned/practiced useful skills Fully agree Partially agree Neither agree nor disagree Partially disagree Survey
  • 27. Open Challenges • Communication mechanism to foster collaboration • Many opportunities to spice up gameplay • Integrating more technologies (GUI, concurrency, etc.) • Analysis for grading and intervention • …
  • 29. Games to learn to write formal specifications
  • 31. A lesson in writing formal specifications * We can write simple expressions: * constants like 1,2,3 * identifiers like x,y,Students * properties, e.g. x.age, y.goal * e1 ⊗ e2 where ⊗ is + , - , * , = , > , ≥ , < , ≤ , ∈ * A simple formula is a simple expression of type Boolean
  • 32. A lesson in writing formal specifications * A formula is either: * a simple formula * ∀identifier∈simple-expression● formula * ∃identifier∈simple-expression● formula ) * For example: * ∀x∈Students● x.age ≥ 16 * ∃x∈Students● x.age = 16
  • 33. A lesson in writing formal specifications
  • 35. In production: Formal-Z game * a game to train student to write formal specifcations interpretable in Java * will lean more towards the “engagement” aspect * https://git.science.uu.nl/impresshs/javawlp
  • 36. From tower defense to computer defense The concept of Fomal-Z
  • 37.
  • 38.
  • 40. future work * Education quizzes and games for Software Engineering, experimenting with the balance between “seriousness” and “excitement”. * Data analytics. * Studying these innovations in actual class rooms.

Hinweis der Redaktion

  1. ASK AUDIENCE BACKGROUND: * who teach SE * who teach ICT related * who are familiar with formal method
  2. * UNIVERSIDAD COMPLUTENSE DE MADRID * INESC ID - INSTITUTE OF ENGINEERING OF SYSTEMS AND COMPUTERS, RESEARCH AND DEVELOPMENT IN LISBON
  3. http://www.softwaretestingnews.co.uk/biggest-software-fails-2016/
  4. https://www.theatlantic.com/technology/archive/2017/09/saving-the-world-from-code/540393/
  5. * software engieering is DIFF from other
  6. * software engieering is DIFF from other
  7. * software engieering is DIFF from other
  8. Invoke Dijkstra school here
  9. Almost 50 years since the first notions of mutation testing were introduced by Dick Lipton as a class project to Dave Parnas (1970’s — DeMillo (Georgia Tech), Lipton (Princeton), Sayward (Yale)) The objective of mutation testing is… Mutation score (measure of quality) - Live Mutants: produce more tests
  10. Live mutant - we need more tests Dead mutant - of no further use
  11. Rounds: Turns of attack and defence Points: Attacker: how long their mutants live? Defenders: how good their tests are? Equivalent mutants: play an important role
  12. Code Defenders is a still research prototype, there are plenty of ways in which the game can be improved…. Demo
  13. Invoke Dijkstra school here