F5698 The Ultimate Python Developer's guide

Faculty of Science
Autumn 2022
Extent and Intensity
0/2/0. 2 credit(s). Type of Completion: z (credit).
Teacher(s)
Mgr. Andrej Roštek (seminar tutor)
Dr. Martin Topinka, PhD. (seminar tutor)
Mgr. Petr Zikán, Ph.D. (seminar tutor)
Guaranteed by
Dr. Martin Topinka, PhD.
Department of Theoretical Physics and Astrophysics – Physics Section – Faculty of Science
Contact Person: Dr. Martin Topinka, PhD.
Supplier department: Department of Theoretical Physics and Astrophysics – Physics Section – Faculty of Science
Timetable
Mon 16:00–17:50 Fcom,01034
Prerequisites
The course is a free continuation of F1420 Programming in Python and F4500 Python for physicists. Basic knowledge of Python language (basic syntax and data structures, functions, modules) is assumed.
Course Enrolment Limitations
The course is also offered to the students of the fields other than those the course is directly associated with.
fields of study / plans the course is directly associated with
there are 6 fields of study the course is directly associated with, display
Course objectives
The aim of the course is to acquaint the young developer with the procedures and tools used in creating more complex programs in Python. During the course we will also show some more advanced concepts and possibilities of Python, widely used when working on more complex problems.
Learning outcomes
At the end of the course, the young developer should be able to apply the following in practice:

* Basic use of objects and classes
* Dictionary manipulation and program configuration
* Basic understanding and work with databases
* Git code versioning and working in IDE (VS Code)
* Use of some advanced packages (logging, CLI, ...)
* Design of more complex programs and their testing
Syllabus
  • Git and code versioning, IDE environment (VS Code), GitLab
  • Modules, packages, installations (pip and others)
  • Classes and objects
  • Dictionaries, introduction to databases, program configuration
  • Selected advanced language concepts (decorators, parallel programming, ...)
  • Logging, Command Line Interface (CLI)
  • Program design, domain modeling and testing
Literature
    recommended literature
  • Bob Gregory. Architecture Patterns with Python. O'Reilly Media, Inc. 2020. https://www.cosmicpython.com/
  • Scopatz, Anthony, and Kathryn D. Huff. Effective computation in physics: Field guide to research with python. " O'Reilly Media, Inc.", 2015.
  • LUTZ, Mark. Learning Python. 4th ed. Beijing: O'Reilly, 2009, xlix, 1162. ISBN 9780596158064. info
Teaching methods
Teaching will take place in the form of seminars. Frontal teaching will be alternated by demonstrations of programming techniques, which the student can program simultaneously with the teacher on their own computer. One of the basic programming principles is: "do not reinvent the wheel". In accordance with this principle, various video lessons (typically in English) will be screened during the course, followed by a joint discussion.
Assessment methods
The course will be completed on the basis of of a semester work. This will be a non-trivial Python program that will meet the following criteria: a functional Python package uploaded to GitLab, whose functionality can be run through the CLI and will contain non-trivial tests of this functionality.
Language of instruction
Czech
Further comments (probably available only in Czech)
Study Materials
The course can also be completed outside the examination period.
The course is taught annually.
Teacher's information
It is advisable for the student to have their own computer during the lesson. Teaching will primarily use the Linux operating system, however, other operating systems (Windows, iOS) should not be an obstacle. It is possible that on the latter operating systems, the teacher will not be able to provide full support to the young developer.
The course is also listed under the following terms autumn 2021, Autumn 2023, Autumn 2024.
  • Enrolment Statistics (Autumn 2022, recent)
  • Permalink: https://is.muni.cz/course/sci/autumn2022/F5698