Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Podstawy języka Python
Tok studiów:
2015/2016
Kod:
DGK-1-711-s
Wydział:
Geodezji Górniczej i Inżynierii Środowiska
Poziom studiów:
Studia I stopnia
Specjalność:
-
Kierunek:
Geodezja i Kartografia
Semestr:
7
Profil kształcenia:
Ogólnoakademicki (A)
Język wykładowy:
Polski
Forma i tryb studiów:
Stacjonarne
Osoba odpowiedzialna:
dr inż. Twardowski Mariusz (misiekt@agh.edu.pl)
Osoby prowadzące:
dr inż. Twardowski Mariusz (misiekt@agh.edu.pl)
Krótka charakterystyka modułu

Moduł pozwala na zapoznanie sie z podstawowymi zasadami programowania w języku Python, używania jego wybranych bibliotek oraz projektowania i praktycznego wykonania interfejsu graficznego.

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 Znajomość zasad programowania w języku Python GK1A_W09 Kolokwium
Umiejętności
M_U001 Podstawowa umiejętność zamiany algorytmów na język programowania komputerowego. GK1A_U15, GK1A_U18, GK1A_U07 Kolokwium
M_U002 Podstawowa umiejętność tworzenia programów w języku Python GK1A_U15, GK1A_U18 Kolokwium
Kompetencje społeczne
M_K001 Kreatywność w podejściu do programowania GK1A_K01 Aktywność na zajęciach
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 Znajomość zasad programowania w języku Python + - - - - - - - - - -
Umiejętności
M_U001 Podstawowa umiejętność zamiany algorytmów na język programowania komputerowego. - - - + - - - - - - -
M_U002 Podstawowa umiejętność tworzenia programów w języku Python - - - + - - - - - - -
Kompetencje społeczne
M_K001 Kreatywność w podejściu do programowania - - - + - - - - - - -
Treść modułu zajęć (program wykładów i pozostałych zajęć)
Wykład:
Program wykładów

1. Wprowadzenie do języka Python
Zapoznanie się z interpreterem języka. Porównanie z innymi językami programowania. Przypisania zmiennych, operatory matematyczne i logiczne. Podstawowe typy danych i ich reprezentacja. Słowa kluczowe i podstawowe pojęcia z zakresu języka. Struktury złożone. Pojęcie obiektów niemutowanych.

2. Skrypty i kontrola przepływu programu
Formatowanie poprawnych skryptów i ich uruchamianie. Struktury warunkowe, zapętlające i definicje funkcji kontrolujące przepływ programu. Różnice pomiędzy interpreterem a kompilatorem. Sposoby wykrywania wystąpień wyjątków w programie. Obsługa wejścia/wyjścia dla różnych urządzeń. Definiowanie funkcji różnych typów.

3. Klasy, obiekty i moduły
Wprowadzenie do programowania obiektowego w języku Python. Budowa klas, obiektów i metod, ich dziedziczenie i polimorfizm. Sposoby modularyzacji skryptów i importowanie bibliotek.

4. Wybrane biblioteki języka
Omówienie ważniejszych elementów bibliotek standardowych. Biblioteki zawierające przekształcenia geospatialne GDAL, OGR, OSR. Sposoby odczytywania, zapisywania i przetwarzania danych rastrowych i wektorowych.

5. Projektowanie interfejsów
Wykorzystanie narzędzi do szybkiego projektowania aplikacji (RAD), automatyczne generowanie kodu programu, połączenia elementu interfejsu z kodem wykonawczym. Wprowadzenie pojęcia programu sterowanego przez wydarzenia. Zapoznanie z bibliotekami do budowy interfejsu graficznego.

Ćwiczenia projektowe:
Program ćwiczeń

1. Wprowadzenie do języka Python
Aktywne wykorzystanie interpretera do przypisywania zmiennych i ewaluacji wyrażeń matematycznych i logicznych. Sprawdzanie typów przypisanych zmiennych. Sposoby rozcinania ciągów. Metody alokacji list, zbiorów i słowników oraz ich odmiany. Wykorzystanie wybranych słów kluczowych.

2. Skrypty i kontrola przepływu programu
Zapoznanie z narzędziami do tworzenia skryptów i automatyzacja procesu ich uruchamiania. Interpretacja komunikatów o błędach, ich znajdowanie i poprawa. Wykorzystanie instrukcji warunkowej if…elif…else. Instrukcje pętli while oraz for, ich implementacja i kontrola. Obsługa wyjątków przy pomocy struktur try…except…else oraz with…as. Warianty definicji funkcji.

3. Klasy, obiekty i moduły
Tworzenie klas oraz implementacja ich metod. Przykłady dziedziczenia klasy bazowej. Inicjalizacja obiektów i odwołanie do ich metod z wykorzystaniem desygnatora. Importowanie modułów własnych oraz standardowych.

4. Wybrane biblioteki języka
Przykłady najczęściej wykorzystywanych funkcji z biblioteki standardowej. Połączenie funkcjonalności bibliotek operacji przestrzennych w kodzie programu. Operacje na danych tekstowych, wektorowych i rastrowych.

5. Projektowanie interfejsu QT
Zapoznanie z narzędziem do projektowania interfejsu, dodawania elementów i modyfikacja ich zawartości. Wykorzystanie narzędzi do automatycznej konwersji pliku XML ze zdefiniowanym interfejsem do kodu Python. Przypisanie połączeń elementów interfejsu do definicji funkcji. Uruchamianie i testowanie interfejsu.

Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta Obciążenie studenta
Sumaryczne obciążenie pracą studenta 90 godz
Punkty ECTS za moduł 3 ECTS
Udział w wykładach 15 godz
Dodatkowe godziny kontaktowe z nauczycielem 10 godz
Udział w ćwiczeniach projektowych 30 godz
Samodzielne studiowanie tematyki zajęć 25 godz
Wykonanie projektu 10 godz
Pozostałe informacje
Sposób obliczania oceny końcowej:

Ocena końcowa jest wystawiana na podstawie kolokwium. W przypadku braku zaliczenia kolokwium możliwa będzie jego poprawa.

Wymagania wstępne i dodatkowe:

Znajomość obsługi komputera.
Znajomość obsługi edytora tekstowego.
Bardzo przydatna będzie znajomość podstaw informatyki.

Zalecana literatura i pomoce naukowe:

Literatura:

1. Lutz Mark: "Python. Wprowadzenie". Helion 2011,
2. Dawson Michael: "Python dla każdego.Podstawy programowania". Helion 2014
3. Oficjalna dokumentacja języka i kursy online: http://pl.python.org
4. Summerfield Mark: "Rapid GUI Programming with Python and Qt". Prentice Hall 2008
5. Dokmentacja PyQt: http://pyqt.sourceforge.net/Docs/PyQt4/

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

1. K. Pyka, M. Twardowski: “Miejsce wolnego oprogramowania w nauczaniu geoinformatyki”. Archiwum Fotogrametrii, Kartografii i Teledetekcji. 2007.
2. K.Pyka, M. Słota, M. Twardowski -“Usage of stereo orthoimage in GIS: old concept, modern solution”. XXII ISPRS congress. 2012

Informacje dodatkowe:

Podstawowy termin zaliczenia to zakończenie zajęć.