Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Język Python na potrzeby GIS
Tok studiów:
2014/2015
Kod:
DGK-2-208-GF-s
Wydział:
Geodezji Górniczej i Inżynierii Środowiska
Poziom studiów:
Studia II stopnia
Specjalność:
Geoinformatyka, fotogrametria i teledetekcja
Kierunek:
Geodezja i Kartografia
Semestr:
2
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

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 GK2A_W05, GK2A_W07 Zaliczenie laboratorium
Umiejętności
M_U001 Podstawowa umiejętność tworzenia programów w języku Python GK2A_U18 Wykonanie projektu
M_U002 Podstawowa umiejętność rozszerzania funkcjonalności narzędzi geoinformatycznych z wykorzystaniem języka Python GK2A_U18, GK2A_U07 Wykonanie projektu
Kompetencje społeczne
M_K001 Kreatywność w podejściu do programowania GK2A_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ść tworzenia programów w języku Python - - - - - - - - - - -
M_U002 Podstawowa umiejętność rozszerzania funkcjonalności narzędzi geoinformatycznych z wykorzystaniem języka 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 interfejsu QT
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.

6. Budowa wtyczek QGis
Metody dołączania własnego kodu do programu QGis. Omówienie narzędzia do generowania schematu wtyczki. Analiza wygenerowanego kodu oraz jego schemat blokowy. Metody modyfikacji wtyczek dla indywidualnych potrzeb. Integracja wtyczki z interfejsem QGis poprzez wykorzystanie dowiązań API.

Ćwiczenia laboratoryjne:
Program laboratoria

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.

6. Budowa wtyczek QGis
Generowanie wtyczki ze schematu. Dopasowanie wygenerowanego programu do założonej postaci i modyfikacja interfejsu. Dopisanie istotnych metod do obsługi dodanych elementów. Wykorzystanie API interfejsu do zarządzania danymi różnych typów.

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

Egzamin z zakresu wykładów (30%). Ocena aktywności studenta na laboratoriach, zadań i projektu końcowego (70%).

Wymagania wstępne i dodatkowe:

Nie podano wymagań wstępnych lub dodatkowych.

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:

Nie podano dodatkowych publikacji

Informacje dodatkowe:

Podstawowy termin zaliczenia to zakończenie zajęć. Poprawkowy termin zaliczenia – koniec sesji zimowej.
Jest możliwość maksymalnie dwu podejść do zaliczenia poprawkowego.