Algorithms, programming, and data representation (AlgProgDat)10 ECTS
(englische Bezeichnung: Algorithms, programming, and data representation)
Modulverantwortliche/r: Bernhard Kainz
Lehrende:
Bernhard Kainz, Johanna Müller, Mischa Dombrowski
Startsemester: |
WS 2022/2023 | Dauer: |
1 Semester | Turnus: |
jährlich (WS) |
Präsenzzeit: |
120 Std. | Eigenstudium: |
180 Std. | Sprache: |
Englisch |
Lehrveranstaltungen:
-
-
Algorithms, programming, and data representation
(Vorlesung, 4 SWS, Bernhard Kainz, Mo, 08:15 - 09:45, H11)
-
Algorithms, programming, and data representation; Exercise
(Übung, 2 SWS, Johanna Müller et al.)
-
Algorithms, programming, and data representation; Tutorial
(Übung, 2 SWS, Mischa Dombrowski et al.)
Inhalt:
The lecture Algorithms, programming, and data representation is aimed at students with tech and math background and is one of the basic lectures in the field of computer science. In addition to an introduction to fundamental algorithms, (object-oriented) programming in Python, various data structures such as linked lists, trees and graphs are covered. Algorithms include recursion, sorting methods and graph algorithms, as well as O notation of algorithms.
Lernziele und Kompetenzen:
Topics:
Students will solve object-oriented programming tasks in the Python programming language illustrate program structures with the help of a subset of the Unified Modelling Language
compare the efforts of different algorithms in terms of runtime and memory requirements implement basic combinatorial algorithms, especially search and sort algorithms, binary trees and basic graph algorithms understand and use recursion as a link between mathematical problem descriptions and programming implementation translate recursive problem descriptions into iterative ones
plan and process programming tasks in such a way that they are completed on time.
Syllabus: (L - lecture, C - coursework, T - tutorial)
L01 Motivation and Logistics L02 Introduction: What does a Computer do
C01 Explore local Anaconda and Google Colab
L03 Data Representation and Boolean Algebra
L04 Floating Point numbers
T01 Organization and Boolean Algebra
C02 Number Representations and Boolean Algebra in Python
L05 Memory Organisation
L06 Branching and Iterations
T02 Number Representations and Boolean Algebra
C03 Branching and Iterations
L07 Decomposition, Abstraction, and Functions, Tuples, Lists, etc.
L08 Recursion and Dictionaries
T03 Memory Organisation
C04 Recursion and Dictionaries
L09 Testing, Debugging, Exceptions, and Assertions
L10 Object Oriented Programming
T04 Decomposition, Abstraction, and Functions
C05 Testing, Debugging, Exceptions, and Assertions
L11 Classes and Inheritance
L12 Program efficency I
T05 Recursion
C06 Classes and Inheritance
L13 Program efficency II
L14 Searching and Sorting
T06 Object Oriented Programming
C07 Searching and Sorting
L15 Version management and git
L16 API and Libraries
T07 Program efficency
C08 APIs and Libraries
L18 Graphs and graph algorithms
L19 Bellman-Ford
T08 Searching and Sorting
C09 Searching and Sorting
L20 Dijkstra
L21 Graphs and Trees
T09 Graphs and Trees
C10 Graphs and Trees
L21 Dynamic Programming
L22 Hashtables
T10 Hashtables
C11 Hashtables
R01 Revision Q&A
R02 Revision Q&A
Confidence and social competence:
The students will
organize themselves independently into groups and coordinate the organizational and technical process of group work in consultation with each other
communicate and jointly develop solutions for theoretical questions and practical programming tasks within the framework of group tasks
plan and apply targeted measures for mutual quality assurance of the submitted solutions (check each other's group submissions)
are jointly responsible for the result of their group work, the evaluation of which applies equally to both group partners
Studien-/Prüfungsleistungen: