07276 - Computer Science

Academic Year 2026/2027

  • Teaching Mode: In-person learning (entirely or partially)
  • Campus: Bologna
  • Corso: First cycle degree programme (L) in Statistical Sciences (cod. 6661)

Learning outcomes

By the end of the course, students will understand the fundamentals of programming and computational problem solving in Python. They will be able to write, test, and analyze programs using basic data types, functions, classes, and objects, and to reason about correctness and computational complexity.

Course contents

Introduction to computer science and programming.

Programming in Python: names and scope, functions, mutable and immutable objects, basic data types, and their use in solving problems of moderate difficulty.

Classes and objects. Abstract data types implemented as classes. Introduction to computational complexity.

The course includes extensive laboratory activities, during which the lecturer is supported by teaching tutors.

Readings/Bibliography

The following textbook is recommended for the part of the course on Python programming:

John V. Guttag, Introduzione alla programmazione con Python, Egea, 2021. This is an abridged Italian translation of Introduction to Computation and Programming Using Python, Third Edition: With Application to Computational Modeling and Understanding Data, MIT Press, 2021.

The following textbook is recommended for the part of the course on R programming:

W. John Braun and Duncan J. Murdoch, A First Course in Statistical Programming with R, 3rd edition, Cambridge University Press.

Additional recommended readings:

Allen B. Downey, Think Python 2e, O’Reilly Media, 2012. ISBN 879-1449330729.

Jessen Havill, Discovering Computer Science: Interdisciplinary Problems, Principles, and Python Programming, Chapman and Hall/CRC.

Teaching methods

In-person lectures.

Laboratory sessions are held in the same classroom as the lectures, using the students’ own laptops. During laboratory sessions, the lecturer is supported by teaching tutors.

Given the nature of the activities and the teaching methods adopted, attendance requires all students to have previously completed Modules 1 and 2 of the e-learning course on health and safety in study environments.

Assessment methods

The course includes both traditional lectures and laboratory sessions and is assessed through a single examination.

Each week, self-assessment tests will be proposed during the laboratory sessions. These tests are not mandatory for admission to the examination, but they are an important tool for exam preparation.

Submitting all assignments during the academic year entitles students to a one-point bonus.

The examination consists of two parts:

  1. a programming test lasting 2.5 hours;
  2. a written paper-based test lasting 1 hour, during which consulting notes or textbooks is not permitted.

The two tests must be taken during the same examination session, without exception.

Programming Test

The programming test is administered through the same online platform used during laboratory sessions and takes place in a computer laboratory equipped with PCs. Students must therefore use the laboratory computers rather than their own laptops.

The test lasts a total of 2.5 hours and consists of two parts.

The first part requires students to write several programs, which are automatically assessed using test data. Upon submission, this part is immediately assigned a score between 0 and 10, with a passing grade of 5.

If the score is below 5, the examination ends and the overall result is a fail. Students who receive a score between 5 and 10 may proceed to the second part and to the written test held on the following day.

The second part also requires students to write several programs. These programs are manually assessed by the lecturer together with the written test.

This part is also administered through the laboratory platform and includes automatic tests. However, the results of these tests are not definitive for the final assessment.

Students may manage the total 2.5-hour period independently. Once the first part has been submitted, the submission is final and cannot be changed.

Written Test

The written test lasts 1 hour and is a traditional paper-based examination. Students are not allowed to consult notes or other materials.

The written test is assessed by the lecturer together with the second part of the programming test. The two components are assigned a combined score between 0 and 24, with a passing grade of 13.

A score below 13 requires the student to retake both the written test and the programming test during a subsequent examination session.

The final grade is calculated by adding:

  • the passing score obtained in the first part of the programming test, from 5 to 10;
  • the passing combined score obtained in the written test and the second part of the programming test, from 13 to 24;
  • the optional assignment bonus, from 0 to 1 point.

If the total score is 32 or higher, the final grade is 30 cum laude.

Teaching tools

All information and course materials are available during the course on the virtual learning platform at virtuale.unibo.it.

The same platform must also be used to submit the exercises assigned during laboratory sessions.

Laboratory activities take place in the same classroom as the lectures and require students to use their own laptops.

Students must install a Python programming environment on their laptops. The use of Thonny is recommended. Thonny is a self-contained programming environment for Python 3 and will be used during the lectures.

Office hours

See the website of Nicolò Romandini

SDGs

Quality education Industry, innovation and infrastructure

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