Präsentation

Ein umfassendes, zu 100% online durchgeführtes Programm, das exklusiv von TECH angeboten wird und durch unsere Mitgliedschaft in der Association for Computing Machinery eine internationale Perspektive bietet" 

In einem technologischen Umfeld, das zunehmend von Automatisierung, künstlicher Intelligenz und natürlicher Sprachverarbeitung geprägt ist, ist das Verständnis, wie Computersprachen aufgebaut sind, interpretiert und optimiert werden, zu einer zentralen Notwendigkeit geworden, um in vielen Bereichen des Wissens und der Industrie Fortschritte zu erzielen. Die Interaktion zwischen Mensch und Maschine, die Effizienz von Computersystemen und die Entwicklung neuer digitaler Werkzeuge hängen in hohem Maße von der Beherrschung dieser Sprachen ab. 

Dieses Programm bietet einen umfassenden Überblick über die Grundlagen der Informatik und der Programmiersprachen und vermittelt Fachkenntnisse, die das logische Denken, die Lösung komplexer Probleme und die Entwicklung innovativer Lösungen fördern. Es werden Themen wie formale Semantik, Sprachtheorie, Automaten, Kompilierung und andere grundlegende Elemente behandelt, die für das Verständnis der inneren Funktionsweise von Computersystemen erforderlich sind. 

Darüber hinaus eröffnen sich durch die Beherrschung dieser Inhalte Möglichkeiten in hochdynamischen Bereichen wie künstliche Intelligenz, Entwicklung von Programmiersprachen, Quantencomputing oder Software-Engineering. Diese Spezialisierung stellt einen strategischen Schritt für diejenigen dar, die ihre Karriere im akademischen, technischen oder beruflichen Bereich vorantreiben möchten, insbesondere in Kontexten, in denen Profile mit einer soliden theoretischen Grundlage und analytischen Fähigkeiten geschätzt werden. Die erworbene konzeptionelle Tiefe ermöglicht es nicht nur, bestehende Technologien anzuwenden, sondern auch die Technologien der Zukunft zu entwerfen. 

Die Online-Modalität dieses Programms ermöglicht den Zugriff auf aktuelle Inhalte von hohem akademischem Niveau von jedem Ort aus, ohne dabei Abstriche bei der Qualität oder den Anforderungen zu machen. Diese Flexibilität erleichtert die Vereinbarkeit mit anderen beruflichen oder akademischen Projekten und fördert selbstständiges, rigoroses und auf kritische Analyse ausgerichtetes Lernen. Durch eine interaktive Plattform, multimediale Materialien und die Begleitung durch Experten wird eine bereichernde Erfahrung garantiert, die den aktuellen Anforderungen des digitalen und akademischen Sektors gerecht wird.  Darüber hinaus wird ein renommierter internationaler Gastdirektor 10 ausführliche Masterclasses anbieten. 

Da TECH Mitglied der Association for Computing Machinery (ACM) ist, hat der Student außerdem Zugang zu exklusiven und aktuellen Ressourcen wie wissenschaftlichen Publikationen, Fachkursen und internationalen Konferenzen. Darüber hinaus hat er die Möglichkeit, sein Netzwerk zu erweitern und Kontakte zu Experten aus den Bereichen Technologie, künstliche Intelligenz, Datenwissenschaft und anderen wichtigen Disziplinen der Branche zu knüpfen.

Ein renommierter internationaler Gastdirektor wird zehn exklusive Masterclasses zu den neuesten Trends in den Bereichen Informatik und Programmiersprachen anbieten“

Dieser Weiterbildender Masterstudiengang in Informatik und Programmiersprachen das vollständigste und aktuellste Programm auf dem Markt. Seine herausragendsten Merkmale sind:

  • Die Entwicklung von Fallstudien, die von Experten für Informatik und Programmiersprachen vorgestellt werden
  • Der anschauliche, schematische und äußerst praxisnahe Inhalt vermittelt alle für die berufliche Praxis unverzichtbaren wissenschaftlichen und praktischen Informationen
  • Die praktischen Übungen, bei denen der Selbstbewertungsprozess zur Verbesserung des Lernens durchgeführt werden kann
  • Sein besonderer Schwerpunkt liegt auf innovativen Methoden
  • Theoretische Lektionen, Fragen an den Experten, Diskussionsforen zu kontroversen Themen und individuelle Reflexionsarbeit
  • Die Verfügbarkeit des Zugriffs auf die Inhalte von jedem festen oder tragbaren Gerät mit Internetanschluss

