Computational Thinking has been introduced as a fundamental skill to acquire, just like basic skills like reading, writing, and numeracy. The reason is that Computational Thinking is one of the most important skills for XXI century citizens, in particular for programmers and scientists at large. Currently, Computer Science teaching practices focus on individual programming and Computational Thinking first, and only later address students to work in teams. We study how Computational Thinking can be enhanced with social skills and teaming practices, aiming at training our students in Computational Thinking exploiting Agile values and practices. Based on prior studies, we describe and compare the four traditional software development learning approaches: solo programmer, pair programmers, self-organized teams, and directed teams. Such approaches have been explored in a number of teaching experiments, involving a significant number of students, over several years. Accordingly, we induced a model that we call Cooperative Thinking, based on such previous evidence and grounded in literature. This paper provides a research synthesis of previous works contextualized in a pedagogical framework, and proposes a new learning paradigm for software engineering education.

Ciancarini, P., Missiroli, M., Russo, D. (2020). Exploiting Agile Practices to Teach Computational Thinking. Springer [10.1007/978-3-030-39306-9_5].

Exploiting Agile Practices to Teach Computational Thinking

Ciancarini P.
;
2020

Abstract

Computational Thinking has been introduced as a fundamental skill to acquire, just like basic skills like reading, writing, and numeracy. The reason is that Computational Thinking is one of the most important skills for XXI century citizens, in particular for programmers and scientists at large. Currently, Computer Science teaching practices focus on individual programming and Computational Thinking first, and only later address students to work in teams. We study how Computational Thinking can be enhanced with social skills and teaming practices, aiming at training our students in Computational Thinking exploiting Agile values and practices. Based on prior studies, we describe and compare the four traditional software development learning approaches: solo programmer, pair programmers, self-organized teams, and directed teams. Such approaches have been explored in a number of teaching experiments, involving a significant number of students, over several years. Accordingly, we induced a model that we call Cooperative Thinking, based on such previous evidence and grounded in literature. This paper provides a research synthesis of previous works contextualized in a pedagogical framework, and proposes a new learning paradigm for software engineering education.
2020
Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
63
83
Ciancarini, P., Missiroli, M., Russo, D. (2020). Exploiting Agile Practices to Teach Computational Thinking. Springer [10.1007/978-3-030-39306-9_5].
Ciancarini, P.; Missiroli, M.; Russo, D.
File in questo prodotto:
Eventuali allegati, non sono esposti

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/11585/1045950
 Attenzione

Attenzione! I dati visualizzati non sono stati sottoposti a validazione da parte dell'ateneo

Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus 2
  • ???jsp.display-item.citation.isi??? ND
  • OpenAlex ND
social impact