- 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. 2021/2022
- 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: 
                        P7U_W, I.P7S_WG.o, III.P7S_WG
- 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_U12, AiR2_U04
 Powiązane charakterystyki obszarowe: 
                        III.P7S_UW.o, P7U_U, I.P7S_UK, I.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_U04, AiR2_U10, AiR2_U12
 Powiązane charakterystyki obszarowe: 
                        P7U_U, I.P7S_UK, I.P7S_UW.o, III.P7S_UW.o