Sie werden sich eingehend mit der Theorie der Automaten und formalen Sprachen befassen, um zu verstehen, wie Computersysteme intern funktionieren“

Zu den Dozenten gehören Fachleute aus dem Bereich der Informatik, die ihre Erfahrungen in dieses Programm einbringen, sowie anerkannte Spezialisten von führenden Gesellschaften und renommierten Universitäten.

Die multimedialen Inhalte, die mit der neuesten Bildungstechnologie entwickelt wurden, ermöglichen der Fachkraft ein situiertes und kontextbezogenes Lernen, d. h. eine simulierte Umgebung, die eine immersive Fortbildung bietet, die auf die Ausführung von realen Situationen ausgerichtet ist.

Das Konzept dieses Programms konzentriert sich auf problemorientiertes Lernen, bei dem der Student versuchen muss, die verschiedenen Situationen aus der beruflichen Praxis zu lösen, die während des gesamten Studiengangs gestellt werden. Dabei wird die Fachkraft durch ein innovatives interaktives Videosystem unterstützt, das von anerkannten Experten entwickelt wurde.

Sie werden mit fortschrittlichen Datenstrukturen arbeiten, um effiziente, skalierbare und leistungsorientierte Lösungen zu entwickeln"

Sie werden komplexe Algorithmen entwerfen, um anspruchsvolle rechnerische Probleme in wichtigen Technologiebereichen zu lösen"

Lehrplan

In einem Umfeld, in dem Fortschritte in den Bereichen Programmiersprachen, Automatentheorie und formale Semantik die Entwicklung neuer Technologien vorantreiben, ist die eingehende Untersuchung dieser Grundlagen von entscheidender Bedeutung für Innovationen in Bereichen wie Quantencomputing, künstliche Intelligenz und Cybersicherheit. Aus diesem Grund umfasst dieser Lehrplan aktuelle und strategisch strukturierte Inhalte, die ein Verständnis der internen Logik von Computersystemen ermöglichen. Auf diese Weise wird eine kritische und fortschrittliche Sichtweise auf die Funktionsweise von Computern gefördert, die im Einklang mit den digitalen Veränderungen steht, die die Standards der Informatik weltweit neu definieren.

Sie werden domänenspezifische Sprachen entwerfen und implementieren, die an konkrete technische Anforderungen angepasst sind“

Modul 1. Grundlagen der Programmierung

1.1. Einführung in die Programmierung

1.1.1. Grundlegende Struktur eines Computers
1.1.2. Software
1.1.3. Programmiersprachen
1.1.4. Lebenszyklus einer Softwareanwendung

1.2. Entwurf von Algorithmen

1.2.1. Lösung von Problemen
1.2.2. Deskriptive Techniken
1.2.3. Elemente und Struktur eines Algorithmus

1.3. Elemente eines Programms

1.3.1. Ursprung und Merkmale der Sprache C++
1.3.2. Die Entwicklungsumgebung
1.3.3. Konzept des Programms
1.3.4. Arten von grundlegenden Daten
1.3.5. Operatoren
1.3.6. Ausdrücke
1.3.7. Anweisungen
1.3.8. Dateneingabe und -ausgabe

1.4. Kontrollstrukturen

1.4.1. Anweisungen
1.4.2. Verzweigungen
1.4.3. Schleifen

1.5. Abstraktion und Modularität: Funktionen

1.5.1. Modularer Aufbau
1.5.2. Konzept der Funktion und des Nutzens
1.5.3. Definition einer Funktion
1.5.4. Ausführungsablauf beim Aufruf einer Funktion
1.5.5. Prototyp einer Funktion
1.5.6. Rückgabe der Ergebnisse
1.5.7. Aufrufen einer Funktion: Parameter
1.5.8. Übergabe von Parametern per Referenz und per Wert
1.5.9. Gültigkeitsbereich

1.6. Statische Datenstrukturen

1.6.1. Arrays
1.6.2. Matrizen. Polyeder
1.6.3. Suche und Sortierung
1.6.4. Zeichenketten. E/A-Funktionen für Zeichenketten
1.6.5. Strukturen. Verbindungen
1.6.6. Neue Datentypen

