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