Module also offered within study programmes:
General information:
Name:
Programming in Python
Course of study:
2015/2016
Code:
BIT-1-505-s
Faculty of:
Geology, Geophysics and Environmental Protection
Study level:
First-cycle studies
Specialty:
-
Field of study:
Applied Computer Science
Semester:
5
Profile of education:
Academic (A)
Lecture language:
Polish
Form and type of study:
Full-time studies
Course homepage:
 
Responsible teacher:
dr Oleksik Paweł (oleksik@agh.edu.pl)
Academic teachers:
dr Oleksik Paweł (oleksik@agh.edu.pl)
Module summary

Description of learning outcomes for module
MLO code Student after module completion has the knowledge/ knows how to/is able to Connections with FLO Method of learning outcomes verification (form of completion)
Social competence
M_K001 Student ma świadomość odpowiedzialności za własną pracę IT1A_K03 Execution of a project
Skills
M_U001 Umie zapisać algorytmy za pomocą składni języka Python. IT1A_U12, IT1A_U16, IT1A_U13 Execution of a project
M_U002 Potrafi zastosować obsługę wyjątków do sterowania programem. IT1A_U12, IT1A_U16, IT1A_U13 Execution of a project
M_U003 Umie definiować i używać funkcje z parametrami w dowolnym wariancie (zwykłe, z domyślną wartością, opcjonalne i nazwane). IT1A_U12, IT1A_U16, IT1A_U13 Execution of a project
M_U004 Umie definiować i wykorzystywać moduły oraz paczki. IT1A_U12, IT1A_U16, IT1A_U13 Execution of a project
M_U005 Umie definiować klasy oraz stosować podstawowe profilowanie z wykorzystaniem metod specjalnych. IT1A_U12, IT1A_U16, IT1A_U13 Execution of a project
M_U006 Umie zastosować elementy programowania funkcyjnego. IT1A_U12, IT1A_U16, IT1A_U13 Execution of a project
Knowledge
M_W001 Zna podstawową składnię języka i jej semantykę. IT1A_W07, IT1A_W06, IT1A_W11 Execution of a project
M_W002 Rozumie specyfikę modelu obiektowego realizowanego w Pythonie. IT1A_W07 Execution of a project
M_W003 Rozumie właściwości dynamicznej typizacji i dynamicznej semantyki. IT1A_W07, IT1A_W06, IT1A_W04 Execution of a project
M_W004 Zna hierarchię wbudowanych typów danych oraz ich właściwości. IT1A_W07, IT1A_W04 Execution of a project
FLO matrix in relation to forms of classes
MLO code Student after module completion has the knowledge/ knows how to/is able to Form of classes
Lecture
Audit. classes
Lab. classes
Project classes
Conv. seminar
Seminar classes
Pract. classes
Zaj. terenowe
Zaj. warsztatowe
Others
E-learning
Social competence
M_K001 Student ma świadomość odpowiedzialności za własną pracę - - - - - - + - - - -
Skills
M_U001 Umie zapisać algorytmy za pomocą składni języka Python. + - - - - - + - - - -
M_U002 Potrafi zastosować obsługę wyjątków do sterowania programem. + - - - - - + - - - -
M_U003 Umie definiować i używać funkcje z parametrami w dowolnym wariancie (zwykłe, z domyślną wartością, opcjonalne i nazwane). + - - - - - + - - - -
M_U004 Umie definiować i wykorzystywać moduły oraz paczki. + - - - - - + - - - -
M_U005 Umie definiować klasy oraz stosować podstawowe profilowanie z wykorzystaniem metod specjalnych. + - - - - - + - - - -
M_U006 Umie zastosować elementy programowania funkcyjnego. + - - - - - + - - - -
Knowledge
M_W001 Zna podstawową składnię języka i jej semantykę. + - - - - - + - - - -
M_W002 Rozumie specyfikę modelu obiektowego realizowanego w Pythonie. + - - - - - + - - - -
M_W003 Rozumie właściwości dynamicznej typizacji i dynamicznej semantyki. + - - - - - + - - - -
M_W004 Zna hierarchię wbudowanych typów danych oraz ich właściwości. + - - - - - + - - - -
Module content
Lectures:
  1. Wstęp.

    • Używanie standardowego interpretera.
    • Podstawowe instrukcje i typy danych.
    • Biblioteka standardowa.

  2. Wersje języka i interpreterów.

    • Schemat działania standardowego interpretera.

  3. Model danych.

    • Pełna obiektowość, możliwości introspekcji.
    • Przegląd standardowych typów danych.

  4. Model obliczeń.

    • Zmienne, semantyka instrukcji podstawienia, garbage collector.
    • Dynamiczna, silna typizacja; duck typing.
    • Zakresy widoczności symboli.
    • Dynamiczna semantyka.

  5. Podstawy programowania obiektowego.

    • Model obiektowy: klasy, instancje, modyfikowanie instancji w locie.
    • Metody instancji, metody statyczne i metody klasy.
    • Metody specjalne: realizowanie protokołów.
    • Dziedziczenie jednobazowe.

  6. Zaawansowane konstrukcje.

    • Obsługa wyjątków.
    • Wyrażenia generujące listy i słowniki.
    • Proste generatory.

  7. Rozszerzone możliwości programowania obiektowego.

    • Kontrolowanie dostępu do atrybutów.
    • Dekoratory.
    • Dziedziczenie wielobazowe.
    • Elementy metaprogramowania (metaklasy).

  8. Elementy programowania funkcyjnego.
  9. Tworzenie bibliotek.
