Python Programming for Engineers

Postgraduate and Doctoral degree programmes | Academic year 2025-2026

Administrative information

Lecturer Prof. D. Palma
Credits 6 ECTS
Contact hours 24 hours
Teaching period Second semester
Levels Postgraduate and Doctoral
Scientific sector ING-INF/05

Aims and learning outcomes

The course provides the knowledge and skills necessary to apply Python programming to a broad range of engineering problems. Starting with foundational concepts such as syntax, data structures, and algorithms, it progresses to advanced applications in engineering-specific contexts. Emphasis is placed on theoretical understanding, practical application, and documentation of results. Practical exercises, laboratory activities, and projects are designed to simulate real-world engineering challenges. Upon completion, participants will confidently use Python to solve complex engineering problems, documenting methodologies and communicating results effectively.

Teaching methods

The course is delivered in a blended e-learning format using Microsoft 365 through the University of Udine, with all teaching materials available online. Teaching methods include lectures, hands-on exercises, and laboratory activities. Lecture recordings, including web lectures and lecture captures, are accessible via Microsoft Teams.

Assessment methods

Assessment consists of a practical project that evaluates the application of Python programming to engineering-specific problems. Topics, developed with faculty across specialisations such as Fluid Mechanics, Thermodynamics, Turbomachinery, Internal Combustion Engines, Thermal Systems, Mechatronics and Robotics, Optimisation, and Dynamics of Mechanical Systems, are available on Microsoft Teams. Projects require detailed reports covering problem definition, methodology, implementation, results, and conclusions.

Topics

  • Introduction to Python and Jupyter Notebooks
    Introduction to the Python programming language and its applications in engineering. Overview of Jupyter Notebooks as a tool for interactive coding and documentation, including integration with Markdown and LaTeX. Basic script development and execution, with emphasis on preparing reproducible engineering reports.
  • Core data structures and algorithmic problem solving
    Lists, tuples, dictionaries, and sets; sorting and searching algorithms; functions and modular programming. Applications include the implementation of data pipelines, search utilities, and analysis tools for engineering datasets.
  • Data manipulation and visualisation techniques
    Data cleaning, analysis, and visualisation using Pandas and Matplotlib. Effective presentation of engineering data through plots, graphs, and LaTeX-formatted results. Applications include experimental data analysis, test report generation, and performance monitoring.
  • Numerical methods, modelling, and optimisation
    Numerical methods for solving engineering problems, including root-finding, interpolation, numerical integration, and differential equations, using NumPy, SciPy, and SymPy. Development of mathematical models and process optimisation. Applications include heat transfer modelling, structural deflection analysis, and optimisation of energy systems.
  • Image analysis and machine vision
    Image processing using OpenCV, including feature extraction, object recognition, and image segmentation for engineering applications. Applications include structural inspection, non-destructive testing, defect detection in manufacturing, and robotic vision systems.
  • Signal processing and advanced frequency analysis
    Signal processing techniques using librosa and NumPy, including Fourier transforms, wavelet analysis, and spectral analysis. Applications include vibration monitoring, fault detection in rotating machinery, and acoustic analysis.
  • Advanced case studies in engineering applications
    Real-world problems in energy systems optimisation, structural health monitoring, predictive maintenance, and mechanical systems modelling, systematically addressed through the application of the programming libraries and tools covered throughout the course. This approach facilitates practical solutions by integrating computational methods with engineering principles.
  • Capstone projects: advanced engineering challenges
    Integration of knowledge and skills acquired throughout the course to address complex, multidisciplinary engineering challenges. Projects involve thorough problem analysis, the formulation and application of appropriate methodologies, systematic presentation and interpretation of results, and critical reflection on outcomes and processes. These projects focus on cross-disciplinary engineering issues requiring advanced data processing, mathematical modelling, and optimisation techniques, thereby fostering the development of practical and innovative solutions.

Reading list

  1. H.P. Langtangen, “A primer on scientific programming with Python”, Springer-Verlag Berlin Heidelberg, 2016
  2. E. Matthes, “Python crash course: A hands-on, project-based introduction to programming”, No Starch Press, 2023
  3. P. Deitel and H. Deitel, “Intro to Python for Computer Science and Data Science”, Pearson Education, 2022

Note

Complementary resources, including Jupyter Notebooks, Python scripts, and a requirements file for installing all necessary packages, are available on the professor’s GitHub repository. These materials support and enhance the course by providing detailed documentation and example code.