Module also offered within study programmes:
General information:
Name:
Python in the Enterprise
Course of study:
2018/2019
Code:
JFT-2-034-s
Faculty of:
Physics and Applied Computer Science
Study level:
Second-cycle studies
Specialty:
-
Field of study:
Technical Physics
Semester:
0
Profile of education:
Academic (A)
Lecture language:
English
Form and type of study:
Full-time studies
Course homepage:
 
Responsible teacher:
dr hab. inż, prof. AGH Szumlak Tomasz (szumlak@agh.edu.pl)
Academic teachers:
dr hab. inż, prof. AGH Szumlak Tomasz (szumlak@agh.edu.pl)
Module summary

If you are interested in learning some advanced features of Python and going beyond the
Python standard library this is something for you!

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 A student can communicate his/her results and discuss them FT2A_K01 Project
Skills
M_U001 A student can write complete applications, use both scripts and classes. FT2A_U01, FT2A_U05, FT2A_U03 Project
M_U002 A student can work as a part of a team and can interact properly with his/her co-workers FT2A_U01 Project
Knowledge
M_W001 A student gains knowledge on advanced topics related to the Python language FT2A_W01 Activity during classes,
Examination,
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 A student can communicate his/her results and discuss them - - - + - - - - - - -
Skills
M_U001 A student can write complete applications, use both scripts and classes. - - - + - - - - - - -
M_U002 A student can work as a part of a team and can interact properly with his/her co-workers - - + + - - - - - - -
Knowledge
M_W001 A student gains knowledge on advanced topics related to the Python language + - + - - - - - - - -
Module content
Lectures:
  1. Introduction

    Python is an extremely popular programming language that can be used for solving
    diverse problems ranging from complicated scientific simulations to writing robust
    Web 2.0 MVC applications. The first two lectures focus on providing a condensed overview
    of the language and its specific features. This is not intended as an exhaustive
    description of Python but rather as a hands-on approach to learn what the language is capable of.

  2. Data structures and abstraction in Python

    Whatever it is you are after – a sophisticated statistical analysis or an e-commerce
    application to earn some money – you need to be aware of how to represent, store
    and handle your data. These will be covered in this lecture where some of the most
    sacred concepts of the object oriented programming will be discusses. So, brace yourself
    for the polymorphism, encapsulation and inheritance. An example implementation of the binary
    search algorithm will be detailed here to illustrate the material.

  3. Be lazy – reuse

    No matter what problem you are suppose to solve you can be almost certain somebody else
    has already wrote the appropriate code for you! So, do not hesitate – reuse the existing libraries.
    Python comes with zillion of modules that can be exploited by you – do it! Here we learn how
    to look for and how to use Python modules.

  4. Be ambitious – modify and extend

    Reusing existing code does not mean you cannot be inventive and creative! Python gives you
    unique opportunity to be a part of the development team if you only want. This is much easier
    than you think. Preparing modules that can be used by others is both easy and very rewarding.
    Let’s see how it’s done.

  5. Django

    Django is a web development framework that can significantly facilitate the process of web
    applications. Here we discuss what a framework actually is and why it is worth to invest some
    time to know and use Django.

  6. Effective silicon energy band

    To give this course also some physics twist we take a look at the radiation damage in silicon
    devices that are design to detect charged particles that are produced by crushing protons
    in Large Hadron Collider. One way of doing this can be by measuring reverse bias current
    as a function of temperature. A complete application that is used to process the data
    and perform physics analysis will be presented.

Laboratory classes:
  1. Introduction

    Here we learn all about installing and running Python on Win or Linux platforms. Using the Python interpreter for fast checks and prototyping. Putting your scripts into files and executing them.

  2. Creating modules

    Building and importing modules. Inheritance hierarchy – dividing your code – many source files and locations. Providing encapsulated solutions for your fellow students.

  3. Using Django

    Basic introduction to the Django framework. Creating simple application. Where to go from there, i.e., internet resources.

  4. Pattern recognition

    Even more advanced example of real-life application for looking for specific patterns in a data sample. We discuss how to start designing an algorithm. Then implementation and testing follow. Things to remember here are: when writing code mind other users – provide documentation, the code you wrote is not something that is going to last forever – the application will need maintenance and finally remember modularity, i.e, you may reuse your own code – be generic.

Project classes:
Physics or e-commerce

A number of projects will be provided for students depending on an individual interest. It is possible to cluster students together to work on a single project (no more than 3 people working the same problem)

Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 127 h
Module ECTS credits 5 ECTS
Participation in lectures 15 h
Realization of independently performed tasks 40 h
Participation in laboratory classes 20 h
Preparation for classes 20 h
Participation in project classes 10 h
Contact hours 20 h
Examination or Final test 2 h
Additional information
Method of calculating the final grade:

The final mark will be determined by observing the general rules set by the AGH University

The final mark (FM) E – exam, L – computer lab, P – project
FM = 0,5 x E + 0,2 x L + 0,3 x P

Prerequisites and additional requirements:

- basic knowledge of Python is an asset but not compulsory to take this course

Recommended literature and teaching resources:

- web resources: python.org
- books, a bit of a problem since time flies fast and many today’s latest and greatest are obsolete tomorrow, anyhow, check out:
1) Professional Python Frameworks: Web 2.0 Programming with Django and Turbogears
Dana Moore, Raymond Budd, William Wright; ISBN: 978-0-470-13809-0
2) The Definitive Guide to Django: Web Development Done Right
Jacob Kaplan-Moss, Adrian Holovaty; ISBN-10: 1590597257

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

According to the WoS.

Additional information:

Absences on lab classes and tutorials will have to be negotiated with the tutor.