- Nazwa przedmiotu:
- Automatyzacja procesów projektowania z wykorzystaniem Pythona
- Koordynator przedmiotu:
- dr inż. Stanisław Gepner
- Status przedmiotu:
- Obowiązkowy
- Poziom kształcenia:
- Studia II stopnia
- Program:
- Robotyka i Automatyka
- Grupa przedmiotów:
- Specjalnościowe
- Kod przedmiotu:
- Semestr nominalny:
- 1 / rok ak. 2022/2023
- Liczba punktów ECTS:
- 2
- Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
- Godziny kontaktowe z nauczycielem (zajęcia): 30
Godziny kontaktowe z nauczycielem (konsultacje): 5
Prace domowe: 15
SUMA: 50
- Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
- 1 ECTS – 35 h, w tym:
Zajęcia: 30 h
Konsultacje: 5 h
- Język prowadzenia zajęć:
- polski
- Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
- 1 ECTS
- Formy zajęć i ich wymiar w semestrze:
-
- Wykład15h
- Ćwiczenia0h
- Laboratorium15h
- Projekt0h
- Lekcje komputerowe0h
- Wymagania wstępne:
- 1. Elementarna wiedza z zakresu obsługi komputera i programowania w języku C lub C++.
- Limit liczby studentów:
- -
- Cel przedmiotu:
- C1. Nauczenie podstaw pisania skryptów w języku Python.
C2. Zapoznanie z możliwościami automatyzacji zadań w procesie projektowo-obliczeniowym.
C3. Zapoznanie z technikami przetwarzania danych z zastosowaniem wybranych narzędzi środowiska Python.
- Treści kształcenia:
- Wykłady
Wprowadzenie podstawowej składni języka. Struktura programu, podstawowe elementy (pętlę, instrukcje warunkowe ...). Podkreślenie różnic w sposobie działania języka w odniesieniu do znanych studentom języków programowania.
Funkcje, klasy, metody. Zmienne typowane dynamicznie. Wprowadzenie obiektowego paradygmatu programowania.
Biblioteka graficzna Matplotlib. Przygotowanie grafik i wykresów na podstawie danych.
Kontrola procesu obliczeniowego. Automatyzacja, wywoływanie i kontrola zadań (np. na serwerze HPC).
Wykorzystanie zewnętrznych bibliotek oprogramowania inżynierskiego na przykładzie jednego z: Tecplot, ParaView, Ansys, inne.
Budowa interfejsu do istniejącego oprogramowania. Rozwój bibliotek w C/Fortran i innych.
Wykorzystanie bibliotek Numpy i Scipy do przetwarzania danych obliczeniowych.
Laboratoria
Wprowadzenie do programowania w języku Python. Przedstawienie podstawowych narzędzi programistycznych i zasad programowania strukturalnego w języku Python – typy danych, załączanie bibliotek, instrukcje warunkowe, pętle, instrukcje wejścia/wyjścia, wywoływanie skryptów.
Wprowadzenie do programowania w języku Python. Przedstawienie podstawowych narzędzi programistycznych i zasad programowania strukturalnego w języku Python – typy danych, załączanie bibliotek, instrukcje warunkowe, pętle, instrukcje wejścia/wyjścia, wywoływanie skryptów.
Podstawy programowania obiektowego w języku Python. Tworzenie typów użytkownika, pojęcie klasy, metody. Przedstawienie podstawowych kolekcji.
Tworzenie grafik i wykresów z wykorzystaniem narzędzi biblioteki Matplotlib.
Zarządzanie zewnętrznymi procesami obliczeniowymi. Przedstawienie podstawowych narzędzi umożliwiających tworzenie i zarządzanie wątkami i procesami. Wykorzystanie do automatyzacji procesu optymalizacji z wykorzystaniem obliczeń CFD.
Zastosowanie interfejsu programowania aplikacji (API) narzędzi inżynierskich w języku Python na wybranym przykładzie (Tecplot, Paraview, Ansys lub inne).
Tworzenie interfejsu programowania aplikacji (API) dla istniejących aplikacji i bibliotek w języku C/C++ lub Fortran.
Wykorzystanie wybranych narzędzi obliczeniowych dostępnych w bibliotekach Scipy oraz Numpy do przetwarzania danych.
- Metody oceny:
- (F – formująca, P – podsumowująca)
Fd1-Fd2 – oceny z prac domowych,
Fl1-Fl5 – oceny z ćwiczeń laboratoryjnych,
Fl – ocena z testu na laboratorium,
Ocenie podlegają prace domowe, praca na zajęciach laboratoryjnych oraz kolokwium przeprowadzone na laboratoriach. Szczegóły systemu oceniania opublikowane na stronie internetowej przedmiotu.
- Egzamin:
- nie
- Literatura:
- 1. Ogólnodostępne materiały dydaktyczne.
2. Materiały na stronie wydziału przygotowane przez prowadzącego zajęcia.
3. Langtangen, H. P. (2014). A primer on scientific programming with Python (Vol. 6). Springer.
4. Linge, S., & Petter Langtangen, H. (2016). Programming for Computations-Python: A Gentle Introduction to Numerical Simulations with Python (p. 232). Springer Nature.
- Witryna www przedmiotu:
- -
- Uwagi:
- -
Efekty uczenia się
Profil ogólnoakademicki - wiedza
- Charakterystyka EW1
- Student zna podstawowe elementy języka Python.
Weryfikacja: prace domowe, test sprawdzający laboratoryjny
Powiązane charakterystyki kierunkowe:
AiR2_W10
Powiązane charakterystyki obszarowe:
I.P7S_WG.o, III.P7S_WG, P7U_W
- Charakterystyka EW2
- Student orientuje się w możliwościach automatyzacji procesu projektowo-obliczeniowego.
Weryfikacja: prace domowe, test sprawdzający laboratoryjny
Powiązane charakterystyki kierunkowe:
AiR2_W10, AiR2_W11
Powiązane charakterystyki obszarowe:
P7U_W, I.P7S_WG.o, III.P7S_WG, I.P7S_WK, III.P7S_WK
- Charakterystyka EW3
- EW3 - Student zna wybrane narzędzia numeryczne dostępne w środowisku Python
Weryfikacja: prace domowe, test sprawdzający laboratoryjny
Powiązane charakterystyki kierunkowe:
AiR2_W11
Powiązane charakterystyki obszarowe:
P7U_W, I.P7S_WK, III.P7S_WK
Profil ogólnoakademicki - umiejętności
- Charakterystyka EU1
- Student potrafi tworzyć i modyfikować skrypty języka Python.
Weryfikacja: zaliczenie ćwiczeń laboratoryjnych
Powiązane charakterystyki kierunkowe:
AiR2_U04, AiR2_U12
Powiązane charakterystyki obszarowe:
P7U_U, I.P7S_UK, I.P7S_UW.o, III.P7S_UW.o
- Charakterystyka EU2
- Student jest w stanie przeprowadzić analizę danych obliczeniowych z wykorzystaniem narzędzi Numpy i Scipy.
Weryfikacja: zaliczenie ćwiczeń laboratoryjnych
Powiązane charakterystyki kierunkowe:
AiR2_U04, AiR2_U12
Powiązane charakterystyki obszarowe:
P7U_U, I.P7S_UK, I.P7S_UW.o, III.P7S_UW.o
- Charakterystyka EU3
- Student potrafi zautomatyzować proces obliczeniowy korzystając ze skryptów Pythona
Weryfikacja: zaliczenie ćwiczeń laboratoryjnych
Powiązane charakterystyki kierunkowe:
AiR2_U12, AiR2_U04, AiR2_U10
Powiązane charakterystyki obszarowe:
III.P7S_UW.o, P7U_U, I.P7S_UK, I.P7S_UW.o