SlideShare a Scribd company logo
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.

More Related Content

Similar to Improving Engagement of Students in Software Engineering Courses through Gamification

10.ppt
10.ppt10.ppt
10.ppt
BNJYOTHI
 
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 Programming
Tao Xie
 
American sign language recognizer
American sign language recognizerAmerican sign language recognizer
American sign language recognizer
Garrett Broughton, Architect/Engineer
 
Yoyak ScalaDays 2015
Yoyak ScalaDays 2015Yoyak ScalaDays 2015
Yoyak ScalaDays 2015
ihji
 
Declare Your Language: Dynamic Semantics
Declare Your Language: Dynamic SemanticsDeclare Your Language: Dynamic Semantics
Declare Your Language: Dynamic Semantics
Eelco Visser
 
Java Basics - Part1
Java Basics - Part1Java Basics - Part1
Java Basics - Part1
Vani Kandhasamy
 
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
Osama Ghandour Geris
 
L10
L10L10
L10
lksoo
 
Effective Object Oriented Design in Cpp
Effective Object Oriented Design in CppEffective Object Oriented Design in Cpp
Effective Object Oriented Design in Cpp
CodeOps Technologies LLP
 
Synopsis tic tac toe
Synopsis tic tac toeSynopsis tic tac toe
Synopsis tic tac toe
SYED HOZAIFA ALI
 
Python week 1 2020-2021
Python week 1 2020-2021Python week 1 2020-2021
Python week 1 2020-2021
Osama 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 mind
Andreas Czakaj
 
Raising the Bar
Raising the BarRaising the Bar
Raising the Bar
Alexandru Bolboaca
 
Tdd is not about testing
Tdd is not about testingTdd is not about testing
Tdd is not about testing
Gianluca Padovani
 
Python slide
Python slidePython 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
Victor Rentea
 

Similar to 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
 

More from 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 Computers
Facultad de Informática UCM
 
uElectronics ongoing activities at ESA
uElectronics ongoing activities at ESAuElectronics ongoing activities at ESA
uElectronics ongoing activities at ESA
Facultad 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 Arm
Facultad de Informática UCM
 
Formalizing Mathematics in Lean
Formalizing Mathematics in LeanFormalizing Mathematics in Lean
Formalizing Mathematics in Lean
Facultad 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 Computing
Facultad de Informática UCM
 
Computer Design Concepts for Machine Learning
Computer Design Concepts for Machine LearningComputer Design Concepts for Machine Learning
Computer Design Concepts for Machine Learning
Facultad 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 futuro
Facultad 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 Correction
Facultad 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 intento
Facultad 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 HPC
Facultad de Informática UCM
 
Type and proof structures for concurrency
Type and proof structures for concurrencyType and proof structures for concurrency
Type and proof structures for concurrency
Facultad 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
 
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?
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 wind
Facultad de Informática UCM
 

More from 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
 

Recently uploaded

在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
obonagu
 
Understanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine LearningUnderstanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine Learning
SUTEJAS
 
Cosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdfCosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdf
Kamal Acharya
 
DESIGN AND ANALYSIS OF A CAR SHOWROOM USING E TABS
DESIGN AND ANALYSIS OF A CAR SHOWROOM USING E TABSDESIGN AND ANALYSIS OF A CAR SHOWROOM USING E TABS
DESIGN AND ANALYSIS OF A CAR SHOWROOM USING E TABS
itech2017
 
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Dr.Costas Sachpazis
 
CW RADAR, FMCW RADAR, FMCW ALTIMETER, AND THEIR PARAMETERS
CW RADAR, FMCW RADAR, FMCW ALTIMETER, AND THEIR PARAMETERSCW RADAR, FMCW RADAR, FMCW ALTIMETER, AND THEIR PARAMETERS
CW RADAR, FMCW RADAR, FMCW ALTIMETER, AND THEIR PARAMETERS
veerababupersonal22
 
NUMERICAL SIMULATIONS OF HEAT AND MASS TRANSFER IN CONDENSING HEAT EXCHANGERS...
NUMERICAL SIMULATIONS OF HEAT AND MASS TRANSFER IN CONDENSING HEAT EXCHANGERS...NUMERICAL SIMULATIONS OF HEAT AND MASS TRANSFER IN CONDENSING HEAT EXCHANGERS...
NUMERICAL SIMULATIONS OF HEAT AND MASS TRANSFER IN CONDENSING HEAT EXCHANGERS...
ssuser7dcef0
 
The Role of Electrical and Electronics Engineers in IOT Technology.pdf
The Role of Electrical and Electronics Engineers in IOT Technology.pdfThe Role of Electrical and Electronics Engineers in IOT Technology.pdf
The Role of Electrical and Electronics Engineers in IOT Technology.pdf
Nettur Technical Training Foundation
 
Hierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power SystemHierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power System
Kerry Sado
 
