[edit] [comment] [remove] |2006-03-21| e2 # Kontakt

Stefan Gössner

FH-Tel.: 488
mobil: +49-173-9771260

Email: stefan.goessner@fh-luh.de
Web: http://goessner.net

 

[edit] [comment] [remove] |2006-03-21| e3 # Ziele

  • Erlernen einer Programmiersprache
  • Übung der logischen, algorithmischen Denkweise
  • Erstellen einfacher bis mittelschwerer Webanwendungen
  • Erleichterung des Übergangs auf andere Programmiersprachen
 

[edit] [comment] [remove] |2006-03-21| e4 # Anforderungen

  • Grundlagen der Rechnertechnik
  • Umgang mit Betriebssystem
  • mathematische Grundkenntnisse
  • eine gewisse Portion Neugierde und Experimentierfreude
 

[edit] [comment] [remove] |2006-03-21| e5 # Programmieren

Programmieren ist …

  • die Tätigkeit, Computerprogramme (Software) zu erstellen …
  • … und den Computer das machen zu lassen, was man möchte.
 

[edit] [comment] [remove] |2006-03-21| e6 # Softwareentwicklung vs. Programmieren

  • Softwareanforderungsanalyse (software requirements)
  • Softwareentwurf (software design)
  • Softwareprogrammierung (software construction)
  • Testen von Software (software testing)
  • Warten von Software (software maintenance)
  • Konfigurieren von Software (software configuration management)
  • Organisatorische Aspekte bei der Softwareentwicklung (software engineering management)
  • Der Vorgang der Erstellung von Software (software engineering process)
  • Software-Werkzeuge und Verfahrensweisen bei der Softwareentwicklung (software engineering tools and methods)
  • Softwarequalitätssicherung (software quality assurance)
 

[edit] [comment] [remove] |2006-03-21| e7 # Was ist ein Programm ?

Ein Programm ist …

  • eine Datei, die installiert ist und zur Erfüllung einer bestimmten Aufgabe beliebig oft ausgeführt werden kann (Anwendersicht).
  • ein Text, der in einer höheren, formalen Sprache verfasst ist und Instruktionen für den Computer bereitstellt (Programmierersicht).
  • eine Anweisungsfolge mittels derer ein Rechner die jeweils aktuellen Daten zur Erfüllung einer bestimmten Aufgabe bearbeitet (abstrakte Sicht).
 

[edit] [comment] [remove] |2006-03-21| e8 # Vom Quelltext zur Programmausführung

  1. Der Quelltext (source code) als Anweisungsfolge wird in eine Datei geschrieben.
  2. Ein Compiler oder Interpreter übersetzt den Text in ausführbaren Maschinencode (Objekt-, Binärcode).
  3. Ein Binder (Linker) fügt ggfs. weitere Programmbibliotheken hinzu und rechnet relative in absolute Adressen um.
  4. Ein Lader (loader) als Dienst der jeweiligen Laufzeitumgebung (z.B. Betriebssystem) lädt das Programm in den Hauptspeicher und führt es aus.
 

[edit] [comment] [remove] |2006-03-21| e9 # Programmiersprachen (1)

  • Natürlichen Sprachen sind zur Beschreibung von Computerberechnungen nicht präzise und eindeutig.
  • Stattdessen werden künstlich geschaffene Sprachen (formale Sprachen) zur Erstellung von Verarbeitungsanweisungen für Rechnersysteme verwendet – sog. Programmiersprachen.
  • Programmiersprachen basieren auf (menschen)lesbaren Text und …
  • … vermitteln dem Computersystem
    • interne Verarbeitungsschritte
    • beteiligte Daten und
    • deren Struktur
 

[edit] [comment] [remove] |2006-03-22| e10 # Programmiersprachen (2)

#include <stdio.h>

int main(void)
{
  printf("Hallo Welt!\n");
  return 0;
}
  • Die äussere, textuelle Form der Programmiersprache – die verwendeten Symbole (Zeichen und Wörter) – bezeichnen wir als Syntax.
  • Die Bedeutung der Symbole in einer Programmiersprache nennen wir deren Semantik.
  • Die Intention des Programmierers hinsichtlich der Gesamtheit des Computerprogramms heisst Pragmatik.
 

[edit] [comment] [remove] |2006-03-22| e11 # Programmiersprachen (3)

