- Docente: Renzo Davoli
- Credits: 6
- SSD: INF/01
- Language: Italian
- Moduli: Renzo Davoli (Modulo 1) Michael Lodi (Modulo 2)
- Teaching Mode: Traditional lectures (Modulo 1) Traditional lectures (Modulo 2)
- Campus: Bologna
- Corso: Second cycle degree programme (LM) in Computer Science (cod. 5898)
-
from Feb 19, 2025 to May 16, 2025
Learning outcomes
The course aims to provide theoretical knowledge, techniques and tools helpful in teaching computer science. At the end of the course, the student is familiar with the main pedagogical and didactical approaches for teaching computer science at different school levels. Students can organise and teach computer science courses, compare and choose different methodologies to generate teaching materials, and evaluate learning.
Course contents
The educational objectives of this course include:
-
the knowledge of some historical, epistemological, and ethical aspects of Computer Science as a scientific discipline and the rationale behind the need for its teaching;
-
the understanding of pedagogical aspects and learning theories in the context of Computer Science teaching;
-
the knowledge of multiple teaching approaches specific to the subject;
-
knowledge of the main cognitive difficulties that learning Computer Science poses (with particular reference to programming) and what possible strategies to adopt to overcome them;
-
the knowledge of specific software tools and physical computing devices to support the Computer Science teaching;
-
the ability to formulate and manage study paths consistent with the national guidelines and curricula relating to Computer Science in schools of all levels.
Topics covered in the course include:
-
Scientific Vision of Computer Science
-
Learning paradigms and theories, with particular reference to constructivism and constructionism, applied to computing education
-
Top-down and bottom-up approaches in the teaching of Computer Science
-
"Coding", Computational Thinking and Computer Science
-
Programming, Algorithms, and Data Structures teaching
-
Educational implications in the choice of programming languages
-
Difficulties and misconceptions in learning programming
-
-
Didactics of technological aspects: computer architecture, operating systems, networks
-
Methodologies for computing education
-
unplugged
-
dramatisation/visualisation
-
program comprehension exercises
-
debugging of non-compliant code
-
visualization of machine state during execution of a program
-
making/tinkering with physical computing tools
-
-
methodologies for evaluating computer programs
-
Computer science in textbooks and international and Italian school curricula
-
Software licenses (free software vs. proprietary software): implications for education
Readings/Bibliography
Articles and papers will be provided during the course in electronic form on the course wiki (https://csed-unibo.github.io/#!index.md) and on Virtuale.
Texts for possible further study:
S. Grover. Computer Science in K-12: An A-To-Z Handbook on Teaching Programming. Edfinity, 2020.
S. Sentance, E. Barendsen, N.R. Howard, C. Schulte. Computer Science Education: Perspectives on Teaching and Learning in School. Bloomsbury Academic. 2018 (1st ed.); 2023 (2nd ed.).
O. Hazzan, T. Lapidot, N. Ragonis. Guide to teaching computer science: An activity-based approach. 3rd ed. Springer, 2020. Freely downloadable from UniBO network: https://link.springer.com/book/10.1007/978-3-030-39360-1
S. Fincher, A. Robins. The Cambridge Handbook of Computing Education Research (Cambridge Handbooks in Psychology). Cambridge: Cambridge University Press, 2019.
Teaching methods
Lectures with discussion, exercises, cooperative learning activities, individual or group projects, and "flipped classroom" techniques.
Given the type of activities and teaching methods adopted, attendance at this training activity requires the prior participation of all students in Modules 1 and 2 ofworkplace safety training, [https://elearning-sicurezza.unibo.it/] in e-learning mode.
Assessment methods
The final exam consists of:
-
writing a report describing teaching material for the teaching of Computer Science content;
-
simulating a teaching activity using such material, followed by an oral discussion.
In-progress questionnaires and homework assignments will be used to facilitate the progressive consolidation of knowledge.
Teaching tools
Physical and logical devices, even unconventional, useful for CS teaching and learning.
Office hours
See the website of Renzo Davoli
See the website of Michael Lodi
SDGs


This teaching activity contributes to the achievement of the Sustainable Development Goals of the UN 2030 Agenda.