Ada Lovelace – Pionierin der Informatik und erste Softwareentwicklerin

Ada Lovelace gilt heute als eine der bedeutendsten Persönlichkeiten der IT-Geschichte. Obwohl sie im 19. Jahrhundert lebte – lange vor elektrischen Rechnern, Programmiersprachen oder dem Internet – legte sie mit ihren Arbeiten die theoretischen Grundlagen der Softwareentwicklung.

Ada Lovelace
Ihr Denken war seiner Zeit weit voraus und prägt bis heute Informatik, Programmierung und das Verständnis von Computern.

Herkunft und frühe Bildung

Ada Lovelace wurde 1815 in London als Augusta Ada Byron geboren. Sie war die Tochter des berühmten Dichters Lord Byron, wuchs jedoch ohne ihn auf. Ihre Mutter, Anne Isabella Milbanke, förderte gezielt eine mathematisch-naturwissenschaftliche Ausbildung, um Ada von der aus ihrer Sicht „zu emotionalen“ Dichtung fernzuhalten.

Schon früh zeigte Ada außergewöhnliche Fähigkeiten in Mathematik und Logik. Sie erhielt Privatunterricht von angesehenen Wissenschaftlern ihrer Zeit, darunter Mary Somerville, eine der renommiertesten Mathematikerinnen und Naturwissenschaftlerinnen Großbritanniens. Diese frühe, intensive Förderung war entscheidend für Adas späteres Wirken.

Begegnung mit Charles Babbage

Ein Wendepunkt in Ada Lovelaces Leben war die Begegnung mit dem Mathematiker und Erfinder Charles Babbage. Babbage arbeitete an mechanischen Rechenmaschinen, insbesondere an der sogenannten Analytical Engine, einer universell programmierbaren Rechenmaschine.

Ada erkannte sofort das revolutionäre Potenzial dieser Maschine. Während viele Zeitgenossen sie lediglich als komplexen Taschenrechner betrachteten, sah Lovelace darin ein allgemeines Symbolverarbeitungssystem – ein Konzept, das dem modernen Computerverständnis bemerkenswert nahekommt.

Die Geburtsstunde der Softwareentwicklung

1843 übersetzte Ada Lovelace einen französischen Fachartikel über die Analytical Engine. Entscheidend war jedoch nicht die Übersetzung selbst, sondern ihre umfangreichen Anmerkungen, die den Originaltext um ein Vielfaches übertrafen.


Analytical engine von Charles Babbage
Analytical Engine

In diesen „Notes“ formulierte sie:

  • einen Algorithmus zur Berechnung der Bernoulli-Zahlen,
  • die Trennung von Hardware (Maschine) und Software (Programm),
  • das Konzept der Wiederholung von Befehlen (Schleifen),
  • und die Idee, dass Computer nicht nur Zahlen, sondern auch Musik, Texte oder Grafiken verarbeiten könnten.

Dieser Algorithmus gilt heute als erstes Computerprogramm der Geschichte, obwohl die Maschine selbst nie vollständig gebaut wurde. Damit ist Ada Lovelace nach heutigem Verständnis die erste Softwareentwicklerin.

Revolutionäres IT-Denken im 19. Jahrhundert

Aus heutiger Sicht ist besonders bemerkenswert, wie modern Lovelaces Denkweise war. Sie beschrieb bereits abstrakte Programmstrukturen, datengetriebene Verarbeitung, universelle Rechenmodelle – und auch Grenzen der Automatisierung.

Gleichzeitig betonte sie, dass Maschinen zwar Regeln ausführen, aber keine eigenen Ideen entwickeln könnten. Das ist eine frühe, bis heute relevante Diskussion über maschinelle Intelligenz und die Rolle von Software.

Gesellschaftliche Hürden und Anerkennung

Als Frau im viktorianischen England hatte Ada Lovelace keinen leichten Stand in der Wissenschaft. Veröffentlichungen erfolgten oft anonym oder unter Initialen. Ihre Arbeiten wurden zu Lebzeiten kaum gewürdigt, und nach ihrem frühen Tod im Jahr 1852 gerieten sie lange in Vergessenheit.