1.7. Dynamische Datenstrukturen: Zeiger

1.7.1. Konzept. Definition von Zeiger
1.7.2. Operatoren und Operationen mit Zeigern
1.7.3. Arrays von Zeigern
1.7.4. Zeiger und Arrays
1.7.5. Zeiger auf Zeichenketten
1.7.6. Zeiger auf Strukturen
1.7.7. Mehrfache Indirektion
1.7.8. Zeiger auf Funktionen
1.7.9. Übergabe von Funktionen, Strukturen und Arrays als Funktionsparameter

1.8. Dateien

1.8.1. Grundlegende Konzepte
1.8.2. Dateioperationen
1.8.3. Datentypen
1.8.4. Organisation von Dateien
1.8.5. Einführung in C++-Dateien
1.8.6. Handhabung von Dateien

1.9. Rekursion

1.9.1. Definition von Rekursion
1.9.2. Arten der Rekursion
1.9.3. Vor- und Nachteile
1.9.4. Überlegungen
1.9.5. Umwandlung von Rekursion in Iteration
1.9.6. Der Rekursionsstapel

1.10. Test und Dokumentation

1.10.1. Programmtests
1.10.2. White-Box-Tests
1.10.3. Black-Box-Tests
1.10.4. Werkzeuge zur Testdurchführung
1.10.5. Programmdokumentation

Modul 2. Datenstruktur

2.1. Einführung in die Programmierung in C++

2.1.1. Klassen, Konstruktoren, Methoden und Attribute
2.1.2. Variablen
2.1.3. Bedingte Ausdrücke und Schleifen
2.1.4. Objekte

2.2. Abstrakte Datentypen (ADT)

2.2.1. Datentypen
2.2.2. Grundlegende Strukturen und ADTs
2.2.3. Vektoren und Arrays

2.3. Lineare Datenstrukturen

2.3.1. ADT-Liste: Definition
2.3.2. Verknüpfte und doppelt verknüpfte Listen
2.3.3. Geordnete Listen
2.3.4. Listen in C++
2.3.5. ADT-Stapel
2.3.6. ADT-Warteschlange
2.3.7. Stapel und Warteschlange in C++

2.4. Hierarchische Datenstrukturen

2.4.1. ADT-Baum
2.4.2. Traversierungen
2.4.3. n-äre Bäume
2.4.4. Binärbäume
2.4.5. Binäre Suchbäume

2.5. Hierarchische Datenstrukturen: komplexe Bäume

2.5.1. Perfekt balancierte oder minimal hohe Bäume
2.5.2. Mehrwegbäume
2.5.3. Literaturverzeichnis

2.6. Heaps und Prioritätswarteschlange

2.6.1. ADT-Heaps
2.6.2. ADT-Prioritätswarteschlange

2.7. Hash-Tabellen

2.7.1. ADT-Hash-Tabellen
2.7.2. Hash-Funktionen
2.7.3. Hash-Funktion in Hash-Tabellen
2.7.4. Redispersion
2.7.5. Offene Hash-Tabellen

2.8. Graphen

2.8.1. ADT-Graph
2.8.2. Arten von Graphen
2.8.3. Grafische Darstellung und Grundoperationen
2.8.4. Entwurf von Graphen

2.9. Algorithmen und weiterführende Konzepte zu Graphen

2.9.1. Graph-Probleme
2.9.2. Wege-Algorithmen
2.9.3. Such- oder Traversierungsalgorithmen
2.9.4. Andere Algorithmen

2.10. Andere Datenstrukturen

2.10.1. Mengen
2.10.2. Parallele Arrays
2.10.3. Symboltabellen
2.10.4. Tries

Modul 3. Algorithmen und Komplexität

3.1. Einführung in Entwurfsstrategien für Algorithmen

3.1.1. Rekursion
3.1.2. Teile-und-herrsche (Divide and Conquer)
3.1.3. Andere Strategien

3.2. Effizienz und Analyse von Algorithmen

3.2.1. Effizienzmaße
3.2.2. Messung der Eingabegröße
3.2.3. Messung der Laufzeit
3.2.4. Schlimmster, bester und durchschnittlicher Fall
3.2.5. Asymptotische Notation
3.2.6. Kriterien für die mathematische Analyse von nichtrekursiven Algorithmen
3.2.7. Mathematische Analyse von rekursiven Algorithmen
3.2.8. Empirische Analyse von Algorithmen

