1/22
Name | Mastery | Learn | Test | Matching | Spaced |
|---|
No study sessions yet.
Grundlegende Konzepte
Computational Thinking Definition
Fähigkeit, ein Problem in kleinere Probleme zu zerlegen, die deterministisch gelöst werden können.
Was ist Computational Thinking, und was ist es nicht?
Konzeptualisierung nicht Programmierung
Fokus auf Ideen & Prozessen, nicht auf der Software & Hardware
CT ist für jeden nicht nur Informatiker*innen
4 Hauptbestandteile vom Computational Thinking
Dekomposition: Problem in kleinere Teilaufgaben zerlegen
Mustererkennung: Gemeinsamkeiten zwischen Problemen erkennen, um bereits vorhandene Lösungen wieder zu verwenden
Abstraktion: Fokus auf wichtige Aspekte des Problems setzten
Algorithmen: Ablauf festlegen wie Problem gelöst wird
Algorithmus Definition
Ein Algorithmus ist eine endliche Folge wohldefinierter Anweisungen, typischerweise zur Lösung einer Klasse von Problemen. Der Algorithmus ist das deterministische Bindeglied zwischen Ein-und Ausgabe.
Kriterien von Algorithmen
Maschinentauglichkeit, Allgemeinheit, Korrektheit
Ungelöstes Problem
Für das Halte-Problem gibt es keinen Algorithmus. Das Halte-Problem beschreibt ein Programm das andere Programme untersucht, ob dieses in eine Endlosschleife geraten.
Bubble Sort Pseudocode Darstellung
Bubble Sort (Array array)
for i=0 to array.length -2 {
for j=0 to array.lenghth -2{
if array[j] > array[j+1]
swap(array[j], array [j+1])
}
}
Dekomposition Methoden
-Zielreduktion: Zerteilen in kleinere gleiche Teile
-Rekursive Zielreduktion
7 CT-Fertigkeiten
Computer Modellierung: Algorithmus wird gebraucht um die Realität virtuell zu simulieren. So brauchen Experimente weniger Zeit
Wissenschaftliches Denken: Systematische Vorgehen für Erklärung und um Vorhersagen zu treffen
Logisches Denken: Führt zum Erschliessen von Zusammenhängen und Erkennen von Mustern und auch Ausnahmen. Es ist ein folgerichtiges und schlüssiges Denken
Kreativität: Fertigkeit Ideen zu entwickeln und deren konzeptionellen Umsetzung in der Realität auszuarbeiten
Menschenkenntnis: Stärken und Schwächen der Menschen im Algorithmus miteinbeziehen, um Post Completion Errors zu vermeiden
Heuristiken: Algorithmische Abkürzungen/Faustregeln, um die allerbeste Lösung in absehbarer Zeit zu finden
Evaluation: Regelmässige Sicherstellung der Funktion & des Zwecks des Algorithmus mit Rücksicht auf Leistungsfähigkeit und Benutzerfreundlichkeit
Bias
Beschreibt Vorurteile und Verzerrungen in Entscheidungen
Bias kann bewusst oder unbewusst sein
Der Affinity/Similarity Bias beschriebt die Verbundenheit zu Menschen, die einen ähnliche Hintergrund oder Erfahrung haben
Bias-Blindheit ist der Glaube selber keinen Bias zu haben, dies kann mit dem Implicit Association Test widerlegt werden
Algorithmischer Bias
Systematischer und wiederholbare Fehler eines Computersystems, unfaire Ereignisse zu erzeugen.
Programmmiersprachen Definition
Programmiersprachen sind formale Sprachen, die zur verständlichen Kommunikation mit dem Computer dienen, indem sie Befehle nutzen, um Computer zu steuern
Drei Generationen der Programmiersprache
Generation Maschinensprachen: Werden direkt binär vom Prozessor ausgeführt, schwierig lesbar durch Menschen.
Generation Assemblersprachen: Zahlenfolgen werden durch lesbare Abkürzungen abstrahiert. Ausführungsgeschwindigkeit und Speicherplatz sind erhalten.
Generation Höhere Programmiersprachen: Werden durch starke Abstraktion mithilfe eines Compilers/Interpreter ausgeführt.
Assembler, Compiler& Interpreter
Assembler übersetzten Assemblersprache zur Maschinensprache
Compiler übersetzten höhere Programmiersprachen in plattformabhängigen Maschinencode, dies braucht Zeit aber danach läuft das Programm schnell. z.B C
Interpreter verarbeitet Code zur Laufzeit des Programms, es entsteht keine Datei in Maschinensprache. Interpretation kann lansamer sein. Es gibt Time-Compliation Kombinationen wie z.B Python oder Perl.
Programmiersprachen Definition
Sind exakte künstliche Sprachen die keine Mehrdeutigkeit zulassen zur Programmerstellung
Bestehen aus Lexikalik: gültige Zeichen und Wörter
Bestehn aus Syntax: korrekter Satzaufbau, bei dem die Reihenfolge lexikalisch erfolgt
Bestehen aus Semantik: den korrekten Sätzen ist eine bestimmte Anweisung zugeschrieben
Programmierparadigmen
Sind deklarativ, imperativ, objektorientiert, funktional oder logisch
Programmiersprachen können mehrere Paradigmen zugeordnet werden
Die Paradigmen beschreiben in welcher Herangehensweise ein Problem gelöst wird
Erkläre die Paradigmen
deklarativ= Beschreibung des Endresultats «was»
imperativ= Abfolge von Schritten «wie»
objektorientiert= reale Welt als Objekte repräsentieren, die miteinander interagieren und bestimmte Eigenschaften haben
funktional= nutzen Funktionsaufrufe