### About

My name is Eva Maria Kiss, and my teaching and research at the University of Applied Sciences Kaiserslautern
focuses on database systems, machine learning, web technologies, also basic programming courses and algorithms.
This website provides additional learning materials such as **tutorials**, **quizzes** and
**learning apps** that can be used for self-study and fun.

## Tutorials

Here you find a number of Tutorials for learning Python, MATLAB, R / RStudio, SQL / phpMyAdmin, or C. Many tutorials have matching quizzes, this is useful to test your knowledge as part of exam preparations.

##### Python Tutorial »

This **Python Tutorial** summarizes **basic syntax and usage** on how to get started with Python.
It is organized in ten blocks:
prerequisites, installation and tools, how to create and run scripts and notebooks,
how to use variables, perform calculations with operators, use if-else, loops, data structures, functions, classes, packages.
To run the code examples, you can use your own Python installation with Jupyter Notebook, Visual Studio Code, Spyder ... or
use one of the many available online Python environments.

**Machine Learning projects**

**Algorithms**Cybersecurity

##### MATLAB Tutorial »

The **MATLAB tutorial** gives an introduction
to the **MATLAB language** and environment as needed by engineers for data analysis, simulation or
Numerical Methods. Basic MATLAB syntax (variables, input, output, vectors, matrices, functions, plotting)
is illustrated using small examples that are saved as MATLAB scripts.
All examples will also run in the open source software **Octave**.
After completing this tutorial, you can take a MATLAB Quiz to test your MATLAB knowledge.

**Numerical Methods**

##### R Tutorial »

This tutorial is an introduction to the **statistical programming language R**
and covers the basic syntax: variables and data types, data structures (vectors, matrices, data frames), control flow, functions,
data visualization and the most important packages / libraries.
We use **RStudio** and **RStudio Cloud** as an integrated, user-friendly development environment for R.

**Machine Learning projects**

##### SQL-Tutorial »

Das **SQL-Tutorial** gibt eine kompakte Übersicht
der wichtigsten SQL-Befehle, gruppiert nach Einsatzbereich:
DML-Befehle zur Datenabfrage und Datenmanipulation (SELECT, INSERT, UPDATE, DELETE),
DDL-Befehle zur Definition von Datenbankobjekten (CREATE, ALTER, DROP, TRUNCATE), und DCL-Befehle zur Kontrolle von Zugangsberechtigungen
(GRANT, REVOKE). Zum schnellen Nachschlagen der am meisten genutzten SQL-Befehle kann direkt die **SQL-Kurzreferenz** verwendet
werden, diese bietet eine tabellarische Übersicht mit Filter und Suche.

**Database Systems**

##### Erste Schritte mit phpMyAdmin »

Das vorliegende **phpMyAdmin-Tutorial** gibt eine kompakte Übersicht über die Verwendung von phpMyAdmin zur Erstellung, Verwaltung und Abfrage von
MySQL- bzw. MariaDB-Datenbanken. Wir verwenden dabei das XAMPP-Programmpaket, das MySQL/MariaDB und phpMyAdmin beinhaltet,
und zeigen, wie die Struktur einer Datenbank (Tabellen, Integritätseinschränkungen, Sichten) mit der Benutzeroberfläche erstellt wird,
wie die Datenbank über die Benutzeroberfläche und mit der Import-Funktionalität mit Daten befüllt wird, und wie Datenbank-Struktur
und Inhalte mit der Export-Funktionalität exportiert werden.

**Database Systems**

## Learning Apps

The following apps created with Python / Jupyter Notebook / Google Colab and R / Shiny can be used for learning about algorithms and data visualization. Some of the apps are work in progress, to be finished as project work by students. Have fun!

**BSTLearner**Algorithms Binary Search Trees Python

A **binary search tree (BST) **is a data structure used for storing, retrieving and sorting data in an efficient way
by using a binary tree structure with the property that the keys in a node’s left subtree are less and the keys in a node's
right subtree are greater than the key of the node itself, and then making it balanced.

The **BSTLearner tutorial** explains the usage and implementation of an interactive binary search visualization in Python using
Graphviz and Jupyter Notebook Widgets. Jupyter Notebook Version 1.0 **BSTLearner 1.0.ipynb** contains intermediate steps and test code.
In Jupyter Notebook Version 1.2 **BSTLearner 1.2.ipynb** the classes have been moved to a Python module algolibs,
so the notebook now is uncluttered and contains only the GUI / widgets code.
This is work in progress! To be finished as project work by students.

**DecisionTreeLearner**DecisionTree Failure Classification Python

The interactive **DecisionTreeLearner** shows the training and usage
of a decision tree model for failure prediction on a small automotive data set.