3.3. Sortieralgorithmen

3.3.1. Konzept der Sortierung
3.3.2. Sortieren durch Aufsteigen
3.3.3. Sortieren durch Auswählen
3.3.4. Sortieren durch Einfügen
3.3.5. Sortieren durch zusammenführen (Merge Sort)
3.3.6. Schnelle Sortierung (Quick Sort)

3.4. Algorithmen mit Bäumen

3.4.1. Konzept des Baums
3.4.2. Binärbäume
3.4.3. Baumtraversierungen
3.4.4. Darstellung von Ausdrücken
3.4.5. Binäre Suchbäume
3.4.6. Balancierte Binärbäume

3.5. Algorithmen mit Heaps

3.5.1. Heaps
3.5.2. Der HeapSort-Algorithmus
3.5.3. Prioritätswarteschlangen

3.6. Algorithmen mit Graphen

3.6.1. Darstellung
3.6.2. Breitensuche
3.6.3. Tiefensuche
3.6.4. Topologische Sortierung

3.7. Greedy-Algorithmen

3.7.1. Die Greedy-Strategie
3.7.2. Elemente der Greedy-Strategie
3.7.3. Münzwechselproblem
3.7.4. Problem des Handlungsreisenden
3.7.5. Rucksackproblem

3.8. Suche nach kürzesten Wegen

3.8.1. Das Problem des kürzesten Weges
3.8.2. Negative Kanten und Zyklen
3.8.3. Dijkstra-Algorithmus

3.9. Greedy-Algorithmen auf Graphen

3.9.1. Minimaler Spannbaum
3.9.2. Prim-Algorithmus
3.9.3. Kruskal-Algorithmus
3.9.4. Komplexitätsanalyse

3.10. Backtracking

3.10.1. Das Backtracking
3.10.2. Alternative Techniken

Modul 4. Fortgeschrittener Algorithmusentwurf

4.1. Analyse von rekursiven und Divide-and-Conquer-Algorithmen

4.1.1. Aufstellen und Lösen von homogenen und nichthomogenen Rekursionsgleichungen
4.1.2. Allgemeine Beschreibung der Divide-and-Conquer-Strategie

4.2. Amortisierte Analyse

4.2.1. Aggregierte Analyse
4.2.2. Die Buchhaltungsmethode
4.2.3. Die Potentialmethode

4.3. Dynamische Programmierung und Algorithmen für NP-Probleme

4.3.1. Merkmale der dynamischen Programmierung
4.3.2. Umkehr: Backtracking
4.3.3. Verzweigung und Beschneidung

4.4. Kombinatorische Optimierung

4.4.1. Problemdarstellung
4.4.2. 1D-Optimierung

4.5. Randomisierte Algorithmen

4.5.1. Beispiele für randomisierte Algorithmen
4.5.2. Das Buffonsche Theorem
4.5.3. Monte-Carlo-Algorithmus
4.5.4. Las-Vegas-Algorithmus

4.6. Lokale Suche und Kandidatensuche

4.6.1. Gradient Ascent
4.6.2. Hill Climbing
4.6.3. Simulated Annealing
4.6.4. Tabu Search
4.6.5. Kandidatensuche

4.7. Formale Verifizierung von Programmen

4.7.1. Spezifikation von funktionalen Abstraktionen
4.7.2. Die Sprache der Prädikatenlogik erster Stufe
4.7.3. Hoare's formales System

4.8. Verifizierung von iterativen Programmen

4.8.1. Regeln des formalen Hoare-Systems
4.8.2. Konzept der invarianten Iterationen

4.9. Numerische Methoden

4.9.1. Die Methode der Halbierung
4.9.2. Newton-Raphson-Methode
4.9.3. Die Sekantenmethode

4.10. Parallele Algorithmen

4.10.1. Parallele binäre Operationen
4.10.2. Parallele Operationen mit Diagrammen
4.10.3. Parallelität in Teilen und Erobern
4.10.4. Parallelität in der dynamischen Programmierung

Modul 5. Fortgeschrittene Programmierung

5.1. Einführung in die objektorientierte Programmierung

5.1.1. Einführung in die objektorientierte Programmierung
5.1.2. Klassendesign
5.1.3. Einführung in UML für die Modellierung von Problemen

