Module Handbook

  • Dynamischer Default-Fachbereich geändert auf INF

Module INF-02-01-M-2

Foundations of Programming (M, 10.0 LP)

Module Identification

Module Number Module Name CP (Effort)
INF-02-01-M-2 Foundations of Programming 10.0 CP (300 h)

Basedata

CP, Effort 10.0 CP = 300 h
Position of the semester 1 Sem. in WiSe
Level [2] Bachelor (Fundamentals)
Language [DE] German
Module Manager
Lecturers
Area of study [INF-PFL] Mandatory Modules
Reference course of study [INF-82.79-SG] B.Sc. Computer Science
Livecycle-State [NORM] Active

Courses

Type/SWS Course Number Title Choice in
Module-Part
Presence-Time /
Self-Study
SL SL is
required for exa.
PL CP Sem.
4V+4U INF-02-01-K-2
Foundations of Programming
P 112 h 188 h
U-Schein
ja PL1 10.0 WiSe
  • About [INF-02-01-K-2]: Title: "Foundations of Programming"; Presence-Time: 112 h; Self-Study: 188 h
  • About [INF-02-01-K-2]: The study achievement [U-Schein] proof of successful participation in the exercise classes (ungraded) must be obtained. It is a prerequisite for the examination for PL1.

Examination achievement PL1

  • Form of examination: written exam (Klausur) (150-180 Min.)
  • Examination Frequency: each semester
  • Examination number: 60201 ("Foundations of Programming")

Evaluation of grades

The grade of the module examination is also the module grade.


Contents

Syntax of programming languages:
  • Concrete and abstract syntax
  • Static and dynamic semantics
  • Truth trees
  • Regular expressions and grammars
  • Lexical analysis and syntax analysis

Functional programming concepts:

  • Primitive data types
  • Records and variants
  • Declarations
  • Higher order functions
  • Parametric polymorphism

Imperative programming concepts:

  • Input and output
  • Control structures
  • References
  • Exception handling
  • Basics of memory management

Object-oriented programming:

  • Objects and classes
  • Encapsulation and access control
  • Inheritance
  • Subtype polymorphism
  • Modularisation

Algorithms:

  • Basic search and sort algorithms
  • Data structures: lists, arrays and trees
  • Algorithmic problem solving

Correctness and termination:

  • Testing
  • Specification: invariants, pre- and post conditions
  • Induction

Competencies / intended learning achievements

Students learn the basic concepts of programming languages and acquire the skills to develop programs and to learn programming languages on their own.

After successfully completing the module, students will be able to

  • describe basic concepts of programming and software design,
  • explain the characteristics of different programming paradigms,
  • model, implement and test small to medium-sized programs using a programming language,
  • use advanced functional, imperative and object-oriented programming concepts and techniques,
  • implement fundamental algorithms and data types and use them to solve problems.

Literature

  • FANCHER, Dave. The Book of F#: Breaking Free with Managed Functional Programming. No Starch Press, 2014.
  • HANSEN, Michael R.; RISCHEL, Hans. Functional programming using F. Cambridge University Press, 2013.
  • PICKERING, Robert; DE LA MAZA, Michael. Beginning F♯. Apress, 2009.

Requirements for attendance (informal)

None

Requirements for attendance (formal)

None

References to Module / Module Number [INF-02-01-M-2]

Course of Study Section Choice/Obligation
[INF-82.79-SG] B.Sc. Computer Science Software Development [P] Compulsory
[MAT-82.105-SG] B.Sc. Mathematics Subsidiary Subject (Minor) [P] Compulsory
[MAT-82.276-SG] B.Sc. Business Mathematics Computer Science and Computational Methods [P] Compulsory
[MV-82.103-SG] B.Sc. Mechanical Engineering Applied Computer Science (if chosen) [P] Compulsory
[WIW-82.176-SG] B.Sc. Business Administration and Engineering specialising in Computer Science Engineering specialization - Computer Science [P] Compulsory
[WIW-82.?-SG#2021] B.Sc. Industrial Engineering/Computer Science 2021 [2021] Computer Science [P] Compulsory