Skip to main content
CODE 106838
ACADEMIC YEAR 2025/2026
CREDITS
SCIENTIFIC DISCIPLINARY SECTOR MAT/09
LANGUAGE English
TEACHING LOCATION
  • GENOVA
SEMESTER 1° Semester

OVERVIEW

Optimization is a discipline included in decision science and management science. The course introduces the fundamentals of the discipline and the role of the Python programming language in the context of optimization.

AIMS AND CONTENT

LEARNING OUTCOMES

The course provides students the basics of Optimization, which are most relevant to the operational planning of enterprises. The course aims to develop optimization models and provide mathematical programming methods, both exact and heuristic, for decision-makers. Students are also provided with the necessary knowledge to understand the structure of an optimization algorithm and to implement it with Python. By the end of the course, students will have the skills necessary to identify the methodological approach needed to address a problem and the ability to implement in Python that method to determine solutions.

AIMS AND LEARNING OUTCOMES

At the end of the teaching unit, the student will be able to:
- Apply the main optimization methods (content) to real decision problems (condition),
selecting the most appropriate technique according to the context (criterion);
- Develop basic optimization algorithms in Python (content) for solving structured problems (condition), verifying the correctness of the obtained results (criterion);
- Design linear and integer mathematical models (content) for optimization problems on
graphs and with binary variables (condition), respecting the specific constraints of the problem (criterion);
- Analyze and compare solutions obtained through exact, heuristic, and meta-heuristic
methods (content) on proposed case studies (condition), evaluating the effectiveness and
efficiency of the solutions (criterion).

PREREQUISITES

Recommended:

Algebra, Analytic geometry, Operations Research, Programming.

TEACHING METHODS

The teaching unit includes frontal lessons held in the computer classroom, giving students the opportunity to formulate, solve, and analyze the proposed problems together with the
teachers. If it is not possible to carry out activities in class, the teaching methods decided by the University will be adopted. For updates, please refer to Aulaweb. Attendance is not compulsory. For students with learning disabilities or special needs, personalized methods are provided according to University regulations.

SYLLABUS/CONTENT

Consistent with the objectives previously illustrated in the course, the following topics are covered

  1. Introduction to programming.
    • Logic programming.
    • Programming languages. 
  2. Python basic concepts:
    • Getting Started, the first program: "hello world".
    • Variables and Input.
    • Conditional statements. Iteration statements.
    • Functions Modules and Classes
    • Strings, Lists, Dictionaries
  3. Use LP and ILP solvers in Python: 
    • Introduction to PL and PLI,
    • Define decision variables, 
    • Create the objective function, 
    • Add constraints to the model, 
    • Analysis of the solutions.
  4. Data structure: 
    • Graph data structure
    • Data manipulation and storage. 
    • Develop a parser.
    • Test cases creation. 
    • Binary variables with Python.
  5. Algorithms and complexity classes (concepts): 
    • Exact, heuristic, meta-heuristic. 
    • Constructive Algorithms, Greedy Algorithms, selection function. Enhanced Greedy.
    • Implementation of the proposed algorithms.        
  6. Genetic Algorithms: 
    • Chromosome, population, crossover, mutation, selection function. 
    • Population diversity, speciation heuristic, and strong mutation. 
    • Memetic Algorithms. 
    • Implementation of a Genetic Algorithm

RECOMMENDED READING/BIBLIOGRAPHY

The following books, articles and link are suggested.

  • Hillier, Lieberman, “Introduction to Operations Research”, McGraw Hill, 2016.
  • Downey, A., et al. "Thinking python. 2.0". Green Tea Press Supplemental Material:, 2012.
  • https://coin-or.github.io/pulp/index.html

TEACHERS AND EXAM BOARD

LESSONS

Class schedule

The timetable for this course is available here: Portale EasyAcademy

EXAMS

EXAM DESCRIPTION

The exam consists of a written test comprising short-answer questions, multiple-choice questions, and brief exercises. Students who achieve a minimum grade of 18/30 will pass the exam.

ASSESSMENT METHODS

Knowledge and skills will be assessed through online tests and exercises during class,
evaluating the ability to apply optimization methods to proposed problems, the correctness of solutions implemented in Python, and clarity of exposition. Assessment criteria include: correctness of answers, appropriate use of terminology, analytical and synthesis skills.

FURTHER INFORMATION

Please contact the instructor for further information not included in the teaching unit
description.

Agenda 2030 - Sustainable Development Goals

Agenda 2030 - Sustainable Development Goals
Industry, innovation and infrastructure
Industry, innovation and infrastructure
Responbile consumption and production
Responbile consumption and production
Climate action
Climate action

OpenBadge

 PRO3 - Soft skills - Alfabetica avanzato 1 - A
PRO3 - Soft skills - Alfabetica avanzato 1 - A
 PRO3 - Soft skills - Personale avanzato 1 - A
PRO3 - Soft skills - Personale avanzato 1 - A
 PRO3 - Soft skills - Imparare a imparare base 1 - A
PRO3 - Soft skills - Imparare a imparare base 1 - A
 PRO3 - Soft skills - Creazione progettuale avanzato 1 - A
PRO3 - Soft skills - Creazione progettuale avanzato 1 - A