- Docente: Massimiliano Garagnani
- Credits: 6
- SSD: INF/01
- Language: English
- Teaching Mode: In-person learning (entirely or partially)
- Campus: Bologna
- Corso: Second cycle degree programme (LM) in Semiotics (cod. 6824)
-
from Apr 13, 2026 to May 21, 2026
Learning outcomes
Students who successfully complete this module will be able to: 1. Understand basic programming concepts and constructs such as strings numbers, assignments, sequential and selective executions, loops and functions; 2. Write short programs that use the fundamental program constructs including standard conditional and iterative control structures; 3. Write simple programs involving the drawing of basic geometric shapes; 4. Write basic animation programs; 5. Understand and explain the basic ideas of programming, including variables, basic types and control structures; 6. Design and implement small programs that use simple control structures, including conditionals and loops; 7. Implement basic, but complete interactive programs
Course contents
The course aims to provide students with a basic understanding of computer programming. Upon completion, students will have the skills necessary to design, develop, and test a small software system using a high-level, object-oriented programming language (i.e., Python).
Contents:
-
fundamental concepts of digital information processing (including integers and floating-point numbers, strings, assignments, variables, libraries, lists and files);
-
basic programming constructs, such as sequential and selective execution, loops, user-defined functions and classes;
-
The "for", "while", "if-else", "elif" Python statements; built-in functions (such as "range()", "input()", and type-conversion functions); modules & turtles; lists and objects;
-
fundamental principles and techniques of information processing (including conditional and iterative control, string manipulation).
Students who successfully complete this course will be able to design and implement small (but complete) interactive programs that apply basic control structures and object-oriented programming concepts to solve a problem computationally.
Readings/Bibliography
Allen B. Downey: “Think Python: How to think like a Computer Scientist”, Green Tea Press, 2015 (Second Ed.).
John Zelle: “Python programming: an introduction to Computer Science”. Franklin, Beedle & Associates Inc., 2010 (Second Ed.)
Charles Dierbach: “Introduction to Computer Science Using Python: a computational problem-solving focus”. John Wiley & Sons, 2013Teaching methods
The course will consist of two face-to-face lectures a week (2 hours each), complemented by weekly hands-on laboratory sessions (2 hours).
Assessment methods
The assessment will be based on two (equally weighted) components:
- an individual take-home “Mini-project” (a small software system whose requirements will be specified during the course), and
- an Oral exam (in person).
NB: The oral part of the exam cannot be taken without prior submission of the Mini-project.
Students with disabilities or specific learning disorders (DSA) are entitled to special accommodations according to their condition, following evaluation by the University Service for Students with Disabilities and DSA.
Please do not contact the course coordinator directly, but get in touch with the Service to schedule an appointment. The Service will determine which accommodations - if any - are appropriate.
More information available at:
https://site.unibo.it/studenti-con-disabilita-e-dsa/it/per-studenti
Teaching tools
Besides the teaching facilities available in the laboratory, the course will make heavy use of the interactive version of Downey's textbook:
Allen B. Downey, Jeffrey Elkner & Chris Meyers, "How to Think Like a Computer Scientist – Interactive Edition", Green Tea Press, 2002
, freely available HERE.
Office hours
See the website of Massimiliano Garagnani