5.2. Beziehungen zwischen Klassen

5.2.1. Abstraktion und Vererbung
5.2.2. Fortgeschrittene Konzepte der Vererbung
5.2.3. Polymorphismen
5.2.4. Zusammensetzung und Aggregation

5.3. Einführung in Entwurfsmuster für objektorientierte Probleme

5.3.1. Was sind Entwurfsmuster
5.3.2. Factory-Muster
5.3.3. Singleton-Muster
5.3.4. Observer-Muster
5.3.5. Composite-Muster

5.4. Ausnahmen

5.4.1. Was sind Ausnahmen?
5.4.2. Abfangen und Behandlung von Ausnahmen
5.4.3. Auslösen von Ausnahmen
5.4.4. Erstellung von Ausnahmen

5.5. Benutzeroberflächen

5.5.1. Einführung in Qt
5.5.2. Positionierung
5.5.3. Was sind Ereignisse?
5.5.4. Ereignisse: Definition und Erfassung
5.5.5. Entwicklung von Benutzeroberflächen

5.6. Einführung in die nebenläufige Programmierung

5.6.1. Einführung in die nebenläufige Programmierung
5.6.2. Das Konzept von Prozessen und Threads
5.6.3. Interaktion zwischen Prozessen oder Threads
5.6.4. Threads in C++
5.6.5. Vor- und Nachteile der nebenläufigen Programmierung

5.7. Thread-Verwaltung und Synchronisation

5.7.1. Lebenszyklus eines Threads
5.7.2. Die Klasse Thread
5.7.3. Thread-Planung
5.7.4. Thread-Gruppen
5.7.5. Daemon-Threads
5.7.6. Synchronisation
5.7.7. Sperrmechanismen
5.7.8. Kommunikationsmechanismen
5.7.9. Monitore

5.8. Häufige Probleme in der nebenläufigen Programmierung

5.8.1. Das Erzeuger-Verbraucher-Problem
5.8.2. Das Leser-Schreiber-Problem
5.8.3. Das Problem der speisenden Philosophen

5.9. Softwaredokumentation und -tests

5.9.1. Warum ist es wichtig, Software zu dokumentieren?
5.9.2. Entwurfsdokumentation
5.9.3. Verwendung von Tools zur Dokumentation

5.10. Softwaretests

5.10.1. Einführung in Softwaretests
5.10.2. Arten von Tests
5.10.3. Unit-Test
5.10.4. Integrationstests
5.10.5. Validierungstest
5.10.6. Systemprüfung

Modul 6. Theoretische Informatik

6.1. Verwendete mathematische Konzepte

6.1.1. Einführung in die Aussagenlogik
6.1.2. Relationenlehre
6.1.3. Abzählbare und überabzählbare Mengen

6.2. Formale Sprachen und Grammatiken und Einführung in Turingmaschinen

6.2.1. Formale Sprachen und Grammatiken
6.2.2. Problem der Entscheidung
6.2.3. Die Turingmaschine

6.3. Erweiterungen für Turingmaschinen, beschränkte Turingmaschinen und Computer

6.3.1. Programmiertechniken für Turingmaschinen
6.3.2. Erweiterungen für Turingmaschinen
6.3.3. Beschränkte Turingmaschinen
6.3.4. Turingmaschinen und Computer

6.4. Unentscheidbarkeit

6.4.1. Nicht rekursiv aufzählbare Sprache
6.4.2. Ein unentscheidbares rekursiv aufzählbares Problem

6.5. Andere unentscheidbare Probleme

6.5.1. Unentscheidbare Probleme für Turingmaschinen
6.5.2. Postkorrespondenz-Problem (PCP)

6.6. Unlösbare Probleme

6.6.1. Die Klassen P und NP
6.6.2. Ein NP-vollständiges Problem
6.6.3. Problem der eingeschränkten Erfüllbarkeit
6.6.4. Andere NP-vollständige Probleme

6.7. Co-NP- und PSPACE-Probleme

6.7.1. Komplementär zu NP-Sprachen
6.7.2. Probleme, die mit polynomiellem Speicher lösbar sind
6.7.3. PSPACE-vollständige Probleme

6.8. Sprachklassen mit Randomisierung