Practical classes:
  1. Praktyczne wprowadzenie.

    • Standardowy interpreter, środowisko programistyczne i programy pomocnicze.
    • Zastosowanie podstawowych konstrukcji, typów danych oraz wybranych modułów z biblioteki standardowej.

  2. Wykorzystanie zaawansowanych konstrukcji.

    • Wyjątki.
    • Proste generatory i wyrażenia generatorowe.
    • Sekcje dozorowane.

  3. Podstawy programowania obiektowego.

    • Właściwości klas i instancji; zastosowanie introspekcji.
    • Metody związane i niezwiązane; metody statyczne.
    • Dziedziczenie jednobazowe.

  4. Metody specjalne klas.

    • Profilowanie działania instancji; implementacja wybranych protokołów.
    • Metody klas.

  5. Metody specjalne klas – zaawansowane.

    • Deskryptory.
    • Kontrola dostępu do atrybutów.

  6. Programowanie obiektowe – zaawansowane.

    • Dziedziczenie wielobazowe w modelach ‘domieszkowania’ i ‘kooperacji’.
    • Tworzenie dekoratorów.
    • Wstęp do metaklas.

  7. Tworzenie bibliotek.

    • Moduły i paczki w języku Python.
    • Moduły binarne (w języku maszynowym).

  8. Programowanie funkcyjne i dynamiczna semantyka.
  9. Tworzenie prostego GUI (Tkinter).
Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 113 h
Module ECTS credits 4 ECTS
Participation in lectures 15 h
Realization of independently performed tasks 28 h
Participation in practical classes 30 h
Preparation for classes 40 h
Additional information
Method of calculating the final grade:

Ocena końcowa odpowiada ocenie z zaliczenia.

Prerequisites and additional requirements:

Umiejętność programowania proceduralnego i obiektowego.

Recommended literature and teaching resources:

Recommended literature and teaching resources not specified

Scientific publications of module course instructors related to the topic of the module:

Additional scientific publications not specified

Additional information:

Podstawowym terminem uzyskania zaliczenia jest koniec zajęć w danym semestrze. Student może dwukrotnie przystąpić do poprawkowego zaliczania.

udział „praktycznych” punktów ECTS: 3
udział „teoretycznych” punktów ECTS: 1