Einteilung nach …

  • Maschinensprache und Assembler
  • Höhere Sprachen
    • Prozedurale Programmiersprachen (Pascal, C, Basic, …)
    • Objektorientierte Programmiersprachen (C++, C#, Java, Smalltalk, …)
    • Skriptsprachen (Python, Php, Javascript, …)
    • Auszeichnungssprachen (Latex, HTML, XML, …)
    • Funktionale Sprachen (Lisp, Haskell, …)
    • Logische Sprachen (Prolog, …)

Weitere Einteilungen möglich nach

  • Anwendungsgebieten
  • Programmierparadigma
  • Sprachgenerationen

siehe Wikipedia

 

[edit] [comment] [remove] |2006-03-22| e12 # Programmiersprachen (4)

Unterscheidung gemäss Übersetzungsprozess …

  • Kompilierende Programmiersprachen (C, C++, Pascal, …)
    Der Programmtext wird "als Ganzes" in Maschinensprache übersetzt und kann dann ausgeführt werden
  • Halbkompilierende Programmiersprachen (Java, C#, …)
    Der Quelltext wird in einen (prozessorunabhängigen) Zwischencode übersetzt und innerhalb einer Laufzeitumgebung (JVM, CLR) interpretierend ausgeführt.
  • Interpretierende Programmiersprachen (Javascript, Python, VBScript, …)
    Der Programmtext wird von einem mitlaufenden Programm (Interpreter) schrittweise übersetzt und ausgeführt.
 

[edit] [comment] [remove] |2006-03-22| e13 # Übersicht der Programmiersprachen

Übersicht Programmiersprachen

 

[edit] [comment] [remove] |2006-03-22| e14 # Elemente einer Programmiersprache

Arbeiten mit Variablen
Zuweisen, Auslesen und Ändern von Speicherinhalten
Elementare Mathematik
zumindest die vier Grundrechenarten
Bedingte Verzweigung
Abhängig von einer Bedingung wird ein anderer Programmfluss ausgewählt
Schleifen
Wiederholen von Programmteilen
Blockbildung
Zusammenfassung mehrerer Befehle
Umgang mit nicht mathematischen Elementen
zum Beispiel mit Text, Bildern, Sound …
Kommentare
Kommentare beeinflussen den Programmablauf nicht. Sie dokumentieren den Quellcode.
 

[edit] [comment] [remove] |2006-03-22| e15 # Wahl der Programmiersprache

Javascript …

  • ist einfach
  • ist prozedural
  • ist objektorientiert
  • wird interpretiert
  • hat hohen Nutzwert
  • erleichtert den Übergang auf syntaktisch verwandte Sprachen (C-Sprachfamilie)
 

[edit] [comment] [remove] |2006-03-22| e16 # Javascript ...

  • ist eine Skriptsprache.
  • wurde Mitte der 90er Jahre von Brendan Eich, Fa. Netscape erfunden
  • hieß dort zunächst Livescript und
  • wurde wegen der damaligen Popularität von Java in Javascript umbenannt
  • wurde als ECMAScript im Jahre 1999 standardisiert.
  • ist objektbasiert, d.h basiert auf Prototypen und nicht auf Klassen.
  • gehört der C-Syntax Familie an.
  • ist schwach typisiert.
  • benötigt eine Laufzeitumgebung, die sowohl den Interpreter, als auch problembezogene Objekte bereitstellt (Browser).
  • besitzt keine Funktionen für Dateizugriff.
  • ist recht leicht zu erlernen.
 

[edit] [comment] [remove] |2006-03-22| e17 # Javascript - Beispiel

var x = [25, 38, 142, 66, 83, 12, 19, 87];
var max = 0;

for (var i=0; i < x.length; i++) {
  if (x[i] > max)
    max = x[i];
}

WScript.Stdout.write("Maximum = " + max);

Javascript ausgeführt vom Windows Scripting Host.

 

[edit] [comment] [remove] |2006-03-22| e18 # Browser als Laufzeitumgebung

Client-Server Prinzip

 

[edit] [comment] [remove] |2006-03-22| e19 # HTML (1)

HTML ist …

  • die Hypertext Markup Language
  • seit 1990 das Dokumentformat der Webseiten.
  • entworfen worden, um Dokumente untereinander zu verlinken (Hypertext).
  • eine Auszeichnungssprache (Markup).
    Beispiel: <b>fett</b> und <i>schräg</i>
  • reines Textformat und damit hochgradig portabel.
  • bewusst einfach gehalten.
  • ein Abkömmling der SGML.
  • ein Format zur Beschreibung der logischen Dokumentstruktur.
  • keine Seitenbeschreibungssprache wie Postscript oder PDF.
  • multimedial.
  • in seiner gegenwärtigen Version 4.01 nicht mehr zeitgemäss.
 

[edit] [comment] [remove] |2006-03-22| e20 # HTML (2)

Die Grundstruktur von HTML ist einfach.

  • eine Dokumenttypdeklaration (DTD) am Anfang der Dokumentdatei definiert den erlaubten Sprachumfang (Syntax).
  • der head-Bereich enthält nicht sichtbare Information, Stilangaben, Programmcode und Meta-Angaben.
  • der body-Bereich beinhaltet die strukturelle Information des sichtbaren Dokumentinhalts.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
     "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <title>Titel der Webseite</title>
    <!--Evtl. weitere Kopfinformationen-->
  </head>
  <body>
     Inhalt der Webseite
  </body>
</html>
 

[edit] [comment] [remove] |2006-03-22| e21 # Wie geht's weiter ?

  1. HTML Grundlagen
  2. Javascript Einführung
  3. Datentypen
  4. Operatoren, Ausdrücke
  5. Anweisungen
  6. Arrays, Objekte
  7. Funktionen, Methoden
  8. HTML Formulare, Events, DOM
  9. Fehlerbehandlung
  10. Anwendungsbeispiele
  11. Repetitorium
  12. Klausur
 

[edit] [comment] [remove] |2006-03-22| e22 # Werkzeuge, Literatur