Course detail
Python in Applied Science
FSI-T0PAcad. year: 2017/2018
Students will solve model problems that demonstrate how best practices of software engineering can assist in solving them. Students will be introduced into test-driven development, code review and they will become familiar with best practices in structuring and documenting one's code in order to increase maintainability and accessibility. The Enthought Canopy Python distribution (available for MS Windows, Mac OSX and Linux) wil be available for students to use.
Language of instruction
Number of ECTS credits
Mode of study
Guarantor
Department
Learning outcomes of the course unit
Prerequisites
Co-requisites
Planned learning activities and teaching methods
Assesment methods and criteria linked to learning outcomes
Course curriculum
Work placements
Aims
Specification of controlled education, way of implementation and compensation for absences
Recommended optional programme components
Prerequisites and corequisites
Basic literature
Scipy lecture notes: http://www.scipy-lectures.org/ (CS)
Summerfield, M.: Python 3 - Výukový kurz, COMPUTER PRESS, 2012 (CS)
Recommended reading
Classification of course in study plans
Type of course unit
Lecture
Teacher / Lecturer
Syllabus
Python software project structure, structure of modules and packages.
Variables, basic types, functions, passing by value / reference.
Introduction to object-oriented programming (OOP)
Introduction to design patterns, the "strategy" pattern.
Introduction to testing and data visualization.
Going deeper to OOP, "factory" and "decorator" patterns.
Documentation generation, "facade" and "adapter" patterns.
How to deal with third-party modules.
Creating GUI applications, "observer" and MVC patterns.
More on GUI applications, the "state" pattern.
On Python pitfalls.
Computer-assisted exercise
Teacher / Lecturer
Syllabus
Crteating a standard-compliant Python project
"Dice" project
Dice project and OOP
Dice project - creating loaded dice
Dice project - testing, revealing loaded dice
Dice project - further generalization, refactoring
Tabletop game simulation
Using Google Deep Dream
GUI project
GUI project
Practical pitfall demonstration