Erst im 20. Jahrhundert erkannte man ihre Bedeutung für die Informatik neu. Heute wird sie weltweit als Schlüsselfigur der IT-Geschichte anerkannt.

Ada Lovelace und moderne Softwareentwicklung

Adas Ideen spiegeln sich direkt in heutigen IT-Konzepten wider:

  • Algorithmen & Programmierung → Grundlage jeder Programmiersprache
  • Trennung von Logik und Maschine → Software-Hardware-Abstraktion
  • Datenverarbeitung jenseits von Zahlen → Multimedia, KI, Simulation
  • Theoretische Informatik → formale Modelle, Compiler, Automaten

Zu ihren Ehren wurde sogar eine Programmiersprache nach ihr benannt: Ada, die insbesondere in sicherheitskritischen Systemen (z. B. Luft- und Raumfahrt) eingesetzt wird.

Bedeutung für Frauen in der IT

Ada Lovelace ist heute auch ein wichtiges Symbol für Frauen in technischen Berufen. Der jährlich stattfindende Ada Lovelace Day würdigt Frauen in MINT-Disziplinen und macht sichtbar, dass Informatik von Anfang an nicht ausschließlich männlich geprägt war.

Fazit

Ada Lovelace war ihrer Zeit weit voraus. Ohne jemals einen Computer gesehen zu haben, entwickelte sie zentrale Konzepte der Softwareentwicklung, die noch heute gültig sind. Sie dachte in Algorithmen, Abstraktionen und Systemen – exakt so, wie moderne Informatiker arbeiten.

Ihr Leben zeigt eindrucksvoll, dass technischer Fortschritt nicht nur von Maschinen, sondern vor allem von Visionen, theoretischem Denken und Mut zur Innovation getragen wird. Ada Lovelace ist damit nicht nur eine historische Figur, sondern eine zeitlose Inspiration für die IT-Welt.

Quellen, weiterführende Literatur und Hyperlinks


Pseudocode in Entwicklungen und Prüfungen einsetzen

Prüfungen von Fachinformatikern können Aufgaben enthalten, die mit Pseudocode geschrieben werden sollen. Verschaffen wir uns dazu einen Überblick was Pseudocode ist.

Was ist Pseudocode?

Pseudocode ist eine Schritt für Schritt Anleitung zum Entwickeln einer Abbildungsvorschrift mit allgemeiner Logik. Meist wird damit ein auf Anforderungen basierender Algorithmus beschrieben. Pseudocode kennt keinen Standard und soll auch von Laien verstanden werden. Die Nutzer orientieren sich flexibel an den Strukturen von Programmiersprachen.

Grundregeln bei der Erstellung von Pseudocode

  • Beschreibe wie die Programmierlogik aussieht
  • Verwende das KISS Prinzip (Keep it Simple and Smart)
  • Schreibe eine Anweisung in eine Programmierzeile
  • Strukturiere den Pseudocode durch richtige Einrückung
  • Nutze die in der Anforderung beschriebenen Algorithmen
  • Halte die Vorgaben in der Anforderung genau ein

Grundformen bei Pseudocode

Variablen und Konstanten

In Variablen kann ein Wert gespeichert werden. Dieser Wert kann jederzeit verändert werden.

PROGRAMMSTART
Kommentar
Es gibt verschiedene Möglichkeiten eine Variable oder Konstante zu definieren
Kommentar Variante A:
Setze VARIABLE Laenge mit dem Wert 20
Kommentar Variante B:
Breite := 10
Flaeche := 0
Kommentar Berechnung
Flaeche := Laenge * Breite
AUSGABE Flaeche
PROGRAMMENDE

Manchmal wird keine Wertveränderung gebraucht, wie zum Beispiel bei der Kreiszahl Pi. Dann kommt die Konstante zum Einsatz. Dort wird ein fester, nicht veränderbarer Wert festgelegt.

PROGRAMMSTART
Kommentar
Beispiel einer Konstante
KONSTANTE Pi := 3.141592685
EINGABE VARIABLE Durchmesser
Umfang := Durchmesser * Pi
AUSGABE Umfang
PROGRAMMENDE

Die Sequenz

Die Sequenz ist eine lineare Abfolge an Befehlsschritten. Dazu ein Beispiel:

PROGRAMMSTART
EINGABE
 Seitenlänge
