University of Warsaw - Central Authentication System
Strona główna

Tools Supporting Data Analysis in Python

General data

Course ID: 1000-1M20NPD
Erasmus code / ISCED: 11.3 Kod klasyfikacyjny przedmiotu składa się z trzech do pięciu cyfr, przy czym trzy pierwsze oznaczają klasyfikację dziedziny wg. Listy kodów dziedzin obowiązującej w programie Socrates/Erasmus, czwarta (dotąd na ogół 0) – ewentualne uszczegółowienie informacji o dyscyplinie, piąta – stopień zaawansowania przedmiotu ustalony na podstawie roku studiów, dla którego przedmiot jest przeznaczony. / (0612) Database and network design and administration The ISCED (International Standard Classification of Education) code has been designed by UNESCO.
Course title: Tools Supporting Data Analysis in Python
Name in Polish: Narzędzia programistyczne w Pythonie wspierające analizę danych
Organizational unit: Faculty of Mathematics, Informatics, and Mechanics
Course groups: Elective courses for 2nd stage studies in Mathematics
ECTS credit allocation (and other scores): 6.00 Basic information on ECTS credits allocation principles:
  • the annual hourly workload of the student’s work required to achieve the expected learning outcomes for a given stage is 1500-1800h, corresponding to 60 ECTS;
  • the student’s weekly hourly workload is 45 h;
  • 1 ECTS point corresponds to 25-30 hours of student work needed to achieve the assumed learning outcomes;
  • weekly student workload necessary to achieve the assumed learning outcomes allows to obtain 1.5 ECTS;
  • work required to pass the course, which has been assigned 3 ECTS, constitutes 10% of the semester student load.

view allocation of credits
Language: English
Type of course:

elective monographs

Short description:

Introduction to techniques and programming tools in Python with emphasis on their application in the data analysis domain.

Full description:

1. Introduction to the Python programming language, code writing standards.

2. Working with the command line on Linux - often very useful for example for remote access.

3. Git - code repositories, versioning, and synchronizing.

4. Modules - better code organization, greater readability, and ease of code maintenance.

5. The argparse library and other options for configuring the program state and handling configuration files - how to use the program for different data (and get clear messages about incorrect parameters) without the need to modify the program.

6. Jupyter - an interactive console in the browser, allows convenient remote work, easy preview, and convenient presentation of results.

7. Software testing - good practices and useful tools.

8. Using the debugger while testing - how to speed up finding and understanding the source of program errors.

9. Python package - how to prepare code for sharing between projects.

10. Numpy library - support for multidimensional arrays.

11. Pandas library - support for data in tables.

12. Profiler - how to find program parts that really slow down the execution of the program.

13. Continuous integration and tox - that is, how to verify that the project is well defined and described, by automatic checking that no errors have been introduced to the project (eg. by adding new functions).

14. Cython, numba.jit - what to do to speed up program execution or use a library written in C language, which has no Python interface.

Bibliography:

- Python for Data Analysis, Wes McKinney, 2nd ed., 2017,

- Python Crash Course, a hands-on, project-based introduction to programming, 2nd ed. Eric Matthes, 2019.

- Programming Python, Mark Lutz, 4th ed., 2011.

- Pro Git , Scott Chacon i Ben Straub, 2nd ed., 2014.

- https://docs.python.org/.

- Internet documentation for tools presented during this course.

Learning outcomes:

After completing the course the student knows:

- Python in sufficient degree to create own medium-sized applications,

- commonly used tools for data analysis,

- commonly used tools for teamwork.

Assessment methods and assessment criteria:

Small programming tasks during the semester (30%).

Exam in the form of discussing the final assignment (70%).

The so-called "zero-exam" can be taken only by those students who had been awarded at least 90% of points from the small programming tasks. The form of this exam is exactly the same as in the case of the regular exam.

Classes in period "Summer semester 2023/24" (in progress)

Time span: 2024-02-19 - 2024-06-16
Selected timetable range:
Navigate to timetable
Type of class:
Lab, 30 hours more information
Lecture, 30 hours more information
Coordinators: Janusz Jabłonowski
Group instructors: Grzegorz Bokota, Jacek Chrząszcz, Janusz Jabłonowski, Jarosław Paszek
Students list: (inaccessible to you)
Examination: Examination

Classes in period "Summer semester 2024/25" (future)

Time span: 2025-02-17 - 2025-06-08
Selected timetable range:
Navigate to timetable
Type of class:
Lab, 30 hours more information
Lecture, 30 hours more information
Coordinators: Janusz Jabłonowski
Group instructors: Grzegorz Bokota, Jacek Chrząszcz, Janusz Jabłonowski, Jarosław Paszek
Students list: (inaccessible to you)
Examination: Examination
Course descriptions are protected by copyright.
Copyright by University of Warsaw.
Krakowskie Przedmieście 26/28
00-927 Warszawa
tel: +48 22 55 20 000 https://uw.edu.pl/
contact accessibility statement USOSweb 7.0.3.0 (2024-03-22)