In this course students will gain knowledge of programming language Python, its powerful datatype system and accompanying programming constructs. Text and binary data processing together with Python specific approach will be emphasized. Also information about changes between 2.x and 3.x versions of Python language will be discussed.
Last update: Znamenáček Jiří Ing. (20.01.2014)
Cílem předmětu je naučit se efektivně používat základní řídící a datové struktury jazyka Python pro zpracování textů a binárních dat. Důraz bude kladen na zdůraznění rozdílů mezi filozofií programů v Pythonu a jiných programovacích jazycích. Studenti se též seznámí s hlavními rozdíly mezi ne zcela kompatibilními verzemi 2.x a 3.x jazyka.
Aim of the course -
Last update: Znamenáček Jiří Ing. (20.01.2014)
Thanks to Python's uniqueness students will be able to apply such diversified techniques as iterators, closures and functional constructs to name just a few. Also they will learn principles of test driven development (TDD) and distributed version control systems (DVCS) which are essential parts of every serious programming work.
Last update: Znamenáček Jiří Ing. (20.01.2014)
Díky poměrně unikátní stavbě jazyka Python se studenti seznámí s tak rozdílnými přístupy k řešení problémů jako je použití iterátorů, uzávěrů, prvků funkcionálního programování a dalších. Zároveň se naučí pracovat se dvěma základními kameny každé seriózní programátorské práce - programování podle principů vývoje řízeného testy (TDD) a zaznamenávání svého postupu pomocí nástrojů pro správu verzí (DVCS).
Literature -
Last update: Znamenáček Jiří Ing. (20.01.2014)
Pilgrim, Mark: Dive Into Python 3. Apress, 2009. ISBN 978-1430224150
Necaise, Rance D.: Data Structures and Algorithms Using Python. John Wiley & Sons, Inc, 2011. ISBN 978-0470618295
Last update: Jirát Jiří Ing. Ph.D. (10.01.2014)
Z:Pilgrim, Mark: Dive Into Python 3. Apress, 2009. ISBN 978-1430224150
Z:Necaise, Rance D.: Data Structures and Algorithms Using Python. John Wiley & Sons, Inc, 2011. ISBN 978-0470618295
Learning resources -
Last update: Znamenáček Jiří Ing. (20.01.2014)
https://edux.fit.cvut.cz/courses/BI-PYT/
(login required)
Last update: Jirát Jiří Ing. Ph.D. (10.01.2014)
https://edux.fit.cvut.cz/courses/BI-PYT
(nutné přihlášení)
Syllabus -
Last update: Znamenáček Jiří Ing. (20.01.2014)
1. Python overview. Operators and logical expressions. Mutable and immutable types distinction.
2. Main immutable types: strings, numbers (integers, floats, complex, fractions)
3. User input. Conditionals and loops (if, for, while, break).
6. Binary data. Working with files and internet sources.
7. Functions: arguments (positional and keyword ones), variable visibility, closures, "lambda"-functions, first class functions.
8. Introduction to OOP in Python: classes, instances, inheritance, introspection, corner cases.
9. Errors and exceptions: detection and handling, raising, assertions, exceptions hierarchy. Unit tests: TDD (test driven development), applications, usage.
10. More on functions and classes: decorators, generators, functional programming, iterators, magic methods and their applications (sorting, operator overload).
11. File system. Environment interaction.
12. Serialization. Regular expressions.
13. Modules, Python's standard library. CPython's bytecode.
Last update: Jirát Jiří Ing. Ph.D. (10.01.2014)
1. Úvod do možností jazyka. Operátory a logické výrazy. Základní dělení typů na proměnné a neproměnné.
2. Základní neproměnné typy: řetězce, čísla (celá, reálná, komplexní, zlomky).
3. Uživatelský vstup. Podmíněné příkazy a cykly: if, for, while, break.
6. Binární data. Práce se soubory. Načítání dat z netu.
7. Funkce: argumenty (poziční a pojmenované), viditelnost proměnných, uzávěry, "lambda"-funkce, funkce jako "first class citizens".
8. Základní principy OOP v jazyce Python: třídy a jejich instance, dědičnost, introspekce, zvláštnosti OOP v Pythonu.
9. Chyby a výjimky: detekce a ošetření, vyvolávání, aserce, hierarchie standardních výjimek. Unit-testy: TDD = vývoj řízený testy, zavedení, použití, přípravné a "čistící" metody, zástupné objekty.
10. Pokročilé vlastnosti funkcí a tříd: dekorátory, generátory, funkcionální prvky, iterátory, magické metody a jejich aplikace (třídění, přetěžování operátorů).
11. Souborový systém. Interakce s prostředím.
12. Serializace datových struktur. Regexpy.
13. Moduly, standardní knihovna. Bajtkód interpretru CPython.
Registration requirements -
Last update: Znamenáček Jiří Ing. (20.01.2014)
Basic knowledge of programming and algorithm development (such as BI-PA1 curse) is assumed.
Last update: Jirát Jiří Ing. Ph.D. (10.01.2014)
Předpokládá se znalost základů programování a algoritmizace na úrovni BI-PA1. Podrobné požadavky jsou uvedeny na stránce: https://edux.fit.cvut.cz/courses/BI-PYT