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 |