Course 2026-2027 a.y.

20591 - COMPUTER PROGRAMMING AND DATABASE SYSTEMS

Department of Decision Sciences


Course taught in English
Go to class group/s: 23
DSBA (8 credits - I sem. - OB  |  STAT-01/A)
Course Director:
FABRIZIO IOZZI

Classes: 23 (I sem.)
Instructors:
Class 23: FABRIZIO IOZZI


Mission & Content Summary

MISSION

The goal of the course is to provide the students with a wide range of skills and knowledge in computation and data management/analysis, which are extensively used throughout the whole education program. While not strictly mandatory, some previous exposure to computer programming (and in particular to the Python language) is highly recommended for this course.

CONTENT SUMMARY

  • Python programming: basic and advanced programming techniques.
  • Python scientific modules
  • Object-oriented programming.
  • Relational databases 
  • Some extra topics (if time permits)

Intended Learning Outcomes (ILO)

KNOWLEDGE AND UNDERSTANDING

At the end of the course student will be able to...
  • Describe fundamental programming strategies.
  • Describe the functioning principles of database systems.

APPLYING KNOWLEDGE AND UNDERSTANDING

At the end of the course student will be able to...
  • Develop advanced object-oriented Python code
  • Develop code for algorithmic problem solving.
  • Organize and Use databases.

Teaching methods

  • Lectures
  • Practical Exercises
  • Individual works / Assignments

DETAILS

- Face-to-face lectures will contain both theoretical and applied parts. During the applied part of the lecture, the instructor will solve, together with the class, some exercises pertaining to the concepts discussed in the theory section. Then, after a few guided exercises, students can apply autonomously the techniques illustrated during the course, and they are encouraged to propose and discuss their solutions with the rest of the class. Use of AI to provide insight into specific topics is strongly suggested.
- Exercises consist in programming assignments to be done in class under the supervision of the Instructor and the Teaching Assistant. Solving the assignments improves understanding of the theoretical concepts and complements them with hands-on knowledge of the programming tools and techniques.

- Assignments consist inseveral questions of several types (multiple choice, true/false, open-ended)

 


Assessment methods

  Continuous assessment Partial exams General exam
  • Oral individual exam
    x
  • Written individual exam (traditional/online)
    x
  • Individual Works/ Assignment (report, exercise, presentation, project work etc.)
x    

ATTENDING AND NOT ATTENDING STUDENTS

There are no partial exams. The exam consists of 4  programming exercises and some theory questions. Questions are of the types seen in the assignments. The solutions will be discussed during the subsequent oral part. In the oral examination students are required to clearly justify their programming choices. Failure to provide solid justification will result in a (possibly heavy) reduction of the final grade. 

 

During the course some assignments will be given to the class. If the assignments' overall score is positive, students can choose to skip one of the four exercises in the exam paper.

 

All assignments and exams consist of programming exercises whose aim is to assess the understanding of fundamental programming strategies and the knowledge of database systems. Collectively, the exercises will test the ability of students to develop advanced Python code, using  object-oriented techniques, for algorithmic problem solving.

 


Teaching materials


ATTENDING AND NOT ATTENDING STUDENTS

Lecture notes and Jupyter notebooks.

Numpy and Pandas documentation (online)

Allen Downey, Think Python (available online at https://allendowney.github.io/ThinkPython/)

Last change 15/05/2026 12:04