Automation of Calculation, Simulation and Visualization (FSI-LAV)

Academic year 2024/2025
Supervisor: Ing. Libor Kudela, Ph.D.  
Supervising institute: all courses guaranted by this institute
Teaching language: Czech
Course type: departmental course
Aims of the course unit:

In this course, students will learn how to automate calculations and design processes for developing in-house software by utilizing the Python programming language, along with compatible libraries and open-source software. This approach minimizes the need for manual and intellectual labor, ultimately enhancing efficiency. Furthermore, students will also become acquainted with tools for visually presenting results and data through appealing diagrams, extending beyond engineering calculations.

Learning outcomes and competences:
 
Prerequisites:

A foundational understanding of mathematics and physics at the undergraduate level, coupled with analytical thinking skills.

Course contents:

This course offers a structured approach to programming fundamentals and their applications in the context of energy engineering. The initial weeks focus on establishing a solid foundation, introducing students to basic programming concepts and data processing techniques. As the course progresses, we delve deeper into advanced programming features, such as debugging, logging, and profiling. The utilization of both standard and third-party libraries is explored. Additionally, the course underscores the significance of data analysis and presentation, emphasizing the use of Python libraries like Numpy, Pandas, and Plotly, enabling the creation of visually appealing and interactive graphs.

Furthermore, students will be introduced to specialized tools such as FeniCSx, Coolprop, and Xsteam, which are essential for addressing energy-related tasks. The course concludes with coverage of optimization techniques, parallel programming for processing large volumes of data, and a comprehensive review of assignments completed by students throughout the semester, ultimately leading to earning credit.

Teaching methods and criteria:
 
Assesment methods and criteria linked to learning outcomes:

Regular and active participation in exercises, delivery of all assigned tasks is required for credit to be granted.

Controlled participation in lessons:
 
Type of course unit:
    Computer-assisted exercise  13 × 2 hrs. optionally                  
Course curriculum:
    Computer-assisted exercise

Week 1 - Introduction to programming 1 - Data types, Basic operations, Generic operations,


Week 2 - Introduction to programming 2 - Flow control, Loops, Functions, arguments,


Week 3 - Objects, Inheritance, Polymorphism,


Week 4– Debugging, logging, profiling,


Week 5 - Python Standard Libraries, Third Party Modules, Imports,


Week 6 - Working with files, Text and binary files,


Week 7 - Arrays and Matrices, Numpy library,


Week 8 - Time series, Data analysis, Pandas,


Week 9 - Data presentation, Interactive graphs, Plots, Dashboard,


Week 10 - Selected Libraries for Energy Engineers, FeniCSx, Coolprop, Xsteam,


Week 11 - Optimization, SciPy, PyTorch,


Week 12 - Parallel programming for processing a large volume of data,


Week 13 - Review of assignments, Credit.

Literature - fundamental:
1. STEINKAMP, V. Python for Engineering and Scientific Computing. Rheinwerk Computing, 2024.
2. FÜHRER, C.; SOLEM, J.E. a VERDIER, O. Scientific Computing with Python - Second Edition: High-performance scientific computing with NumPy, SciPy, and pandas. Packt Publishing, 2021.
The study programmes with the given course:
Programme Study form Branch Spec. Final classification   Course-unit credits     Obligation     Level     Year     Semester  
N-ETI-P full-time study ENI Power Engineering -- Cr 2 Compulsory 2 1 S
C-AKR-P full-time study CLS -- Cr 2 Elective 1 1 S