00819 - Programming

Academic Year 2025/2026

  • Moduli: Roberto Amadini (Modulo 1) Angelo Di Iorio (Modulo 2)
  • Teaching Mode: Traditional lectures (Modulo 1) Traditional lectures (Modulo 2)
  • Campus: Bologna
  • Corso: First cycle degree programme (L) in Information Science for Management (cod. 6641)

Learning outcomes

At the end of the course, the student will know the basic principles and techniques of programming, and will be able to create programs in a specific programming language.

Course contents

The course mainly covers the imperative programming paradigm using the Java language. The topics covered are as follows:

  • Introduction to programming and the Java language
  • Variables, types, operators, expressions
  • Selection constructs
  • Iteration constructs
  • Arrays and matrices
  • Procedural programming
  • Recursion
  • File input and output

Readings/Bibliography

The main textbook used in the development of this course is:

W. Savitch, Programming: Fundamentals and Advanced Techniques with Java, Pearson Italia S.p.A., 2024.

Purchasing the book is not required in order to attend the course or take the exam.

Teaching methods

Teaching materials are presented through slides and code examples.

The course also includes in-class exercises on the topics covered during the lectures, conducted by both the instructors and the course tutor. If possible, optional tutoring sessions will also be offered outside of regular class hours.

All teaching materials will be made available on the course's Virtuale platform.

Assessment methods

The exam covers all topics addressed during the course and consists of designing and writing Java code.

It takes place in a lab setting, without the aid of manuals, personal notes, or any kind of electronic devices.

The duration of the exam depends on the number of exercises assigned, with a minimum of 30 minutes per exercise and a maximum total of three hours.

The lab exam is evaluated based on the following criteria:

  • Syntactic correctness: the code must compile; exercises that do not compile will not be considered.

  • Semantic correctness: the code must correctly perform the tasks required by the assignment.

  • Pragmatics: the code must be clean, readable, non-redundant, and as efficient as possible.

Students who achieve a grade of 27 or higher on the lab exam must take an additional oral exam, aimed at confirming, modifying, or increasing the score obtained.

The oral exam will consist of completing (even partially) exercises, discussing proposed solutions, and exploring related topics in more depth.

To prevent cases of plagiarism, instructors reserve the right to request an oral verification even for students with a score below 27, or to administer the exam in written form on paper instead of in the lab.

Six exam sessions per year are guaranteed, with specific accommodations provided for students with learning disabilities (DSA).

Teaching tools

GNU/Linux Ercolani Lab:

52 fixed PCs for students with Internet access
45 workstations for student laptops.
Address: Scuole Ercolani, Mura Anteo Zamboni 2/B - Bologna.


In all the workstations the operating system Debian is installed.

The machines are equipped with Intel Core I5-4590 processors at 3.30 GHz and 8 GB of RAM.
The PCs can be used remotely 24 hours a day, 7 days a week.

This lab is subject to access control, so access is allowed only through the use of the student badge, issued by the Student Secretariat of the School of Science (via Zamboni 33). From the moment of issue, it may take a few days to obtain the access authorization.

Office hours

See the website of Roberto Amadini

See the website of Angelo Di Iorio