Seitenumfang := 4 *Seitenlänge
AUSGABE Seitenumfang
PROGRAMMENDE

Das Array

Ein Array ist eine spezielle Variable, die wie ein Container mehrere Werte beinhalten kann. Dabei können in einem Array beliebige Datentypen verwendet werden. Die Werte des Arrays können beliebig geändert werden.

PROGRAMMSTART
Setze ARRAY Messwerte[] := {2, 3, 12, 4}

Kommentar Der erste Eintrag im Array ist die Position 0!
Quadratflaeche := Messwerte[0] * Messwerte[0]
Kommentar Der Wert von Messwerte[0] ist 2
AUSGABE Quadratflaeche
PROGRAMMENDE

Die IF- oder WENN-Abfrage

Mit der IF Abfrage können Entscheidungen getroffen werden, wie das einfache Beispiel zeigt.

PROGRAMMSTART
WENN
GefahreneGeschwindigkeit >= 100 DANN

    AUSGABE im Display „Geschwindigkeit zu hoch“
ENDE WENN
SONST
    AUSGABE im Display „Geschwindigkeit in Ordnung“
ENDE SONST
PROGRAMMENDE

Die SWITCH-CASE Auswahl

Wenn eine Auswahl von mehreren Möglichkeiten angeboten werden soll, dann lässt sich dies mit mit der WENN Abfrage lösen. Meist wird aber der Code kompliziert und daher ist es einfacher, eine SELECT CASE Auswahl zu schreiben.

PROGRAMMSTART
Bewertung := 0
EINGABE „Geben Sie die Note zwischen 1 und 6 ein“ Bewertung
PRÜFE FALL Bewertung = 1
    AUSGABE „Sehr gut“
VERLASSE den FALL
PRÜFE FALL Bewertung = 2
    AUSGABE „Gut“:
VERLASSE den FALL
PRÜFE FALL Bewertung = 3
    AUSGABE „Zufriedenstellend“
VERLASSE den FALL
PRÜFE FALL Bewertung = 4
    AUSGABE „Ausreichend“
VERLASSE den FALL
PRÜFE FALL Bewertung = 5
    AUSGABE „Mangelhaft“
VERLASSE den FALL
PRÜFE FALL Bewertung = 6
    AUSGABE „Ungenügend“
VERLASSE den FALL
DEFAULT
    AUSGABE „Die Bewertung wird wiederholt“
PROGRAMMENDE

Die WHILE oder SOLANGE Schleife

Mit der WHILE Schleife kann ein Code wiederholt ausgeführt werden, bis die Bedingung nicht mehr erfüllt ist. Wenn die Bedingung nicht erfüllt ist, dann kann auch kein Durchlauf der Schleife erfolgen.

PROGRAMMSTART
ASCIICode
 := 65
SOLANGE (ASCIICode <= 126)
Ausgabe ASCIICode
    ASCIICode := ASCIICode + 1
ENDE SOLANGE
PROGRAMMENDE

Die DO-WHILE oder WIEDERHOLE-SOLANGE Schleife

Die DO-WHILE oder WIEDERHOLE-SOLANGE Schleife ist eine fußgesteuerte Schleife. Das heißt, das die Schleife mindestens einmal durchlaufen wird.

PROGRAMMSTART
Zaehler := 1

WIEDERHOLE
    AUSGABE „Zahl “ Zaehler
    Zaehler := Zaehler + 1
SOLANGE (Zaehler < 10)
PROGRAMMENDE

Die Zählschleife oder FOR Schleife

Das Nutzung einer Zählschleife in Pseudocode ist eine grundlegende Technik der Programmierung, die häufig zur iterativen Verarbeitung von Daten verwendet wird. Eine Zählschleife wiederholt eine Anweisung eine bestimmte Anzahl von Malen und wird üblicherweise mit einer FOR-Schleife umgesetzt. Dabei wird eine Zählvariable initialisiert, ein Endwert festgelegt und die Variable mit jedem Durchlauf inkrementiert. Dies ermöglicht eine vorhersehbare Anzahl an Wiederholungen und eine klare Struktur.

