Principles of Programming (2022)#

Download as PDF

Principles of Programming is a one-semester master course building on profound knowledge of object-oriented design, programming in Java, and geospatial data in all its forms by adding aspects of software engineering, the high-performance language C++ (in its modern form) and Python.

Material#

Background and Context#

Principles of Programming is an advanced (master) course in the study program Geodesy and Geoinformation. This course assumes very good knowledge of at least one object-oriented programming language (typically Java), object-oriented design and data modeling (UML, etc.), as well as geospatial data and basic geodata algortihms.

Based on this knowledge (which is typically taught in the Bachelor degree program at Technical University of Munich, the aim of this lecture is described as

With this course, students are enabled to solve their geodetic problems using programming. They obtain a working knowledge of programming languages, algorithms, software patterns and libraries needed to solve complex computatoinal problems.

in the module definition and we give the following framework of aspects that we have to cover:

In this course, students are introduced to advanced programming and algorithms with examples in Python and C++. It shall as well include some examples from computational geometry, point cloud processing, image analysis, etc. to - at the same time - introduce canonical patterns or even core libraries for working with data from subfields of geodesy.

  • Python, numpy, tensorflow

  • C++11, generic programming (beyond object orientation which I expect them to “roughly” know)

  • Python & C++ interaction

  • Various Data Structures and techniques

Time Plan#

This lecture is organized into thirteen units out of which you can influence quite a few depending on the previous knowledge in the group and the interest.

First the dates in 2022/23:

Date

Topic

18.10.2022

Lecture + Tutorial

25.10.2022

Lecture + Tutorial

01.11.2022

Public Holiday

08.11.2022

Lecture + Tutorial

15.11.2022

Conflict (in resolution)

22.11.2022

Lecture + Tutorial

29.11.2022

Lecture + Tutorial

06.12.2022

Lecture + Tutorial

13.12.2022

Lecture + Tutorial

20.12.2022

Lecture + Tutorial

Christmas Break

10.01.2023

Lecture + Tutorial

17.01.2023

Lecture + Tutorial

24.01.2023

Lecture + Tutorial

31.01.2023

Lecture + Tutorial

07.02.2023

Lecture + Tutorial

———–

——————–

Modules#

tba