Programmierung

Grundlagen

 
non scholae sed vitae discimus

 

Kursinhalte

Grundlagen

  • Grundbegriffe
  • Standard-Software anpassen
  • Automatisierung
  • Individual-Software
  • Erhöhte Nachfrage nach Software
  • Zahlensysteme
  • Dezimalsystem
  • Dualsystem
  • Oktalsystem
  • Hexadezimalsystem
  • Programme basieren auf Zahlen
  • Digitales Rechnen
  • Zeichencodes

Grundlagen der Software-Entwicklung

  • Prinzipien und Methoden des Software-Entwurfs
  • Prinzipien
  • Methoden
  • Vorteile der Modularisierung
  • Phasenmodell des Software-Lebenszyklus
  • Analysieren und definieren
  • Entwerfen
  • Implementieren
  • Testen
  • Einsatz und Wartung
  • Wiederverwendbarkeit
  • Computergestützte Software-Entwicklung (CASE)
  • Vorgehensmodelle
  • Das Wasserfallmodell
  • Das V-Modell
  • Prototyping
  • Das Spiralmodell
  • Qualitätskriterien
  • Korrektheit, Robustheit, Zuverlässigkeit
  • Benutzerfreundlichkeit
  • Effizienz
  • Wartbarkeit
  • Dokumentation
  • Zunehmende Qualitätsanforderungen
  • Hinweise zur Software-Entwicklung

Programmiersprachen

  • Die Klassifizierung nach Generationen
  • Erste Generation: Maschinensprachen (Maschinencode)
  • Zweite Generation: Assembler- Sprachen
  • Dritte Generation: Problemorientierte Sprachen
  • Vierte Generation: Deklarative Sprachen
  • Fünfte Generation: Künstliche Intelligenz
  • Die Klassifizierung nach Sprachtypen
  • Prozedurale Programmiersprachen
  • Logische Programmiersprachen
  • Funktionale Programmiersprachen
  • Objektorientierte Programmiersprachen

Werkzeuge der Software-Entwicklung

  • Editor
  • Übersetzer
  • Interpreter
  • Compiler, Assembler, Disassembler
  • Binden und laden
  • Debugger
  • Entwicklungsumgebungen
  • Standardbibliotheken

Grundlegende Sprachelemente

  • Merkmale und Darstellungsmittel einer Sprache
  • Syntaxdiagramme
  • Backus-Naur-Form
  • Allgemein gültige syntaktische Regeln
  • Bezeichner
  • Reservierte Wörter
  • Kommentare
  • Variablen
  • Gültigkeitsbereich
  • Deklaration
  • Wertzuweisung
  • Konstanten
  • Standarddatentypen (elementare Datentypen)
  • Numerische Datentypen
  • Zeichen-Datentyp
  • Logischer Datentyp
  • Operatoren
  • Vorzeichen-Operatoren
  • Arithmetische Operatoren
  • Vergleichsoperatoren
  • Logische Operatoren
  • Bitweise Operatoren
  • Zuweisungsoperatoren
  • Ausdrücke

 

Darstellungsmittel für Programmabläufe

  • Programmablaufplan
  • Datenflussdiagramm
  • Struktogramme
  • Pseudocode
  • Weitere Darstellungsformen
  • Jackson-Diagramm
  • Warnier-Orr-Diagramm
  • Entscheidungstabellen

Kontrollstrukturen

  • Grundlagen
  • Anweisungen
  • Folge
  • Bedingungen
  • Auswahl
  • Einseitige Auswahl
  • Zweiseitige Auswahl
  • Mehrstufige Auswahl
  • Mehrseitige Auswahl
  • Wiederholung
  • Zählergesteuerte Wiederholung (Iteration)
  • Bedingte Wiederholung

Elementare Datenstrukturen

  • Felder
  • Statische und dynamische Felder
  • Eindimensionale Felder (Vektoren)
  • Zwei- und mehrdimensionale Felder
  • Zeichenketten
  • Strukturen (Records)
  • Zeiger und Adressen
  • Stapel
  • Schlangen
  • Listen
  • Einfach verkettete Listen
  • Doppelt verkettete Liste

Prozeduren und Funktionen

  • Die Unterprogrammtechnik
  • Prozeduren
  • Funktionen
  • Parameterübergabe
  • Parameterübergabe als Wert (call by value)
  • Parameterübergabe über Referenzen und Zeiger
  • Felder als Parameter

Algorithmen

  • Begriffsbestimmung
  • Anforderungen
  • Algorithmentypen
  • Iterativer Algorithmus
  • Rekursiver Algorithmus
  • Iterativ oder rekursiv?
  • Generischer Algorithmus

Spezielle Algorithmen

  • Suchen und Sortieren
  • Suchen
  • Sortieren
  • Arbeiten mit Dateien

Objektorientierte Programmierung (OOP)

  • Stufen der OOP
  • Objektorientierte Analyse (OOA)
  • Objektorientierter Entwurf (OOD)
  • Objektorientierte Programmierung (OOP)
  • Prinzipien der OOP
  • Abstraktion
  • Kapselung
  • Modularität
  • Hierarchie
  • Typisierung
  • Nebenläufigkeit
  • Klassen und Objekte
  • Klassen
  • Objekte, Attribute, Methoden
  • Objekte
  • Attribute in Objekten
  • Methoden
  • Datenabstraktion und Datenkapselung
  • Konstruktoren und Destruktoren
  • Vererbung
  • Polymorphie