Informatics 2 syllabus#

Contemporary usage of Python

4 SWS, 5 ECTS, in degree program LSI Master and ICS

Intended learning outcomes#

The purpose of the course is for you (the student) to learn to:

Professional competences:

  • outline fundamental features of the Python programming language

  • understand the advantages of object-oriented and functional programming

  • know different request types to access web resources

  • list useful libraries from the standard library

Methodological competences:

  • implement programs for string processing

  • leverage the interactive interpreter for short computing tasks

  • use object-oriented programming to breakdown a program into classes

  • use functional programming to write shorter code

  • implement programs for interacting with web APIs

  • carry out simple image processing tasks

  • leverage Numpy to conveniently work with matrices

  • use an unknown library by reading its documentation

Social competences

  • cooperate in a pair programming setting

  • evaluate someone else’s work and give constructive feedback (e.g., in context of peer-assessed exercises)

Prerequisites#

  • Computer science fundamentals (e.g., information, hardware, software, operating systems, shells, algorithms)

  • Fundamental programming tools (e.g, control flow, data structures, functions)

Content (what we do to reach the learning outcomes)#

Most of the contents are based on the course CS41: The Python Programming Language from Stanford University.

  • Python basics:

    • Interactive interpreter

    • Comments

    • Variables and types

    • Numbers and Booleans

    • Strings and lists

    • Console I/O

    • Control Flow

    • Loops

    • Functions

    • Assignment Expressions

  • Data structures:

    • list

    • dict

    • tuple

    • set

  • Object-oriented Python:

    • errors and exceptions

      • easier to ask for forgiveness than permission (EAFP) vs look before you leap (LBYL)

    • data model

    • classes

    • exceptions as classes

  • Functions:

    • namespaces and scope

    • Python Functions

    • (variadic) arguments

    • Parameter ordering

  • Functional programming:

    • meaning

    • first-class functions

    • lambdas

    • iterators and generators

    • map and filter

    • decorators

  • Python & the Web:

    • HTTP

    • requests library

    • working with images

    • creating a web interface for your app using Flask library

  • Numpy:

    • what is a matrix?

    • why are matrices useful?

    • n-dimensional array ndarray

    • axes and shapes

    • matrix operations

    • statistical methods

    • parameter fitting example

  • Standard library and third-party libraries

Didactic methods#

To reach the learning outcomes we will use the following didactic methods:

Grading#

Written exam 90 min.

The examination is based on the intended learning outcomes.

Materials#

Additional:

Time & Room#

This course takes place only in summer semester. For time and room refer to Thabella LSI-2.