6.8.1. Probabilistische Turingmaschinen
6.8.2. Die Klassen RP und ZPP
6.8.3. Primzahltest
6.8.4. Komplexität des Primzahltests

6.9. Andere Klassen und Grammatiken

6.9.1. Probabilistische endliche Automaten
6.9.2. Zelluläre Automaten
6.9.3. McCulloch-Pitts-Zellen
6.9.4. Lindenmayer-Grammatiken

6.10. Fortgeschrittene Rechensysteme

6.10.1. Membrane Computing: P-Systeme
6.10.2. DNA-Computing
6.10.3. Quantencomputing

Modul 7. Automatentheorie und formale Sprachen

7.1. Einführung in die Automatentheorie

7.1.1. Warum Automatentheorie studieren?
7.1.2. Einführung in formale Beweise
7.1.3. Andere Formen des Nachweises
7.1.4. Mathematische Induktion
7.1.5. Alphabete, Zeichenketten und Sprachen

7.2. Deterministische endliche Automaten (DEA)

7.2.1. Einführung in endliche Automaten
7.2.2. Deterministische endliche Automaten (DEA)

7.3. Nichtdeterministische endliche Automaten

7.3.1. Nichtdeterministische endliche Automaten
7.3.2. Äquivalenz zwischen DEA und NEA
7.3.3. Endliche Automaten mit Є-Übergängen

7.4. Reguläre Sprachen und reguläre Ausdrücke (I)

7.4.1. Reguläre Sprachen und reguläre Ausdrücke
7.4.2. Endliche Automaten und reguläre Ausdrücke

7.5. Reguläre Sprachen und reguläre Ausdrücke (II)

7.5.1. Umwandlung regulärer Ausdrücke in Automaten
7.5.2. Anwendungen regulärer Ausdrücke
7.5.3. Algebra der regulären Ausdrücke

7.6. Pumping-Lemma und Abschluss von regulären Sprachen

7.6.1. Pumping-Lemma
7.6.2. Abschlusseigenschaften von regulären Sprachen

7.7. Äquivalenz und Minimierung von Automaten

7.7.1. Äquivalenz endlicher Automaten
7.7.2. Minimierung endlicher Automaten

7.8. Kontextfreie Grammatiken (CFG)

7.8.1. Kontextfreie Grammatiken
7.8.2. Ableitungsbäume
7.8.3. Anwendungen kontextfreier Grammatiken
7.8.4. Mehrdeutigkeit in Grammatiken und Sprachen

7.9. Kellerautomaten und kontextfreie Grammatiken

7.9.1. Definition von Kellerautomaten
7.9.2. Von einem Kellerautomaten akzeptierte Sprachen
7.9.3. Äquivalenz zwischen Kellerautomaten und kontextfreien Grammatiken
7.9.4. Deterministischer Kellerautomat

7.10. Normalformen, Pumping-Lemma von CFGs und Eigenschaften kontextfreier Sprachen

7.10.1. Normalformen kontextfreier Grammatiken
7.10.2. Pumping-Lemma
7.10.3. Abschlusseigenschaften der Sprachen
7.10.4. Entscheidungseigenschaften kontextfreier Sprachen

Modul 8. Sprachprozessoren

8.1. Einführung in den Kompilierungsprozess

8.1.1. Zusammenstellung und Interpretation
8.1.2. Laufzeitumgebung eines Compilers
8.1.3. Analyseprozess
8.1.4. Syntheseprozess

8.2. Lexikalischer Analysator

8.2.1. Was ist ein lexikalischer Analysator?
8.2.2. Implementierung des lexikalischen Analysators
8.2.3. Semantische Aktionen
8.2.4. Fehlerbehebung
8.2.5. Implementierungsaspekte

8.3. Syntaxanalyse

8.3.1. Was ist ein Parser?
8.3.2. Vorläufige Konzepte
8.3.3. Top-down-Parser
8.3.4. Bottom-up-Parser

8.4. Top-down- und Bottom-up-Syntaxanalyse

8.4.1. LL(1)-Parser
8.4.2. LR(0)-Parser
8.4.3. Beispiel eines Parser

8.5. Fortgeschrittene Bottom-up-Syntaxanalyse

8.5.1. SLR-Parser
8.5.2. LR(1)-Parser
8.5.3. LR(k)-Parser
8.5.4. LALR-Parser

8.6. Semantische Analyse (I)

