SubjectsSubjects(version: 845)
Course, academic year 2018/2019
Programming in Python - N500005
Title in English: Programování v Pythonu
Guaranteed by: CTU in Prague, Faculty of Information Technology (500)
Actual: from 2014
Semester: summer
Points: summer s.:4
E-Credits: summer s.:4
Examination process: summer s.:
Hours per week, examination: summer s.:2/2 C+Ex [hours/week]
Capacity: unknown / unknown (unknown)
Min. number of students: unlimited
Language: Czech
Teaching methods: full-time
For type:  
Guarantor: Znamenáček Jiří Ing.
Annotation -
Last update: Znamenáček Jiří Ing. (20.01.2014)
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.
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.

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

Learning resources -
Last update: Znamenáček Jiří Ing. (20.01.2014)

(login required)

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).

4. Sequence types: strings, lists, tuples -- operations, methods, loop usage.

5. Mapping types: dictionaries, sets -- operations, methods, loop usage.

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.

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.

Teaching methods
Activity Credits Hours
Účast na přednáškách 1 28
Práce na individuálním projektu 1 28
Příprava na zkoušku a její absolvování 0,7 20
Účast na seminářích 1 28
4 / 4 104 / 112