Grundlagen der Programmierung Flashcards

1
Q

Was ist Softwaretechnik?

A

Softwaretechnik bezieht sich auf die systematische Anwendung von Prinzipien, Methoden und Werkzeugen zur effizienten Entwicklung, Wartung und Evolution von Software

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was ist das Ziel der Softwaretechnik?

A

Erstellung von Software mit Qualität. Qualität einer Software wird durch die Funktionserfüllung, Zuverlässigkeit, Benutzerfreundlichkeit, Effizienz und die Wartbarkeit bestimmt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was ist ein Algorithmus?

A

Verhaltensmuster von geordneten Einzelvorschriften zur automatischen Lösung von Problemen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was ist ein Programm?

A

Darstellung eines Algorithmus in einer für den Computer verständlichen (Programmir)Sprache, die die Regeln der Semantik und Syntax betrachtet

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Erkläre Korrektheit, Terminierung, deterministisch und Determiniertheit

A

Korrektheit: Funktion entspricht der Aufgabenstellung
Terminierung: liefert nach endlich vielen Schritten ein Ergebnis
Deterministisch: Zu jedem Zeitpunkt gibt es nur eine mögliche Fortsetzung
Determiniertheit: gleiche Startbedingungen liefern dasselbe Ergebnis

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was macht eine objektorientierte Programmiersprache aus?

A

Eine objektorientierte Programmiersprache ermöglicht die Strukturierung von Programmen durch die Verwendung von Objekten, die Daten und Methoden zur Manipulation dieser Daten kombinieren.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was sind die Merkmale von imperativen Programmiersprachen?

A

Eine imperative Programmiersprache definiert Programme durch eine Sequenz von Anweisungen, die den Zustand des Programms schrittweise ändern, indem sie explizit angeben, wie Aufgaben ausgeführt werden sollen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was ist modulare Programmierung?

A

Programmierung mit Modulen, Klassen und Vererbung

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Was sind die Merkmale von deklarativen Programmiersprachen?

A

Deklarative Programmiersprachen betonen die Spezifikation von gewünschter Funktionalität ohne explizite Angabe von Schritten zur Ausführung, wodurch der Fokus auf “was” anstelle von “wie” liegt.
z.B. SQL

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Was sind Semantik und Syntax im Kontext von Programmiersprachen?

A

Semantik ist die Bedeutung und Syntax die Darstellung - Programmiersprachen können das gleiche tun (Semantik) aber unterschiedliche Symbole verwenden (Syntax)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Was sind die vier Kontrollelemente von Algorithmen?

A

Sequenz: Ausführung mehrerer Anweisungen hintereinander

Auswahl: Durchführung von Anweisungen in Abhängigkeit bestimmter Bedingungen

Wiederholung: Wiederholte Ausführung einer oder mehrerer Anweisungen in Abhängigkeit von einer Bedingung

Aufruf anderer Algorithmen: Anwendung eines anderen Algorithmus (Funktion mit Parametern)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Was sind mögliche Kombinationsmöglichkeiten für Kontrollelemente?

A

Sequentielle Anordnung: einzusetzende Kontrollblöcke nacheinander

Schachtelung: Kontrollstrukturen werden ineinander eingebettet

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was ist mit dem Lokalitätsprinzip in Bezug auf Programmierung gemeint?

A

Programmierschritte in einzelnen Blöcken getrennt;

Vorteile:
-leichtere Überprüfbarkeit und bessere Modularität

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Entwurfsmethoden: Top-Down-Strategie

A

Herunterbrechen eines komplexen Problems in kleinere Problemstellungen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Entwurfsmethoden: Bottom-Up-Strategie

A

bereits existierende Lösungen zusammensetzen zu einer neuen Lösung

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Was ist ein Compiler?

A

übersetzt ein Programm in Maschinencode und führt es aus
lädt erst den gesamten Code und kann dadurch optimieren braucht aber mehr Zeit und kann Programmierfehler nicht direkt lokalisieren

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Was ist ein Interpreter?

A

übersetzen ein Programm Zeile für Zeile und führen jede übersetzte Zeile sofort aus
führt direkt aus, Fehler können besser lokalisiert werden, Optimierungen nicht möglich

18
Q

Was sind Operatoren?

A

Addition, Subtraktion, Division, Multiplikation, Rest

19
Q

Was sind Bedingungen?

A

<, <=, >=, >, == in Kombination mit && sowie ||

20
Q

Was sind die Hauptaspekte von Softwarequalität?

A

Funktionalität
Zuverlässigkeit
Benutzbarkeit
Effizienz
Änderbarkeit
Übertragbarkeit

21
Q

Was bedeutet Lokalität von Variablen?

A

Variablen werden möglichst lokal initialisiert und konstant deklariert um Konstantheit zu unterstützen

22
Q

Was sind Ausnahmen und wie können Sie behandelt werden?

