Dipl.-Inf. Frank Güttler
M. Sc. Stephan Fischer
Propädeutikum
2016
Propädeutikum 2016
Dipl.-Inf. Frank Güttler / M.Sc. Stephan Fischer
Vorbereitungskurs Informatikstudium
• Programmieren (C-Kurs)
• Erfolgreich Studieren
Dipl.-Inf. Frank Güttler
M. Sc. Stephan Fischer
quapona technologies GmbH
An der Kirschallee 4
04159 Leipzig
Propädeutikum 2016
2
Propädeutikum 2016
Dipl.-Inf. Frank Güttler / M.Sc. Stephan Fischer
Folien und Übungsaufgaben sind unter
• https://www.informatik.uni-leipzig.de
Studienbüro
Propädeutikum
Programmierkurs C
zu finden
Propädeutikum 2016
3
Propädeutikum 2016
Dipl.-Inf. Frank Güttler / M.Sc. Stephan Fischer
Kapitel 0
• Inhaltsübersicht des Vorbereitungskurses
Kapitel 1
• Programmiersprachen und ihre Anwendung
Kapitel 2
• Von C zum ausführbaren Programm
Kapitel 3
• Die Symbole in C
Überblick
4
Propädeutikum 2016
Dipl.-Inf. Frank Güttler / M.Sc. Stephan Fischer5
Kapitel 0
Inhaltsübersicht des Vorbereitungskurses
Propädeutikum 2016
Dipl.-Inf. Frank Güttler / M.Sc. Stephan Fischer
(1) Montag, 19.09.
• Programmiersprachen und Ihre Anwendung
• Von C zum ausführbaren Programm
• Die Symbole in C
(2) Dienstag, 20.09.
• Modellierung von Programmen und Daten
• Variablen und Datentypen
(3) Mittwoch, 21.09.
• Anweisungen und Blöcke
• Steuerung des Programmflusses
Inhaltsübersicht (vorläufig)
6
Kapitel 0 – Inhaltsübersicht des Vorbereitungskurses
Propädeutikum 2016
Dipl.-Inf. Frank Güttler / M.Sc. Stephan Fischer
(4) Donnerstag, 22.09.
• Funktionen
• Bibliotheken (Funktionssammlungen)
(5) Freitag, 23.09.
• Was erwartet Dich im Studium?
• Wie bewältige ich die Informationsflut?
Inhaltsübersicht (vorläufig)
7
Kapitel 0 – Inhaltsübersicht des Vorbereitungskurses
Propädeutikum 2016
Dipl.-Inf. Frank Güttler / M.Sc. Stephan Fischer
(6) Montag, 26.09.
• Module und Kompilierung
(7) Dienstag, 27.09.
• Präprozessoranweisungen
• Gültigkeit und Speicherklassen
Inhaltsübersicht (vorläufig)
8
Kapitel 0 – Inhaltsübersicht des Vorbereitungskurses
Propädeutikum 2016
Dipl.-Inf. Frank Güttler / M.Sc. Stephan Fischer
(8) Mittwoch, 28.09.
• Arrays (Felder)
• Strukturen
(9) Donnerstag, 29.09.
• Zeiger (Pointer)
(10) Freitag, 29.09.
• Zeitmanagement
• Effektiv und effizient arbeiten
Inhaltsübersicht (vorläufig)
9
Kapitel 0 – Inhaltsübersicht des Vorbereitungskurses
Propädeutikum 2016
Dipl.-Inf. Frank Güttler / M.Sc. Stephan Fischer
Was erwartet Dich?
10
Kapitel 0 – Inhaltsübersicht des Vorbereitungskurses
Student sein –eine Dauerparty?
Was ist beim Studium anders?
Wie, Selbststudium?
Was ist Informatik?
Propädeutikum 2016
Dipl.-Inf. Frank Güttler / M.Sc. Stephan Fischer
Auf der Informationswelle reiten,
statt sich von ihr überfluten zu lassen!
Wie bewältige ich die Informationsflut?
11
Kapitel 0 – Inhaltsübersicht des Vorbereitungskurses
Quelle: iStockfoto, http://www.istockphoto.com/
Propädeutikum 2016
Dipl.-Inf. Frank Güttler / M.Sc. Stephan Fischer
Exkurs in die Lernpsychologie
• Wissen, Emotionen
Mitschriften gestalten
• Vorlesungsmitschriften
Lesetechniken
• Komponenten des Leseprozesses
• Umgang bei Verständnisschwierigkeiten
Exzerpte erstellen
• Arten von Exzerpten
• Exzerpte verwalten
Wie bewältige ich die Informationsflut?
13
Kapitel 0 – Inhaltsübersicht des Vorbereitungskurses
Propädeutikum 2016
Dipl.-Inf. Frank Güttler / M.Sc. Stephan Fischer
Wie nutze ich meine Zeit?
Zeitmanagement und Persönlichkeit
14
Kapitel 0 – Inhaltsübersicht des Vorbereitungskurses
Propädeutikum 2016
Dipl.-Inf. Frank Güttler / M.Sc. Stephan Fischer
Zeitplanung – Studium und Alltag
• Was tue ich wann und wie?
• Prioritäten setzen
Zeitplanungssysteme
• Kanban-Listen
• Mindmaps
Planungen für
• Den Tag
• Die Woche
• Das Semester
Zeitmanagement und Persönlichkeit
15
Kapitel 0 – Inhaltsübersicht des Vorbereitungskurses
Propädeutikum 2016
Dipl.-Inf. Frank Güttler / M.Sc. Stephan Fischer
Effektiv und effizient arbeiten
• Ziele klar definieren
• Pareto-Prinzip
• Zeitdiebe
Arbeitsmethoden
• Pomodoro-Technik
• Pausen
Motivation
• Prokastination
• Salami-Taktik
Zeitmanagement und Persönlichkeit
16
Kapitel 0 – Inhaltsübersicht des Vorbereitungskurses
Propädeutikum 2016
Dipl.-Inf. Frank Güttler / M.Sc. Stephan Fischer
Welcher Lerntyp bist Du?
Wie lerne ich am Besten?
17
Kapitel 0 – Inhaltsübersicht des Vorbereitungskurses
Quelle: Tanja Föhr, http://tanjafoehr.com
Propädeutikum 2016
Dipl.-Inf. Frank Güttler / M.Sc. Stephan Fischer
Was ist Lernen? Lerntheorien
• Kognitivismus
• Konstruktivismus
• Neurobiologische Perspektive
Lerntechniken
• Stukturierung
• Mind Mapping
• Problemerkennung
• Gruppenarbeit
• Weitere Techniken
Wie lerne ich am Besten?
18
Kapitel 0 – Inhaltsübersicht des Vorbereitungskurses
Quelle: Tanja Föhr, http://tanjafoehr.com
Propädeutikum 2016
Dipl.-Inf. Frank Güttler / M.Sc. Stephan Fischer19
Kapitel 1
Programmiersprachen und ihreAnwendung
Propädeutikum 2016
Dipl.-Inf. Frank Güttler / M.Sc. Stephan Fischer
Was ist eine Programmiersprache?
• Formale Sprache
• Formulierung von Datenstrukturen und Algorithmen
• Syntax und Semantik
Computer
• Verarbeitung von Daten
• Abarbeitung einer endlichen Rechenvorschrift
• EVA-Prinzip
• Eingabe
• Verarbeitung
• Ausgabe
Grundlagen
20
Kapitel 1 – Programmiersprachen und ihre Anwendung
Propädeutikum 2016
Dipl.-Inf. Frank Güttler / M.Sc. Stephan Fischer
Programmiersprachen: Popularitätsindex
21
Kapitel 1 – Programmiersprachen und ihre Anwendung
09/2015 Sprache Rating (%) Einsatz
1. Java 19,6 Desktop, Web, Android
2. C 15,6 LowLevel-Hardware, Kernel, Eingebettete Systeme, Auto-motive, Desktop, Spiele, PS43. C++ 6,8
4. C# 4,9 Desktop, Web, App, Xbox
5. Python 3,6 Web, Spiele
6. PHP 2,5 Web
7. JavaScript 2,3 Web
8. VisualBasic .NET 2,1 Desktop, Web, App, Xbox
9. Perl 1,9 Konsole, Web
10. Objective-C 1,8 iOS, MacOS
Quelle: Tiobe Programming Index, http://www.tiobe.com
Propädeutikum 2016
Dipl.-Inf. Frank Güttler / M.Sc. Stephan Fischer
Wozu Programmieren?
22
Kapitel 1 – Programmiersprachen und ihre Anwendung
LowLevel-Programmierung
Eingebettete Systeme
Automotive
Kernel-, System-,
Anwendungs-Programmierung
Spiele (Desktop, App, Konsolen)
C/C++-Programmierung
Propädeutikum 2016
Dipl.-Inf. Frank Güttler / M.Sc. Stephan Fischer
Was werde ich im Studium lernen?
23
Kapitel 1 – Programmiersprachen und ihre Anwendung
• Syntax
• Sprachelemente
• KonzepteTheorie
• Umgang
• Moderne Anwendung
• Erprobte MethodenPraxis
• Verständnis
• ZusammenhängeHintergründe
Propädeutikum 2016
Dipl.-Inf. Frank Güttler / M.Sc. Stephan Fischer
Was kann ich noch lernen?
24
Kapitel 1 – Programmiersprachen und ihre Anwendung
C/C++, C#, Java
Technische Informatik
Enterprise Systems
Visualisierung
DatenbankenVerteilte Systeme
Parallel-verarbeitung
Betriebliche Informations-
systeme
Propädeutikum 2016
Dipl.-Inf. Frank Güttler / M.Sc. Stephan Fischer
Programmieren: Wah, das werde ich nie können!
25
Kapitel 1 – Programmiersprachen und ihre Anwendung
Programmier-Ass
Selbst-studium
Praktikum
Vorlesung
Propädeutikum 2016
Dipl.-Inf. Frank Güttler / M.Sc. Stephan Fischer27
Kapitel 2
Von C zum ausführbaren Programm
Propädeutikum 2016
Dipl.-Inf. Frank Güttler / M.Sc. Stephan Fischer
Programmiersprache C
29
Kapitel 2 - von C zum ausführbaren Programm
Sprache der Programmierer
Vereint Vorteile höherer Sprachen mit Vorzügen der maschinennahen Programmierung
Anwendungsprogramme und
Systemprogrammierung
Propädeutikum 2016
Dipl.-Inf. Frank Güttler / M.Sc. Stephan Fischer
Merkmale
• Imperative bzw. Prozedurale Sprache
• Strukturierte Programmierung
• Vollständig Typisiert
Besonderheiten
• Wenige Schlüsselwörter
• Direkte Speicherzugriffe
• Einfache Portierbarkeit der Programme
Programmiersprache C
30
Kapitel 2 - von C zum ausführbaren Programm
Propädeutikum 2016
Dipl.-Inf. Frank Güttler / M.Sc. Stephan Fischer
Module
• Quelldatei.c
• Headerdatei.h
Funktionen
• Deklaration u. Definition
• Block
Programmaufbau(informativ)
31
Kapitel 2 - von C zum ausführbaren Programm
// main.c#include <stdio.h>
int main(){
}
Propädeutikum 2016
Dipl.-Inf. Frank Güttler / M.Sc. Stephan Fischer
Anweisungen
• Ausdruck
• Kontrollstrukturen
• Zuweisungen
Typen
• Basis-Datentypen
• Abgeleitete Datentypen
Programmaufbau(informativ)
32
Kapitel 2 - von C zum ausführbaren Programm
// main.c#include <stdio.h>
int main(){
printf(“Hello World!“);return 0;
}
Propädeutikum 2016
Dipl.-Inf. Frank Güttler / M.Sc. Stephan Fischer
Präprozessor-DirektivenGlobale DeklarationenTyp funktion_1( . . . );...Typ funktion_n( . . . );
int main( . . . ) {
Lokale Deklarationen Anweisungsfolge
}
Typ funktion_1( . . . ) {
Lokale Deklarationen Anweisungsfolge
}...
Programmaufbau(formell)
33
Kapitel 2 - von C zum ausführbaren Programm
Funktionsdeklaration(nur was, nicht wie)
Funktion main(erste Programmroutine)
Funktionsdefinition(konkrete Anweisungen)
Propädeutikum 2016
Dipl.-Inf. Frank Güttler / M.Sc. Stephan Fischer
Vom Programtext zum ausführbaren Programm
19
Kapitel 2 - von C zum ausführbaren Programm
Quelldateimodul.c
Objektdateimodul.o
Programma.out
Bibliotheklib1.soBibliothek
lib1.soBibliotheklib1.so
II. Übersetzen- Präprozessor- Compiler- Assembler
I. Editieren
III. Binden
IV. Ausführen Komandozeile$ ./a.out
Propädeutikum 2016
Dipl.-Inf. Frank Güttler / M.Sc. Stephan Fischer
hallo.c
$ gedit hallo.c & I . Editieren
$ gcc –Wall hallo.c -o hallo II. Übersetzen
$ ./hallo IV. Ausführen
Befehle
35
Kapitel 2 - von C zum ausführbaren Programm
Propädeutikum 2016
Dipl.-Inf. Frank Güttler / M.Sc. Stephan Fischer36
Kapitel 3
Die Symbole in C
Propädeutikum 2016
Dipl.-Inf. Frank Güttler / M.Sc. Stephan Fischer
Zeichensatz von C
• 92 druckbare Zeichen
• 7 Steuerzeichen
• Unterscheidung Groß- und Kleinbuchstaben
Druckbare Zeichen
• 26 Großbuchstaben des englischen Alphabets [A..Z]
• 26 Kleinbuchstaben des englischen Alphabets [a..z]
• 10 Ziffern [0..9]
• 30 Sonderzeichen
• ! “ # % & ` ( ) * + - ' . / : ; < = > ? [ \ ] ^ _ { | }
~
• Leerzeichen
• Keine Umlaute (ß, ö, …)
Alphabet
37
Kapitel 3 – Die Symbole in C
Propädeutikum 2016
Dipl.-Inf. Frank Güttler / M.Sc. Stephan Fischer
• Steuerung von Ausgabegeräten (Bildschirm, Drucker, ...)
• Verwendbar für Eingabegeräte (teilweise)
• Definition als sog. Escape-Sequenzen
• z.B. printf(“Hallo Welt!\t<-- Toll!\n“);
• Ausgabe:Hallo Welt! <-- Toll!
Steuerzeichen
38
Kapitel 3 – Die Symbole in C
\a alert Laut
\b backspace Position nach links
\f formfeed Seitenvorschub
\n new line Zeilenvorschub
\r carriage return Positionierung am Zeilenanfang
\t horizontal tab Horizontaler Abstand
\v vertical tab Vertikaler Abstand
Propädeutikum 2016
Dipl.-Inf. Frank Güttler / M.Sc. Stephan Fischer
• Entwertung von C-Metazeichen
• z.B.
• printf(“Hallo \“Max\““);
• Ausgabe:Hallo “Max“
Entwerter
39
Kapitel 3 – Die Symbole in C
\\ Entwertung von Backslash als Escapesequenz
\“ Entwerter für Zeichenkettenkonstante
\‘ Entwerter für Zeichenkonstante
Propädeutikum 2016
Dipl.-Inf. Frank Güttler / M.Sc. Stephan Fischer
Namen
• Bezeichnung von Objekten (Variablen, Konstanten,
Funktionen)
• Bezeichnung von Operationen (Arithm. Ausdrücke, etc.)
Konvention
• Frei wählbar
• Beschreibend
• Variablen- und Funktionen beginnen mit Kleinbuchstaben
• Konstanten bestehen nur aus GROSSBUCHSTABEN
• Keine Schlüsselwörter (if, else, return etc.)
Beispiele
• z.B. int geburtsJahr, speichereListe()
• z.B. MAX_PERSONS
Folie 40
Kapitel 3 – Die Symbole in C
C-Kurs
Dipl.-Inf. Frank Güttler
M. Sc. Stephan Fischer
Propädeutikum
2016
Viel Erfolg!
Bis morgen!