Grundlagenpraktikum: Programierung - Cheatsheet.pdf

Grundlagenpraktikum: Programierung - Cheatsheet
Einführung in Python und seine Anwendungen Definition: Einführung in die Programmiersprache Python und deren Anwendungsgebiete. Details: Python: Höhere Programmiersprache, einfach zu lernen und verwenden. Syntax: Klar und lesbar (z.B.: Einrückungen statt geschweifte Klammern). Anwendungen: Webentwicklung, Datenanalyse, wissenschaftliches Rechnen, künstliche Intelligenz, Automatisierung. Bibliothek...

© StudySmarter 2024, all rights reserved.

Einführung in Python und seine Anwendungen

Definition:

Einführung in die Programmiersprache Python und deren Anwendungsgebiete.

Details:

  • Python: Höhere Programmiersprache, einfach zu lernen und verwenden.
  • Syntax: Klar und lesbar (z.B.: Einrückungen statt geschweifte Klammern).
  • Anwendungen: Webentwicklung, Datenanalyse, wissenschaftliches Rechnen, künstliche Intelligenz, Automatisierung.
  • Bibliotheken: Umfangreich (z.B.: NumPy, Pandas, TensorFlow, Flask).
  • Interpreter: Python-Code wird zeilenweise ausgeführt (\texttt{python filename.py}).
  • Versionsverwaltung: Wichtige Unterscheidung zwischen Python 2 und Python 3.
  • Entwicklungsumgebung: IDLE, PyCharm, VSCode.

Verwendung von Java für objektorientierte Programmierung

Definition:

Verwendung von Java für objektorientierte Programmierung

Details:

  • Klassen und Objekte erstellen und instanziieren
  • Vererbung (Inheritance): \text{Klasse A extends Klasse B}
  • Polymorphismus: Überladen und Überschreiben von Methoden \text{Methodenname(params)}
  • Abstrakte Klassen und Schnittstellen: \text{abstract class} und \text{interface}
  • Modifikatoren: \text{public}, \text{private}, \text{protected}
  • Kapselung (Encapsulation): Umsetzung durch Getter- und Setter-Methoden \text{getX()}, \text{setX()}
  • Konstruktoren: Initialisierung von Objekten \text{Klassenname(params)}
  • Exception Handling: \text{try} und \text{catch}-Blöcke

Grundlagen der C-Programmierung für systemnahe Anwendungen

Definition:

Grundlagen der C-Programmierung für systemnahe Anwendungen. Notwendig für die effiziente, hardware-nahe Programmierung.

Details:

  • Syntaxgrundlagen: Datentypen, Operatoren, Kontrollstrukturen
  • Pointers und Speicherverwaltung: \text{malloc}, \text{free}, Zeigerarithmetik
  • Modularisierung: Header-Dateien (\text{.h}), Quell-Dateien (\text{.c})
  • Vorkompilations-Direktiven: \text{\texttt{\textbackslash\text#define}}, \text{\texttt{\textbackslash\text#include}}
  • Ein-/Ausgabe (stdio.h): \text{\texttt{printf}}, \text{\texttt{scanf}}
  • Systemnahe Funktionen: Dateioperationen (\text{fopen}, \text{fread}, \text{fwrite}, \text{fclose})
  • Fehlerbehandlung und Debugging: \text{gdb}, \text{valgrind}

Entwurfsmuster und Architekturprinzipien

Definition:

Strukturierte Lösungen für häufig wiederkehrende Probleme in der Softwareentwicklung.

Details:

  • Entwurfsmuster (Design Patterns): Standardisierte Lösungen für typische Probleme.
  • Architekturprinzipien: Grundlegende Richtlinien zur Strukturierung von Softwaresystemen.
  • Singleton: Stellt sicher, dass eine Klasse nur eine Instanz hat.
  • Strategy: Ermöglicht das Austauschen von Algorithmen zur Laufzeit.
  • SOLID: Fünf Prinzipien für wartbaren und erweiterbaren Code (Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion).
  • DRY (Don't Repeat Yourself): Vermeide Code-Duplikate.
  • KISS (Keep It Simple, Stupid): Bevorzuge einfache Lösungen.

Datenstrukturen wie Arrays, Listen und Bäume

Definition:

Grundlegende Datenstrukturen zur Speicherung und Verwaltung von Daten in der Informatik.

Details:

  • Arrays: Statische, homogene Datenstrukturen, schneller Zugriff über Index, O(1) Zugriff.
  • Listen: Dynamische Datenstrukturen, erlauben flexible Größe, Einfügen und Löschen von Elementen, z.B. einfach verkettete Listen, doppelt verkettete Listen.
  • Bäume: Hierarchische Datenstrukturen, bestehen aus Knoten, enthalten Daten und Verweise auf Nachbarknoten, besonders bekannt: Binärbäume, AVL-Bäume.

Verwendung von Debugging-Tools

Definition:

Verwendung von Debugging-Tools zur Identifikation und Behebung von Programmfehlern.

Details:

  • Breakpoint setzen: Haltepunkte im Code, um Ausführungsstatus zu überprüfen.
  • Watchpoints verwenden: Überwachung von Variablenwerten bei jeder Änderung.
  • Step-Funktionen: Zeilenweises Debuggen (Step Into, Step Over, Step Out).
  • Call Stack Analyse: Aufrufreihenfolge der Funktionen nachvollziehen.
  • Speicherinspektion: Inhalt von Variablen und Speicheradressen prüfen.
  • Log-Analyse: Programmverlauf durch Log-Dateien nachvollziehen.

Versionskontrolle mit Git

Definition:

Verwalten von Quellcode-Änderungen, ermöglicht Zusammenarbeit und Nachverfolgbarkeit.

Details:

  • Initialisierung: git init
  • Klonen: git clone <URL>
  • Status prüfen: git status
  • Änderungen hinzufügen: git add <Datei> oder git add .
  • Commit: git commit -m 'Nachricht'
  • Änderungen übertragen: git push
  • Änderungen holen: git pull
  • Zweig erstellen: git branch <Name>
  • Zweig wechseln: git checkout <Name>
  • Zweig zusammenführen: git merge <Name>
  • Konflikte lösen: Dateikonflikte manuell bearbeiten und dann git add <Datei> und git commit

Unit Testing und Testautomatisierung

Definition:

Automatisiertes Testen einzelner Programmmodule, um sicherzustellen, dass diese unabhängig vom Gesamtsystem korrekt funktionieren.

Details:

  • Frameworks: JUnit, TestNG
  • Testklassen und Testmethoden definieren
  • Assert-Methoden zur Verifikation: \text{assertEquals()}, \text{assertTrue()}
  • Integration in CI/CD-Pipeline
  • Ermöglicht frühes Erkennen von Fehlern
  • Reduziert manuellen Testaufwand
  • Testabdeckung (\text{Code Coverage}) als Qualitätsmaß
Sign Up

Melde dich kostenlos an, um Zugriff auf das vollständige Dokument zu erhalten

Mit unserer kostenlosen Lernplattform erhältst du Zugang zu Millionen von Dokumenten, Karteikarten und Unterlagen.

Kostenloses Konto erstellen

Du hast bereits ein Konto? Anmelden