8.6.1. Syntaxgesteuerte Übersetzung
8.6.2. Symboltabelle

8.7. Semantische Analyse (II)

8.7.1. Typüberprüfung
8.7.2. Das Typ-Subsystem
8.7.3. Typäquivalenz und Typkonversionen

8.8. Codegenerierung und Laufzeitumgebung

8.8.1. Entwurfsaspekte
8.8.2. Laufzeitumgebung
8.8.3. Speicherorganisation
8.8.4. Speicherzuweisung

8.9. Zwischencodegenerierung

8.9.1. Syntaxgesteuerte Übersetzung
8.9.2. Zwischendarstellungen
8.9.3. Beispiele für Übersetzungen

8.10. Codeoptimierung

8.10.1. Registerzuweisung
8.10.2. Eliminierung toter Zuweisungen
8.10.3. Ausführung zur Kompilierzeit
8.10.4. Neuordnung von Ausdrücken
8.10.5. Schleifenoptimierung

Modul 9. Computergrafik und Visualisierung

9.1. Farbtheorie

9.1.1. Eigenschaften von Licht
9.1.2. Farbenmodelle
9.1.3. Der CIE-Standard
9.1.4. Profiling

9.2. Ausgabe-Primitive

9.2.1. Der Videotreiber
9.2.2. Algorithmen zum Zeichnen von Linien
9.2.3. Algorithmen zum Zeichnen von Kreisen
9.2.4. Algorithmen zum Füllen

9.3. 2D-Transformationen und 2D-Koordinatensysteme und 2D-Clipping

9.3.1. Geometrische Grundtransformationen
9.3.2. Homogene Koordinaten
9.3.3. Inverse Transformation
9.3.4. Komposition von Transformationen
9.3.5. Andere Transformationen
9.3.6. Koordinatenverschiebung
9.3.7. 2D-Koordinatensysteme
9.3.8. Koordinatenverschiebung
9.3.9. Normalisierung
9.3.10. Algorithmen zum Trimmen

9.4. 3D-Transformationen

9.4.1. Übertragung
9.4.2. Rotation
9.4.3. Skalierung
9.4.4. Reflexion
9.4.5. Scherung

9.5. Anzeige und Änderung von 3D-Koordinaten

9.5.1. 3D-Koordinatensysteme
9.5.2. Sichtbarkeit
9.5.3. Koordinatenwechsel
9.5.4. Projektion und Normalisierung

9.6. Projektion und 3D-Clipping

9.6.1. Orthogonale Projektion
9.6.2. Schrägparallele Projektion
9.6.3. Perspektivische Projektion
9.6.4. 3D-Clipping-Algorithmen

9.7. Entfernen von verdeckten Flächen

9.7.1. Back-Face Removal
9.7.2. Z-buffer
9.7.3. Painter-Algorithmus
9.7.4. Warnock-Algorithmus
9.7.5. Erkennung verdeckter Linien

9.8. Interpolation und parametrische Kurven

9.8.1. Interpolation und polynomielle Approximation
9.8.2. Parametrische Darstellung
9.8.3. Lagrange-Polynom
9.8.4. Natürliche kubische Splines
9.8.5. Basis-Funktionen
9.8.6. Matrix-Darstellung

9.9. Bézier-Kurven

9.9.1. Algebraische Konstruktion
9.9.2. Matrix-Formular
9.9.3. Zusammensetzung
9.9.4. Geometrische Konstruktion
9.9.5. Algorithmus zum Zeichnen

9.10. B-Splines

9.10.1. Das Problem der lokalen Kontrolle
9.10.2. Gleichmäßige kubische B-Splines
9.10.3. Basisfunktionen und Kontrollpunkte
9.10.4. Ableitung zum Ursprung und Multiplizität
9.10.5. Matrix-Darstellung
9.10.6. Ungleichmäßige B-Splines

Modul 10. Bio-inspiriertes Computing

10.1. Einführung in das bio-inspirierte Computing

10.1.1. Einführung in das bio-inspirierte Computing

10.2. Algorithmen zur sozialen Anpassung

10.2.1. Bio-inspiriertes Computing auf der Grundlage von Ameisenkolonien
10.2.2. Varianten von Ameisenkolonie-Algorithmen
10.2.3. Cloud-basiertes Computing auf Partikelebene

10.3. Genetische Algorithmen