Zählschleifen sind besonders nützlich, wenn bekannt ist, wie oft eine Operation ausgeführt werden muss. Zum Beispiel bei der Ausgabe von Zahlen oder der Verarbeitung von Listenelementen. Der Vorteil gegenüber anderen Schleifenarten wie WHILE oder DO-WHILE besteht darin, dass die Anzahl der Durchläufe direkt gesteuert wird.

PROGRAMMSTART
KOMMENTAR: Ausgabe der Zahlen von 1 bis 10
SOLANGE i VON 1 BIS 10 MIT ERHÖHUNG VON i UM 1
AUSGABE i
ENDE SOLANGE
PROGRAMMENDE

Fazit:

Mit dem Pseudocode kann ein Algorithmus beschrieben werden, ohne dass eine Programmiersprache ausgewählt wurde. Daher ist dies eine gängige Methode, um den Algorithmus in kodierter Form  lesbar darzustellen.

Algorithmen in der Software Entwicklung

Algorithmen treffen wir tagtäglich in unserem Leben, denn Sie sind Anleitungen zur zielgerichteten Lösung von Problemen. Erstmals beschrieben hat dies der choresmische Gelehrte Al-Chwarizmi im 9. Jahrhundert. Er lebte in Bagdad, Iran.

Statue of al-Khwarizmi in front of the Faculty of Mathematics of Amirkabir University of Technology in Tehran,]IRAN
Al-Chwarizmi, vor der Universität in Teheran von M. Tomczak

Verfeinert wurde der Begriff im 20. Jahrhundert durch den in Großbritannien diffamierten  Mathematiker Alan Touring.

Definition eines Algorithmus

  • Das Verfahren muss zum richtigen Ergebnis führen
  • Der Verfahren muss mit einem endlichen Text die Anforderungen ganz erfüllen
  • Das Verfahren besteht aus Arbeitsschritten, die zielgerichtet zur Lösung führen
  • Jeder einzelne Schritt muss ein eindeutiges Ergebnis besitzen
  • Gleiche Eingabewerte müssen immer zum gleichen Ergebnis führen
  • Das Verfahren muss auf alle zulässigen Daten fehlerfrei anwendbar, also Allgemeingültig sein

Hochwertige Programme erfüllen diese Anforderungen. Denn die Definition von Qualität lautet:

Qualität ist die Erfüllung der Kundenanforderungen

 

Was ist ein Algorithmus?

In unserem täglichen Leben benutzen wir immer wieder Algorithmen. Aber wenn wir erklären sollen, was ein Algorithmus ist, dann wird es schwierig.

Ein Algorithmus ist eine Anleitung, mit bestimmten Eingabedaten bestimmte Ausgabedaten zu produzieren und auszugeben. Mit anderen Worten:

Es ist eine Handlungsvorschrift, um ein Problem schrittweise zu lösen

Anforderung an Algorithmen in der Programmierung

  • Der Algorithmus muss vollständig beschreibbar sein
  • Das Rechenverfahren muss aus einzelnen Arbeitsschritten bestehen, die zur Lösung des Problems führen
  • Jeder Schritt davon muss zu einem eindeutigen Ergebnis führen
  • Bei gleichen Eingaben erhält man immer das gleiche Ergebnis
  • Das Verfahren muss zu einem Ergebnis führen
  • Der Algorithmus muss universell und auf alle Daten anwendbar sein

Wie wird ein Algorithmus notiert oder aufgeschrieben?

Insgesamt kann dieser in einer Sprache wie zum Beispiel in Deutsch aufgeschrieben werden. Allerdings kann ein Computer den Algorithmus im Regelfall nicht verstehen.

Wie kann ein Computer mit Algorithmen arbeiten?

Damit der Computer den Algorithmus versteht, werden Programmiersprachen eingesetzt. Dabei wird zwischen strukturierter und objektorientierter Programmierung unterschieden. Die meisten Programmiersprachen bieten ähnliche Möglichkeiten die Lösung einer Problemstellung zu beschreiben oder wie der Programmierer sagt, zu implementieren.

Wie kann ein Algorithmus dokumentiert werden?

Dazu kann die Unified Modeling Language UML eingesetzt werden. Hier können Algorithmen grafisch dargestellt werden. Dies stellt eine praktische Ergänzung zur textuellen Beschreibung dar.

 

Barrierefreiheit