Course 2026-2027 a.y.

21011 - ADVANCED COMPUTER PROGRAMMING

Department of Computing Sciences


Course taught in English
Go to class group/s: 48
DAIHS (9 credits - I sem. - OB  |  INFO-01/A)
Course Director:
FABRIZIO IOZZI

Classes: 48 (I sem.)
Instructors:
Class 48: 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.

CONTENT SUMMARY

  • Python programming: basic and advanced programming techniques.
  • Python scientific modules
  • Object-oriented programming.
  • Relational databases
  • Other advanced topics

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 instructors 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. 


Exercises consist in programming assignments and/or questions to be done in class under the supervision of the Instructor and the Teaching Assistant(s). Learning is to be complemented with the use of AI, available to the students. AI should be used to furhter clarify concepts, show more exercises, and provide guidance in understanding the topics. Solving the assignments improves understanding of the theoretical concepts and complements them with hands-on knowledge of the programming tools and techniques.


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 in 4  programming exercises and some theory questions. The submitted 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 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 and/or questions of several types (multiple choice, true/false, open-ended) 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 for algorithmic problem solving.


Teaching materials


ATTENDING AND NOT ATTENDING STUDENTS

Lecture notes provided by the instructors.

 

Allen Downey, Think Python 3rd edition, available at https://allendowney.github.io/ThinkPython/

 

Numpy and Pandas documentation (online)

Last change 15/05/2026 11:18