10.3.1. Allgemeine Struktur
10.3.2. Implementierungen der wichtigsten Operatoren

10.4. Strategien zur Exploration und Ausbeutung des Suchraums für genetische Algorithmen

10.4.1. CHC-Algorithmus
10.4.2. Multimodale Probleme

10.5. Evolutionäre Berechnungsmodelle (I)

10.5.1. Evolutionäre Strategien
10.5.2. Evolutionäre Programmierung
10.5.3. Algorithmen auf der Grundlage der differentiellen Evolution

10.6. Evolutionäre Berechnungsmodelle (II)

10.6.1. Evolutionäre Modelle auf der Grundlage der Schätzung von Verteilungen (EDA)
10.6.2. Genetische Programmierung

10.7. Evolutionäre Programmierung angewandt auf Lernprobleme

10.7.1. Regelbasiertes Lernen
10.7.2. Evolutionäre Methoden bei Instanzauswahlproblemen

10.8. Mehrzielprobleme

10.8.1. Konzept der Dominanz
10.8.2. Anwendung evolutionärer Algorithmen auf Mehrzielprobleme

10.9. Neuronale Netze (I)

10.9.1. Einführung in neuronale Netze
10.9.2. Praktisches Beispiel mit neuronalen Netzen

10.10. Neuronale Netze

10.10.1. Anwendungsfälle neuronaler Netze in der medizinischen Forschung
10.10.2. Anwendungsfälle neuronaler Netze in der Wirtschaft
10.10.3. Anwendungsfälle neuronaler Netze in der künstlichen Bildverarbeitung 

Sie werden Fähigkeiten zur formalen und semantischen Analyse von Programmen entwickeln und die Effizienz der Software erheblich verbessern“

Weiterbildender Masterstudiengang Informatik und Programmiersprachen

Der IT-Sektor hat im Vergleich zu anderen akademischen und beruflichen Bereichen eine solche Hegemonie erlangt, dass praktisch alle Aspekte des heutigen Lebens untrennbar mit Algorithmen und Prozessen der Informatik verbunden sind; von der Cybersicherheit, die unser virtuelles Geld schützt, über die E-Mail, die wir unserem Chef schicken, bis hin zur „Match"-Benachrichtigung in Apps wie Tinder. Warum also nicht darauf setzen, unsere Computerkenntnisse zu verbessern? Der von der TECH Technologischen Universität angebotene Private Masterstudiengang in Informatik und Programmiersprachen ist das Plus, das Sie brauchen, um auf dem Markt wettbewerbsfähig zu werden, sei es für unternehmerische Innovationen oder für den Zugang zu lohnenderen Positionen auf dem traditionellen Arbeitsmarkt. Möchten Sie der nächste Tim Berners-Lee werden, der Vater des World Wide Web und des HTML-Codes? Bei TECH können Sie dies mit 100% virtuellem und flexiblem Unterricht, einem hochqualifizierten Lehrkörper und einem Lehrplan erreichen, der durch die neuesten Multimediatechnologien bereichert wird und in dem Sie sich mit Programmiersprachen und neuronalen Netzen für das künstliche Sehen beschäftigen werden. Diese Gelegenheit zur Professionalisierung sollten Sie sich nicht entgehen lassen.

Erlangen Sie einen Online-Abschluss in Informatik und Programmiersprachen

Nach Angaben der Weltbank werden in den nächsten fünf Jahren weltweit 149 Millionen neue Arbeitsplätze in den Bereichen Programmierung und Softwareentwicklung entstehen. Das bedeutet, dass der Bedarf an Fachkräften mit ausgeprägten Fähigkeiten und Kenntnissen in den Bereichen Technologie und Informatik erheblich zunehmen wird. Durch die Teilnahme an unserem Masterstudiengang werden Sie in der Lage sein, ein höheres Profil zu erlangen, indem Sie Themen wie fortgeschrittenes Algorithmen-Design, Datenstruktur, Partikel-Cloud-Computing, dynamische Programmierung für NP-Probleme u. a. kennenlernen. Wir verfügen über die neuesten Telematik- und Lehrmethoden, um Ihre Erfahrung immersiv, dynamisch und effizient zu gestalten. Kommen Sie zu TECH und bringen Sie Ihre Karriere auf ein Niveau, das Ihre Erwartungen übertrifft.