Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Programowanie w językach skryptowych - Python i Linux Bash
Tok studiów:
2014/2015
Kod:
IEL-1-706-s
Wydział:
Informatyki, Elektroniki i Telekomunikacji
Poziom studiów:
Studia I stopnia
Specjalność:
-
Kierunek:
Elektronika
Semestr:
7
Profil kształcenia:
Ogólnoakademicki (A)
Język wykładowy:
Polski
Forma i tryb studiów:
Stacjonarne
Strona www:
 
Osoba odpowiedzialna:
Wielgosz Maciej (wielgosz@agh.edu.pl)
Osoby prowadzące:
Wielgosz Maciej (wielgosz@agh.edu.pl)
dr inż. Pietroń Marcin (pietron@agh.edu.pl)
Krótka charakterystyka modułu

Przedmiot ma na celu zapoznanie studentów z językiem Python oraz Bash jak również nowoczesnymi technikami programowania z wykorzystaniem tych języków.

Opis efektów kształcenia dla modułu zajęć
Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Powiązania z EKK Sposób weryfikacji efektów kształcenia (forma zaliczeń)
Wiedza
M_W001 Zna semantykę języków Python oraz bash. Projekt
M_W002 Zna model modułowego, obiektowego tworzenia aplikacji w języku Python oraz mechanizmy obsługi wyjątków. Projekt
M_W003 Posiada wiedzę dotyczącą podstawowych typów i struktur danych w językach bash i Python. Projekt
M_W004 Potrafi automatyzować zadania wykorzystujące narzedzia systemowe tworząc skrypty bash. Projekt
Umiejętności
M_U001 Umie korzystać z gotowych modułów oraz bibliotek w języku Python. Potrafi budować własne moduły i biblioteki oraz umie tworzyć właściwą strukturę aplikacji samodzielnie oraz z wykorzystaniem dostępnych pakietów (np. PyScaffold). Projekt
M_U002 Umie implementować algorytmy w języku Python z wykorzystaniem technik programowania strukturalnego oraz obiektowego. Projekt
M_U003 Umie pisać skrypty w języku bash. Projekt
M_U004 Umie samodzielnie skonfigurować i używać systemu kontroli wersji (na przykładzie git), budować właściwą strukturę projektu oraz rozumie rolę środowiska wirtualnego. Projekt
Kompetencje społeczne
M_K001 Ma poczucie odpowiedzialności za własną pracę, jak również posiada umiejętności pracy zespołowej. Projekt
Matryca efektów kształcenia w odniesieniu do form zajęć
Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Forma zajęć
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Inne
E-learning
Wiedza
M_W001 Zna semantykę języków Python oraz bash. + - - - - - - - - - -
M_W002 Zna model modułowego, obiektowego tworzenia aplikacji w języku Python oraz mechanizmy obsługi wyjątków. + - - - - - - - - - -
M_W003 Posiada wiedzę dotyczącą podstawowych typów i struktur danych w językach bash i Python. + - - - - - - - - - -
M_W004 Potrafi automatyzować zadania wykorzystujące narzedzia systemowe tworząc skrypty bash. + - - - - - - - - - -
Umiejętności
M_U001 Umie korzystać z gotowych modułów oraz bibliotek w języku Python. Potrafi budować własne moduły i biblioteki oraz umie tworzyć właściwą strukturę aplikacji samodzielnie oraz z wykorzystaniem dostępnych pakietów (np. PyScaffold). - - + + - - - - - - -
M_U002 Umie implementować algorytmy w języku Python z wykorzystaniem technik programowania strukturalnego oraz obiektowego. - - + + - - - - - - -
M_U003 Umie pisać skrypty w języku bash. - - + + - - - - - - -
M_U004 Umie samodzielnie skonfigurować i używać systemu kontroli wersji (na przykładzie git), budować właściwą strukturę projektu oraz rozumie rolę środowiska wirtualnego. - - + + - - - - - - -
Kompetencje społeczne
M_K001 Ma poczucie odpowiedzialności za własną pracę, jak również posiada umiejętności pracy zespołowej. - - + + - - - - - - -
Treść modułu zajęć (program wykładów i pozostałych zajęć)
Wykład:

  1. Wprowadzenie do bash
    *elementarna struktura pliku skryptowego
    *przegląd możliwości bash
  2. Podstawy bash
    *elementarne instrukcje
    *podawanie argumentów wejściowych
    *instrukcje warunkowe
    *pętle
    *funkcje
  3. Zaawansowane techniki
    *operacje we/wy
    *strumienie
  4. Wprowadzenie do Python – podstawowe informacje
    *wersje języka Python 2.x vs 3.x
    *interpreter Pythona oraz Ipython
    *podstawy pip, git oraz virtualenv
    *struktura projektu na przykładzie PyScaffold
  5. Podstawy
    *typy danych
    *sterowanie
    *funkcje
    *struktury danych
  6. Programowanie obiektowe
    *model
    *interfejsy
    *dziedziczenie
  7. Wyjątki
    *praktyka stosowania
    *obsługa
  8. Moduły i biblioteki
    *tworzenie
    *wykorzystanie
  9. Testowanie
    *testy jednostkowe
    *testy behawioralne
  10. Elementy rozszerzające
    *biblioteka numpy, scipy oraz matplotlib

Ćwiczenia laboratoryjne:

W trakcie prowadzonych zajęć laboratoryjnych realizowane będą ćwiczenia praktyczne mające na celu zapoznanie studentów z materiałem przedstawionym na wykładzie. Będą one utrwalać dobre praktyki projektowania obiektowego w języku Python oraz tworzenie skryptów w bash. Jednocześnie studenci będą zapoznawać się z konwencją programowania modułowego, systemu kontroli wersji oraz budowaniem właściwej struktury plików. Zajęcia będą miały charakter projektowy.

Ćwiczenia projektowe:

W trakcie zajęć będzie realizowany projekt. Stosowane będą ogólnie przyjęte standardy wykonywania projektów w języku Python : Modularność (PyScaffold, Sphinx, pytest) oraz system kontroli wersji.

Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta Obciążenie studenta
Sumaryczne obciążenie pracą studenta 77 godz
Punkty ECTS za moduł 3 ECTS
Udział w ćwiczeniach laboratoryjnych 28 godz
Udział w wykładach 14 godz
Przygotowanie do zajęć 15 godz
Wykonanie projektu 20 godz
Pozostałe informacje
Sposób obliczania oceny końcowej:

Ocena końcowa obliczana jest na podstawie oceny z lab. oraz projektu. Dominujący jest udział projektu.

Wymagania wstępne i dodatkowe:

Nie podano wymagań wstępnych lub dodatkowych.

Zalecana literatura i pomoce naukowe:

“Programming in Python 3, A Complete Introduction to the Python Language”, Mark Summerfield

Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu:

Nie podano dodatkowych publikacji

Informacje dodatkowe:

Zajęcia są prowadzone z wykorzystaniem innowacyjnych metod dydaktycznych opracowanych w projekcie POWR.03.04.00-00-D002/16, realizowanym w latach 2017-2019 na Wydziale Informatyki, Elektroniki i Telekomunikacji w ramach Programu Operacyjnego Wiedza Edukacja Rozwój 2014-2020.