Authors
Affiliations

Gesellschaft für Informatik

deRSE

Gesellschaft für Informatik

deRSE

Florian Goth

Jan Phillip Thiele

Anna-Lena Lambrecht

Example Module: Fundamentals of Computer Science

This is an example module to showcase the integration pipeline

Basics of Computer Science

Basic Concepts

  • Introduction to computer science, basic concepts of operating systems using UNIX/Linux as an example
  • From problem to algorithm: concept of an algorithm, design of algorithms, pseudocode, refinement, brute-force algorithms, models and modeling, graphs and their representation, simple algorithms on graphs, analysis of algorithms (correctness, termination, runtime)
  • Implementation of algorithms (e.g., using Python)
  • Programming paradigms: procedural, object-oriented, and functional programming; recursion versus iteration
  • From program to process: assembly languages, assembler, compiler, interpreter, syntax and semantics of programming languages
  • Limits of algorithms: computability, decidability, undecidability

Lecture: Basic Programming

SWS: 2 ECTS: 1

Exercise: Basic Programming Exercise

SWS: 4 ECTS: 4

Applied Programming

Procedural Programming Concepts

Programming with an imperative-procedural language (such as C):

  • Data types, type casting, control structures, functions and procedures, parameter passing paradigms, call stack
  • Pointers, arrays, strings, structured types
  • Errors and their handling
  • Dynamic memory management
  • Program libraries

Programming in an Object-Oriented Language (e.g., Java)

  • Classes, objects, constructors
  • Inheritance, polymorphism, abstract classes/interfaces
  • Exceptions and exception handling
  • Namespaces (packages)
  • Generic classes and types
  • Program libraries

Lecture: Applied Programming

SWS: 2 ECTS: 1

Exercise: Applied Programming Exercise

SWS: 4 ECTS: 4

Module Competences

ID Description Disciplines Prerequisites Evidence Author Source
ex_programming_mod1_1 Use an imperative-procedural programming language (e.g., C) and an object-oriented language (e.g., Java) with confidence Computer Science Submit working programs in both languages demonstrating syntax and language-specific features University of Potsdam Link
ex_programming_mod1_2 Implement basic data structures and algorithms Computer Science ex_programming_mod1_1 Submit a project with implemented algorithms and data structures (e.g., lists, trees, sorting) University of Potsdam Link
ex_programming_mod1_3 Distinguish between error types and handle them appropriately in code Computer Science ex_programming_mod1_1 Demonstrate error handling techniques in submitted code (e.g., input validation, error codes, exceptions) University of Potsdam Link
ex_programming_mod1_4 Identify and use appropriate library functions in programming tasks Computer Science ex_programming_mod1_1 Integrate external libraries in coding tasks and document their usage University of Potsdam Link
ex_programming_mod1_5 Use basic functions and mechanisms of operating systems using UNIX/Linux as an example Computer Science Demonstrate file handling, permissions, and process control using UNIX/Linux commands University of Potsdam Link
ex_programming_mod1_6 Create and refine simple algorithms using semi-formal notation Computer Science Submit pseudocode or flowcharts for given algorithmic problems University of Potsdam Link
ex_programming_mod1_7 Evaluate and compare algorithms using runtime analysis Computer Science ex_programming_mod1_6 Provide time complexity comparisons for multiple algorithmic solutions University of Potsdam Link
ex_programming_mod1_8 Implement simple algorithms using imperative and functional programming styles (e.g., in Python) Computer Science ex_programming_mod1_6 Submit code demonstrating both imperative and functional styles for the same problem University of Potsdam Link
ex_programming_mod1_9 Distinguish between programming paradigms and identify their characteristics Computer Science ex_programming_mod1_1 Classify given code snippets by paradigm and justify the classification University of Potsdam Link
C10 Express simple programs in an assembly language Computer Science Translate simple high-level logic into assembler code University of Potsdam Link
C11 Discuss the limits of algorithms, including computability and decidability Computer Science Write a short essay or present on concepts such as the Halting Problem or undecidability University of Potsdam Link

Sources & Implementations:

Curricula

Courses

Programs