Basic Industrial Engineering terms for apparel
Basic Industrial Engineering terms for apparelBasic Industrial Engineering terms for apparel
Basic Industrial Engineering terms for apparel
top1002
 
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdf
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdfTutorial for 16S rRNA Gene Analysis with QIIME2.pdf
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdf
aqil azizi
 
weather web application report.pdf
weather web application report.pdfweather web application report.pdf
weather web application report.pdf
Pratik Pawar
 
Student information management system project report ii.pdf
Student information management system project report ii.pdfStudent information management system project report ii.pdf
Student information management system project report ii.pdf
Kamal Acharya
 
MCQ Soil mechanics questions (Soil shear strength).pdf
MCQ Soil mechanics questions (Soil shear strength).pdfMCQ Soil mechanics questions (Soil shear strength).pdf
MCQ Soil mechanics questions (Soil shear strength).pdf
Osamah Alsalih
 
Railway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdfRailway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdf
TeeVichai
 
road safety engineering r s e unit 3.pdf
road safety engineering  r s e unit 3.pdfroad safety engineering  r s e unit 3.pdf
road safety engineering r s e unit 3.pdf
VENKATESHvenky89705
 
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
Amil Baba Dawood bangali
 
6th International Conference on Machine Learning & Applications (CMLA 2024)
6th International Conference on Machine Learning & Applications (CMLA 2024)6th International Conference on Machine Learning & Applications (CMLA 2024)
6th International Conference on Machine Learning & Applications (CMLA 2024)
ClaraZara1
 
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdfWater Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation & Control
 
Immunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary AttacksImmunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary Attacks
gerogepatton
 

Recently uploaded (20)

在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
 
Understanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine LearningUnderstanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine Learning
 
Cosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdfCosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdf
 
DESIGN AND ANALYSIS OF A CAR SHOWROOM USING E TABS
DESIGN AND ANALYSIS OF A CAR SHOWROOM USING E TABSDESIGN AND ANALYSIS OF A CAR SHOWROOM USING E TABS
DESIGN AND ANALYSIS OF A CAR SHOWROOM USING E TABS
 
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
 
CW RADAR, FMCW RADAR, FMCW ALTIMETER, AND THEIR PARAMETERS
CW RADAR, FMCW RADAR, FMCW ALTIMETER, AND THEIR PARAMETERSCW RADAR, FMCW RADAR, FMCW ALTIMETER, AND THEIR PARAMETERS
CW RADAR, FMCW RADAR, FMCW ALTIMETER, AND THEIR PARAMETERS
 
NUMERICAL SIMULATIONS OF HEAT AND MASS TRANSFER IN CONDENSING HEAT EXCHANGERS...
NUMERICAL SIMULATIONS OF HEAT AND MASS TRANSFER IN CONDENSING HEAT EXCHANGERS...NUMERICAL SIMULATIONS OF HEAT AND MASS TRANSFER IN CONDENSING HEAT EXCHANGERS...
NUMERICAL SIMULATIONS OF HEAT AND MASS TRANSFER IN CONDENSING HEAT EXCHANGERS...
 
The Role of Electrical and Electronics Engineers in IOT Technology.pdf
The Role of Electrical and Electronics Engineers in IOT Technology.pdfThe Role of Electrical and Electronics Engineers in IOT Technology.pdf
The Role of Electrical and Electronics Engineers in IOT Technology.pdf
 
Hierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power SystemHierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power System
 
Basic Industrial Engineering terms for apparel
Basic Industrial Engineering terms for apparelBasic Industrial Engineering terms for apparel
Basic Industrial Engineering terms for apparel
 
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdf
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdfTutorial for 16S rRNA Gene Analysis with QIIME2.pdf
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdf
 
weather web application report.pdf
weather web application report.pdfweather web application report.pdf
weather web application report.pdf
 
Student information management system project report ii.pdf
Student information management system project report ii.pdfStudent information management system project report ii.pdf
Student information management system project report ii.pdf
 
MCQ Soil mechanics questions (Soil shear strength).pdf
MCQ Soil mechanics questions (Soil shear strength).pdfMCQ Soil mechanics questions (Soil shear strength).pdf
MCQ Soil mechanics questions (Soil shear strength).pdf
 
Railway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdfRailway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdf
 
road safety engineering r s e unit 3.pdf
road safety engineering  r s e unit 3.pdfroad safety engineering  r s e unit 3.pdf
road safety engineering r s e unit 3.pdf
 
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
 
6th International Conference on Machine Learning & Applications (CMLA 2024)
6th International Conference on Machine Learning & Applications (CMLA 2024)6th International Conference on Machine Learning & Applications (CMLA 2024)
6th International Conference on Machine Learning & Applications (CMLA 2024)
 
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdfWater Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdf
 
Immunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary AttacksImmunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary Attacks
 

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.

Editor's Notes

  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