A
  1. Error - schwerwiegend, kann nicht vom Programm behandelt werden
  2. Exceptions/Ausnahme: Fehler, die zur Laufzeit des Programms behoben werden können - try Catch block auffangen
23
Q

Welche Arten von Softwaretests gibt es?

A

Dialogtest: interaktiver Test durch Menschen
Stapeltest automatischer Test mit automatischer Überprüfung der Ergebnisse
Blackbox-Stapeltest: automatischer Test bei dem erwartetes Verhalten mit tatsächlichem verglichen wird (Output)
Whitebox-Stapeltest: testet automatisch alle möglichen Abläufe eines Programmstücks

24
Q

Wie ist eine Methodendefinition aufgebaut?

A

Modifier: Sichtbarkeit/Gültigkeit der Methode (Static, Public)
Rückgabetyp: int, void, etc.
Methodenname
Parameterliste

static int maximum(int a, int b) {
}

25
Q

Was ist Call by Value und Call by Reference?

A

Call by Reference: Speicherort des Werts wird übermittelt, von dort aus wird er gelesen - geeignet für die Übermittlung großer Datenmengen, Nachteil: Datensicherheit

Call by Value: Werte werden kopiert - Datensicherheit

26
Q

Was sind Aufwände im Zusammenhang mit Algorithmen?

A

Umfang an Speicherplatz, welches das Programm während Berechnung benötigt

Verständlichkeit des Programms

Änderbarkeit des Programms

Schnelligkeit, in der eine Lösung berechnet wird

27
Q

Was sind Komplexitätsklassen?

A

Angabe für den Aufwand eines Algorithmus (Schrittzahl in Komplexitätsklassen)
Beispiele:
-konstanter Aufwand: O(1)
-logarithmischer Aufwand: O(log n)
-lineare Suchverfahren: O(n)
-gute Suchverfahren: O(n * log n)
-quadratischer Aufwand: O(n^2)
-exponentieller Aufwand (schlechtester): O(2^n)

28
Q

Was ist eine dynamische Datenstruktur? Was eine statische Datenstruktur?

A

Dynamisch: Größe kann während der Laufzeit angepasst werden
Statisch: Größe kann während der Laufzeit nicht angepasst werden

29
Q

Was ist eine verkettete Liste?

A

Eine Datenstruktur, bei der Elemente in Form von Knoten gespeichert sind, wobei jeder Knoten einen Wert und einen Verweis auf das nächste Element enthält, und sie ermöglicht das effiziente Einfügen und Löschen von Elementen.

Beispiel: Textverarbeitung (Speicher für Textzeilen)

30
Q

Was sind die Merkmale eines Arrays?

A

-statische Datenstruktur
-direkter Zugriff auf Element über Index - ermöglicht schnellere Suchverfahren
-Umsortierung/Einfügen/Löschen mit hohen Aufwand verbunden

31
Q

Was ist ein Baum und was macht sie aus?

A

-vereint Vorteil der Erweiterbarkeit mit einfacher Navigierbarkeit der Datenmenge
-schneller Zugriff in einem sortierten Baum

32
Q

Was ist ein Binärbaum?

A

ein Baum wo die höheren Werte immer rechts, die kleineren Links sind

33
Q

Was ist Rekursion?

A

Rekursion ist, wenn eine Funktion sich selbst aufruft

34
Q

Wovon hängen die Aufwände bei Suchen ab?

A

-davon ab es eine Reihung, Liste oder ein Baum ist
-ob es sortiert oder unsortiert ist

35
Q

Was ist Hashing?

A

Prozess, bei dem eine Funktion (Hashfunktion) verwendet wird, um Daten in eine feste Größe umzuwandeln (Hashwert), der dann zur Indexierung in einer Datenstruktur verwendet wird

ermöglicht effizientes Suchen und Abrufen von Informationen

36
Q

Wie ist das Wasserfallmodell aufgebaut?

A

Analyse
Design
Codierung
Testen
Betrieb/Wartung

Parallel:
Dokumentation
Planung
Kontrolle
Verwaltung

37
Q

Woraus sind Algorithmen aufgebaut?

A

Sequenz
Auswahl
Wiederholung
Aufruf anderer Algorithmen

38
Q

Was sind drei Möglichkeiten Algorithmen darzustellen?

A

Programmablaufplan
Struktogramm
Pseudocode

39
Q

Wie kann die Softwarequalität gesteigert werden?

A

Testen
Rücksprache mit dem Kunden
Modularität beachten
Dokumentation
Namenskonventionen

40
Q

Was ist sequentieller Zugriff auf Dateien?

A

schrittweiser Zugriff von Anfang bis Ende

Zeichenweise oder byteweise

41
Q

Was ist wahlfreier Zugriff auf Dateien?

A

direkter Zugriff an bestimmte Stelle oder zufälliger Zugriff