Fehlersuche in HTML

Ich hab euch am Abgabe-Laufwerk eine mit Fehlern gespickte Seite bereitgestellt. Findet dich Fehler.

SeiteAnzahl der Fehler
index.html5
seite1.html3
seite2.html2
seite3.html2
seite4.html1

Projektaufgabe: Schneeflocke

Eure Aufgabe besteht darin, mittels eines Python-Programms 25 unterschiedliche Schneeflocken zu generieren. Ihr solltet zu diesem Zweck wie gelernt Funktionen und Schleifen verwenden.

  1. Natürlich braucht ihr die Turtle-Bibliothek, aber welche anderen Bibliotheken (Importe) wären noch wichtig, die wir schon in Beispielen kennengelernt haben.
  2. Analysiert untenstehendes Bild nach Gemeinsamkeiten und Unterschieden. Ziel ist es nicht genau diese Schneeflocken nachzubauen, sondern 25 individuelle Flocken zu generieren.
  3. Versucht mal Schneeflocken, ohne absetzen, auf ein Blatt zu malen.
  4. Natürlich müsst ihr auch eure Erfahrungen aus dem Schachbrett-Projekt einbringen, um die Schneeflocken zu verteilen.
  5. Gruppenarbeit (2-3 Personen) ist möglich. Aber jeder muss arbeiten. Es gibt zwei Noten. Eine Prozess-Note (Zusammenarbeit, Beteiligung, Mitdenken) und eine Ergebnis-Note aus das fertige Projekt.

Hier ein Beispiel, wie die Schneeflocken aussehen könnten:

Blöcke in Python – Strukturierung durch Einrückung

Ein Block ist eine Gruppe von Anweisungen in einem Programm oder einem Skript. Üblicherweise besteht er aus wenigstens einer Anweisung und Deklarationen für den Block, abhängig von der Skript- oder Programmiersprache. Eine Sprache, die die Strukturierung mit Blöcken ermöglicht, wird als strukturierte Programmiersprache bezeichnet.


Im allgemeinen können Blöcke wieder Blöcke enthalten, d.h. wir erhalten verschachtelte Blockstrukturen.

In einem Skript oder einem Programm dienen Blöcke auch dazu mehrere Anweisungen so zu gruppieren, dass sie wie eine Anweisung behandelt werden können.
Außerdem werden Blöcke auch dazu genutzt, den Geltungsbereich von Variablen und Funktionen einzuschränken.

Mehr Infos zu „Strukturierung durch Einrückung“

Sprachen wie Pascal benutzen begin … end Statements zur Blockbildung

begin
    x := 5;
    y := 10;
    z := x + y;
end

andere Sprachen wie C, C++, Perl oder Java benutzen die { } Klammern zur Blockbildung

if(x==42) {
    printf("The Answer to the ulimate question of life\n");
} 
else {
    printf("Just a number!");
}

Die Einrückung wie im obigen Code ist durch die Art der Blockbildung aber nicht zwingend notwendig. Man könnte den Code auf folgendermaßen schreiben.

if(x==42) {printf("The Answer to the ulimate question of life\n");} else {printf("Just a number!");}

Das Strukturierungsprinzip von Python unterscheidet sich deutlich von anderen Programmiersprachen. Wie eingangs bereits beschrieben, strukturieren andere Programmiersprachen ihre Programmblöcke durch Schlüsselwörter, wie beispielsweise „begin„, „end„, „do„, „done“ oder geschweifte Klammern.
Leerzeichen, Folgen von Leerzeichen oder Einrückungen sind für die Compiler und Interpreter von den meisten Programmiersprachen ohne jede Semantik, d.h. sie werden überlesen. Dennoch wird Programmierern aber immer empfohlen, Blöcke durch gleichmäßge Einrückungen für menschliche Benutzer besser verständlich zu machen.
In Python ist dies nun gänzlich anders. Hier haben Leerzeichen eine Bedeutung.  Die Einrückung von Zeilen und die Benutzung von Leerzeichen am Anfang von Zeilen dienen hier als Strukturierungselement, so dass Programmierer „gezwungen“ werden übersichtlichen Code zu schreiben.

Anweisungskopf:
    Anweisung1
    ...
    Anweisung x

ERM | ERD Schüler-Datenbank

Erstellt für folgende Datenbank ein ERM mit draw.io. Nutzt zur Darstellung der Entitäten und Attribute folgende Darstellung (Abbildung 1):

Abbildung 1

Stellt für alle Entitäten die vollständigen Attribute und Beziehungen dar.

Primärschlüssel bitte unterstreichen und Fremdschlüssel durch einen Stern* kennzeichnen.

Beziehungen sind durch Rauten mit einem passenden Verb und der Kartinalität darzustellen.

Abbildung 2

Regeln

  1. In realen Datenbanken gibt es nur die Kartinalitäten 1 : 1 oder 1 : n.
    n : m Beziehungen müssen immer mit einer Zwischen-Entität/Tabelle aufgelöst werden.
  2. 1 : n Kardinalitäten folgen der Pfeilrichtung. D.h. das befindet sich immer auf der Seite der Pfeilspitze. (siehe Abbildung 2)
  3. Der Primärschlüssel einer Entität wandert in Richtung des Pfeils als Femdschüssel in die andere Entität.

Datenbankbeschreibung

Ein vereinfachtes Entity-Relationship-Modell (ER-Modell) für eine Schülerdatenbank könnte die grundlegenden Entitäten und deren Beziehungen darstellen. Hier ist eine Beschreibung der Hauptentitäten und ihrer Attribute:

  1. Schüler (Schueler)
    • Attribute:
      • Schueler_ID (Primärschlüssel)
      • Vorname
      • Nachname
      • Geburtsdatum
      • Geschlecht
      • Klasse
  2. Klasse (Klasse)
    • Attribute:
      • Klasse_ID (Primärschlüssel)
      • Klassenname
      • Jahrgangsstufe
  3. Lehrer (Lehrer)
    • Attribute:
      • Lehrer_ID (Primärschlüssel)
      • Vorname
      • Nachname
      • Fach
  4. Fach (Fach)
    • Attribute:
      • Fach_ID (Primärschlüssel)
      • Fachname
  5. Noten (Noten)
    • Attribute:
      • Noten_ID (Primärschlüssel)
      • Note
      • Prüfungsdatum
    • Beziehungen:
      • Schueler_ID (Fremdschlüssel, verweist auf Schueler)
      • Fach_ID (Fremdschlüssel, verweist auf Fach)
  6. Klassenlehrer (Klassenlehrer)
    • Attribute:
      • Klassenlehrer_ID (Primärschlüssel)
    • Beziehungen:
      • Klasse_ID (Fremdschlüssel, verweist auf Klasse)
      • Lehrer_ID (Fremdschlüssel, verweist auf Lehrer)

Beziehungen:

  • Ein Schüler ist in einer Klasse.
  • Ein Lehrer unterrichtet mehrere Fächer.
  • Ein Schüler kann in mehreren Fächern Noten erhalten.
  • Eine Klasse hat einen Klassenlehrer.

Trennung von Inhalt und Design

Ein extrem großer Vorteil von CSS ist die Trennung des Designs vom eigentlichen Inhalt, der in HTML-Dateien steckt. Das Design wird dazu in eine eigene Datei ausgelagert und kann dann für alle Seiten eines Internetauftritts verwendet werden. Werden dann Änderungen am Design gemacht, sind durch diese gemeinsame CSS-Datei sofort alle Einzelseiten auf dem neuesten Stand.

Beispiel

CSS Zen Garden: The Beauty of CSS Design