Algorithms and Programming in Python
Informacje ogólne
Kod przedmiotu: | 1000-OG-EN-APP |
Kod Erasmus / ISCED: |
(brak danych)
/
(0613) Tworzenie i analiza oprogramowania i aplikacji
|
Nazwa przedmiotu: | Algorithms and Programming in Python |
Jednostka: | Wydział Matematyki i Informatyki |
Grupy: |
Przedmioty ogólnouniwersyteckie |
Strona przedmiotu: | https://moodle.umk.pl/course/view.php?id=7170 |
Punkty ECTS i inne: |
6.00
|
Język prowadzenia: | angielski |
Wymagania wstępne: | (tylko po angielsku) As a prerequisite for the course it is recommended that a student has a basic digital competences, such as using a text editor, running applications, using websites. Basic knowledge of school mathematics will also be useful. |
Całkowity nakład pracy studenta: | (tylko po angielsku) Contact hours with teacher: - participation in virtual lectures - 30 hrs - participation in laboratory - 30 hrs Self-study hours: - preparation for lectures - 30 hrs - preparation for laboratory - 30 hrs - preparation for test - 20 hrs - preparation for examination - 20 hrs Altogether: 160 hrs (6 ECTS) |
Efekty uczenia się - wiedza: | (tylko po angielsku) Student: W1: has a basic knowledge of the concepts of algorithm theory: input and output data, algorithm definition, representations of algorithms, instruction, iteration, conditionals, recursion, computational complexity, etc. W2: knows general properties of algorithms useful in various fields of science, their complexity and applications; W3: is familiar with the basic methods of designing algorithms and examples of their use, knows the basic data structures (lists, tuples, dictionaries, sets, files) and operations performed on them (adding and removing elements, changing values, etc.); W4: is acquainted with the Python programming language, knows the rules of structured and procedural programming; knows the rules of object-oriented programming, the concept of class and object, the rules of inheritance, W5: knows at least two tools for working with the source code, knows how to use the installer of packages; |
Efekty uczenia się - umiejętności: | (tylko po angielsku) Student: U1: is able to design algorithms for typical tasks, such as searching and sorting; can formulate a specification of an algorithm and save it in the form of a pseudocode; implements algorithms and selects appropriate data structures; analyzes the influence of data structures on the computational complexity of algorithms; U2: is able to write, run, test and debug a program in a selected development environment; can work with objects and design object-oriented programs; is able to use a standard library and install additional libraries; is able to work with complex data structures; is able to build a hierarchical structure of the program, creates code resistant to user errors; U3: has basic skills in designing algorithms that solve specific problems in various fields of science, can use ready-made functions and methods for processing data sets and creating their visualization; U4: is capable to analyze and understand programs written in the selected programming language, to explain their operation, to test the solution correctness; U5: can individyually search for information in various sources, also in foreign languages. |
Efekty uczenia się - kompetencje społeczne: | (tylko po angielsku) Student: K1: understands the importance of a thorough analysis of problems from various areas of life in the context of the possibility of using algorithms to solve encountered problems; K2: understands the necessity of designing properly functioning computer applications and is aware of their impact on the quality of devices and applications functioning in the society; K3: is well prepared to predict possible difficulties while programming algorithms, is targeted to perform the task in the best possible way; takes care of the detail; is systematic and persistent; K4: can work in teams while creating and solving various problem situations. |
Metody dydaktyczne: | (tylko po angielsku) Expository teaching methods: - informative (conventional) lecture, - problem-based lecture, - description. Observation/demonstration teaching methods: - drama, - display, - simulation (simulation games). Exploratory teaching methods: - experimental, - brainstorming, - classic problem-solving, - project work. |
Metody dydaktyczne eksponujące: | - drama |
Metody dydaktyczne podające: | - opis |
Metody dydaktyczne poszukujące: | - ćwiczeniowa |
Metody dydaktyczne w kształceniu online: | - gry i symulacje |
Skrócony opis: |
(tylko po angielsku) The subject is an introduction to the field of algorithmics and programming. In addition, it develops algorithmic thinking and improves logical reasoning. The main goal is to prepare students to solve problems in various fields of science with the use of basic algorithms, data structures, and implement algorithms in Python. The lecture covers the basic concepts of algorithm theory, classical algorithms, data structures and the rules of programming in Python. During the laboratory, students acquire the skills of algorithm design by solving typical tasks, such as searching, sorting, implementation of algorithms in Python using standard libraries and complex data structures. |
Pełny opis: |
(tylko po angielsku) The topics of the following lectures and laboratories are strictly correlated. For each two-hour lecture, there are four hours of exercises in a computer laboratory when the algorithms discussed in the lecture are effectively implemented in Python. Moreover, students discover and develop algorithms for solving related problems. Lecture and laboratory topics: 1) Introduction to algorithmics and programming - definition and properties of an algorithm, ways of representing algorithms, examples of algorithmic problems, representation of characters and numbers in a computer. 2) Introduction to Python programming language, programming environment, syntax and semantics, program structure, variables, instructions, comments, using additional programming libraries - algorithms for examining various properties of numbers and texts: divisibility, Euclid's algorithm, palindromes. 3) Functions, passing parameters, random data, basic information retrieval algorithms, number systems, generating data with specific properties, a list as a data structure. 4) Basic algorithms that organize information, use of prefix sums, reading data from files, saving information in files. 5) Iteration and recursion - recursive and iterative calculations; applications of recursion, examples of recursive and iterative. algorithms: Euclid's algorithm, Horner's scheme, fast exponentiation 6) Recursive sorts; stack, queue; Reverse Polish Notation (RPN); tuples as immutable structures. 7) Sets, dictionaries and their application, graphs and their basic representations; topological sort; numerical algorithms, copying references in Python. 8) Supercomputers. Turing machine. Computational complexity, asymptotic notation, optimal algorithms. 9) Algorithmic methods and techniques; greedy approach, dynamic programming, Bellman’s optimality principle, backtracking. 10) Basic geometric algorithms - the position of a point in relation to the straight line, line intersection, polar sort, convex hull. 11) Basic graphic modules in Python, algorithm visualizations, graphical data representation, fractals, Monte Carlo method visualization. 12) Algorithms on texts: pattern searching, information compression. 13) Pseudo-code of algorithms 14) Programming paradigms, basics of object-oriented programming: classes, objects, methods. 15) Object-oriented programming - polymorphism, inheritance, operator overloading, example of object-oriented implementations. |
Literatura: |
(tylko po angielsku) Basic literature – books: [1] R. Sedgewick, K. Wayne, Algorithms, Addison-Wesley Longman, Amsterdam 2020 [2] D. Harel, Algorithmics: The Spirit of Computing, Addison Wesley Publishing Company, 2004 [3] E. Matthes, Python Crash Course, No Starch Press, US, 2019 Basic literature – e-materials: [4] An overview of algorithms, https://www.khanacademy.org/computing/computer-science/algorithms [5] Descriptions of many algorithms and data structure, https://cp-algorithms.com/ [6] The documentation of Python, http://docs.python.org [7] Lecturer’s electronic materials on the Moodle platform, http://moodle.umk.pl Supplementary literature: [8] T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein, Introduction to Algorithms, MIT Press Ltd, 2009. [9] W. McKinney, Python for Data Analysis, O'Reilly Media, Inc., 2017 |
Metody i kryteria oceniania: |
(tylko po angielsku) Assessment methods: Written examination composed of two parts: – theoretical (knowledge), 50 pts, – W1, W2, W3, W4, U1, U4, K1 – practical (skills), 50 pts – W2, W3, W5, U2, U3, U5, K2, K3, K4 In order to pass an exam, a student has to receive at least 50% in every part. Laboratories: The final grade is composed of activities: – two tests, 2*30 pts – W2, W3, W4,U1, U4, K1 – six homeworks, 6*5 pts – W2, W3, W5; U3, U5, K3, K4 – lecture knowledge, 10 pts, – W1, W2, W3, W4, U5 In order to pass, a student has to receive at least 50% of every component grade. During the semester, only two unjustified absences are permitted. Assessment criteria: fail (2), 0-49 pts satisfactory (3), 50-59 pts satisfactory plus (3+), 60-69 pts good (4), 70-79 pts good plus (4+), 80-89 pts very good (5), 90-100 pts |
Zajęcia w cyklu "Semestr zimowy 2022/23" (zakończony)
Okres: | 2022-10-01 - 2023-02-19 |
Przejdź do planu
PN WT WYK
ŚR LAB
CZ PT |
Typ zajęć: |
Laboratorium, 30 godzin, 15 miejsc
Wykład, 30 godzin, 15 miejsc
|
|
Koordynatorzy: | Anna Kwiatkowska | |
Prowadzący grup: | Damian Kurpiewski, Anna Kwiatkowska | |
Strona przedmiotu: | https://moodle.umk.pl/course/view.php?id=3910 | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: |
Przedmiot -
Egzamin
Laboratorium - Zaliczenie Wykład - Egzamin |
|
Skrócony opis: |
As in part A |
|
Pełny opis: |
As in part A |
|
Literatura: |
As in part A |
Zajęcia w cyklu "Semestr zimowy 2023/24" (zakończony)
Okres: | 2023-10-01 - 2024-02-19 |
Przejdź do planu
PN WYK
WT LAB
ŚR CZ PT |
Typ zajęć: |
Laboratorium, 30 godzin, 15 miejsc
Wykład, 30 godzin, 15 miejsc
|
|
Koordynatorzy: | Anna Kwiatkowska | |
Prowadzący grup: | Damian Kurpiewski, Anna Kwiatkowska | |
Strona przedmiotu: | https://moodle.umk.pl/course/view.php?id=3910 | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: |
Przedmiot -
Egzamin
Laboratorium - Zaliczenie Wykład - Egzamin |
|
Skrócony opis: |
As in part A |
|
Pełny opis: |
As in part A |
|
Literatura: |
As in part A |
Zajęcia w cyklu "Semestr zimowy 2024/25" (zakończony)
Okres: | 2024-10-01 - 2025-02-23 |
Przejdź do planu
PN WT ŚR WYK
CZ PT LAB
|
Typ zajęć: |
Laboratorium, 30 godzin, 15 miejsc
Wykład, 30 godzin, 15 miejsc
|
|
Koordynatorzy: | Anna Kwiatkowska | |
Prowadzący grup: | Damian Kurpiewski, Anna Kwiatkowska | |
Strona przedmiotu: | https://moodle.umk.pl/course/view.php?id=7170 | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: |
Przedmiot -
Egzamin
Laboratorium - Zaliczenie Wykład - Egzamin |
|
Skrócony opis: |
As in part A |
|
Pełny opis: |
As in part A |
|
Literatura: |
As in part A |
|
Uwagi: |
(tylko po angielsku) As in part A |
Zajęcia w cyklu "Semestr zimowy 2025/26" (jeszcze nie rozpoczęty)
Okres: | 2025-10-01 - 2026-02-22 |
Przejdź do planu
PN WT ŚR CZ PT |
Typ zajęć: |
Laboratorium, 30 godzin, 15 miejsc
Wykład, 30 godzin, 15 miejsc
|
|
Koordynatorzy: | (brak danych) | |
Prowadzący grup: | Damian Kurpiewski, Anna Kwiatkowska | |
Strona przedmiotu: | https://moodle.umk.pl/course/view.php?id=7170 | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: |
Przedmiot -
Egzamin
Laboratorium - Zaliczenie Wykład - Egzamin |
|
Skrócony opis: |
As in part A |
|
Pełny opis: |
As in part A |
|
Literatura: |
As in part A |
|
Uwagi: |
(tylko po angielsku) As in part A |
Właścicielem praw autorskich jest Uniwersytet Mikołaja Kopernika w Toruniu.