Back to Informatik

Einführung in die Programmierung

8 ECTS
Semester 1

Programming Fundamentals

Overview

Core concepts of programming using Python and Java

Learning Objectives

  • Understand variables and data types
  • Master control structures and loops
  • Work with functions and methods
  • Learn object-oriented programming basics
  • Practice code organization and style

Practical Applications

Automation

Writing scripts for task automation

Example: File processing and data extraction scripts

Data Analysis

Processing and analyzing data

Example: Data visualization with Python libraries

Web Development

Building web applications

Example: Creating simple web servers and APIs

Practice Problems

  • Implement basic algorithms in Python and Java
  • Create object-oriented programs
  • Build command-line applications
  • Develop simple GUI programs

Object-Oriented Programming

Overview

Understanding and implementing OOP principles in Python and Java

Learning Objectives

  • Master classes and objects
  • Understand inheritance and polymorphism
  • Implement encapsulation and abstraction
  • Work with interfaces and abstract classes
  • Apply design patterns

Practical Applications

Software Architecture

Designing modular applications

Example: Building a library management system

Game Development

Creating game objects and behaviors

Example: Implementing game character classes

GUI Applications

Building user interfaces

Example: Desktop application development

Practice Problems

  • Design and implement a class hierarchy
  • Create a simple game using OOP principles
  • Build a GUI application with multiple classes
  • Implement common design patterns

Data Structures Implementation

Overview

Building and using fundamental data structures in Python and Java

Learning Objectives

  • Implement basic data structures
  • Understand memory management
  • Compare data structure performance
  • Choose appropriate data structures
  • Work with built-in collections

Practical Applications

Database Design

Implementing efficient storage structures

Example: Custom index implementation

Memory Management

Optimizing memory usage

Example: Implementing caching systems

Algorithm Development

Creating efficient solutions

Example: Graph representation implementation

Practice Problems

  • Implement a custom ArrayList/Vector
  • Create a balanced binary search tree
  • Build a hash table with collision handling
  • Develop a priority queue implementation

Error Handling and Testing

Overview

Writing robust and reliable code with proper testing

Learning Objectives

  • Implement exception handling
  • Write unit tests
  • Perform integration testing
  • Use debugging techniques
  • Practice test-driven development

Practical Applications

Quality Assurance

Ensuring code reliability

Example: Automated test suite implementation

Debugging

Finding and fixing bugs

Example: Using debugger tools and logging

Continuous Integration

Automated testing pipelines

Example: Setting up GitHub Actions for testing

Practice Problems

  • Write comprehensive unit tests
  • Implement error handling for a web API
  • Create a test suite with mocking
  • Debug and fix common code issues

Project Development

Overview

Building complete applications using modern development practices

Learning Objectives

  • Plan and structure projects
  • Use version control (Git)
  • Implement agile methodologies
  • Write clean, maintainable code
  • Work with development tools

Practical Applications

Software Development

Building production applications

Example: Full-stack web application development

Team Collaboration

Working with version control

Example: Managing GitHub workflows

DevOps

Development operations

Example: Setting up CI/CD pipelines

Practice Problems

  • Create a multi-module project
  • Implement Git workflow for team development
  • Set up automated build processes
  • Develop a complete web application