We first implemented the basic functionality of classification with Scikit-learn decision trees.
Next, we created an interactive visualization of the decision tree using the Jupyter widget function **interactive_output()**
with the aim of testing the effect of the different parameters on the performance of the model.
The user interface has three tabs ("Data", "Model", and "Prediction"), each tabs has a top panel
which is used to set the most important configuration parameters, and a bottom panel that shows the tabular or graphical output.
Whenever a configuration parameter is changed, a new decision tree model is immediately created
and visualized. Simultanously, the performance indicators for the validation data set are automatically calculated and displayed.

**RVisLearner**Data Visualization ggplot2 R

The interactive **RVisLearner** shows how to create data visualizations with the base R functions
hist and plot from the graphics package, and with the corresponding functions of the Tidyverse ggplot2 package.

## Courses & Projects

### Courses

The courses listed below are open to students enrolled in the engineering programms of the University of Applied Sciences Kaiserslautern.

##### Algorithms »

Sorting Searching Trees Graphs Java Python
The course **Algorithms** gives an introduction to algorithms and data structures as well as basic principles of algorithm design
and complexity analysis. Assignments consist in extending the implementation of an existing algorithms framework in Java or Python.

##### Database Systems »

DBMS Relational Model ER-Diagrams SQL XML JSON
The course **Database Systems** teaches basic concepts of databases and database management systems (DBMS),
with focus on relational databases and an overview on NoSQL databases.

##### Web Technologies and Cloud Computing »

HTML, CSS, JavaScript, PHP Web Frameworks Web Services Cloud
The course **Web Technologies and Cloud Computing** gives an introduction to the theoretical and practical basics
of modern web and cloud technologies:
Internet, WWW, server and client-side programming, web frameworks: Java-based, PHP-based,
Web services and service-oriented architectures, basics of cloud computing, service models and operator models.

##### Numerical Methods »

Modeling Integration ODEs PDEs MATLAB
The course **Numerical Methods** enables students to build mathematical models for common classes of engineering problems and solve
the problems by implementing appropriately chosen numerical methods in MATLAB.
The focus is on solving ordinary differential equations (Euler, Runge-Kutta)
and partial differential equations (finite difference and finite element methods).

### Projects

**elab2go - Mobile Engineering Lab** is an online platform
for demonstrators showcasing new technologies and trends (in German).
Current demonstrators and tutorials explain basics concepts and methods of
Applied Machine Learning, Predictive Maintenance, and Internet of Things.
The platform is developed as part of the **"Offene Digitalisierungsallianz Pfalz"-**Project,
and aims to transfer innovation and trend technologies from universities in the Rhineland-Palatinate region.

The series of demonstrators and tutorials **Demo-PYx**
introduces to models and algorithms of Machine Learning, e.g. Decision Trees, Cluster Analysis, Artificial Neural Networks)
by using Python as programming language, the Python-packages for data analysis Pandas, Scikit-Learn, Keras, Tensorflow,
and Jupyter Notebook or Google Colab as web-based IDE.

The survey article **Machine Learning: Concepts, Methods, Tools** gives an introduction to the most important
concepts of machine learning and explains the use of the elab2go demonstrators that illustrate them.

The survey article **An introduction to Predictive Maintenance** explains the fundamental concepts
and basic technologies of predictive maintenance, as well as their areas of application in practice,
solutions of global players and an overview of the elab2go demonstrators
that illustrate data analysis as part of Predictive Maintenance process.

## University of Applied Sciences Kaiserslautern

The Department of Applied Engineering (AING) offers students the opportunity to pursue an exceptional, high quality education in the largest electrical and mechanical engineering department in Rhineland-Palatinate.

### Events

**Open Campus 2023**

As every year, the University of Applied Sciences Kaiserslautern invites to an Open Campus event, this year
for **Saturday, April 22 10:00 a.m. to 3:00 p.m** to the **"Open Campus 2023"**.
The event offers free presentations and live demonstrations, is open to the general public
and a good opportunity for prospective students to learn about the courses and study conditions
at our university.

You get to know the university directly on site and can find out first-hand from professors, assistants and students
about the degree programs and student life at the university.

Here you can download the presentation (in German) of this year:

TdOC 2023, Vorstellung der Studiengänge Elektrotechnik, Energieingenieurwesen, Digital Engineering.

**Information session STUDIUM & BERUF**

Each year in february, high school students can attend the information session STUDIUM & BERUF, where they are informed about the courses
on offer at the University of Applied Sciences Kaiserslautern.
Here you can download presentation (in German) of the last year.

Studium & Beruf 2022, Studiengang Elektrotechnik (Bachelor)

### Presentation "Electrical Engineering"

Here you can download the current presentation of the Electrical Engineering program, in German "Studium & Beruf 2022, Studiengang Elektrotechnik (Bachelor)", with general information about the program: current curriculum, new courses, entry requirements, pre-study internship.

### Image trailer

"Applied Engineering AING@HS-KL"

Starting at 00:49, you can see some of the ongoing projects and labs of the department, such as roboters, drones and high voltage lab.