-
Algorithmen und ProgrammierungWintersemester 2020/2021
Algorithmen und Programmierung
1. KapitelEinführung in die Lehrveranstaltung
Prof. Matthias WernerProfessur Betriebssysteme
Algorithmen und Programmierung – EinführungWillkommen
Willkommen!I zur der ersten Vorlesung des Kurses „Algorithmen
und Programmierung“
Matthias Jens Marcel Martin JuliaWerner Pönisch Richter Richter
Scharsich
I Wer nicht an dieser Veranstaltung teilnehmen will, sollte
jetzt dieseVideositzung verlassen.
WS 2020/21 · M. Werner I – 2 von 39
osg.informatik.tu-chemnitz.de
Algorithmen und Programmierung – EinführungWillkommen
I Kurs „Algorithmen und Programmierung“ ist (für die meisten
Studiengänge) Teil des Moduls „Algorithmenund Datenstrukturen“I
Mittelfristig wird „Algorithmen und Programmierung“ eigenes Modul
werden
I Für viele Studiengänge ist „Algorithmen und Programmierung“
eine (wenn nicht die) Kernveranstaltung desersten Semesters
I Heute: Informationen und Hinweise zum „Umgang“ mit dem
Kurs
Hinweis
Sie brauchen jetzt nichts mitschreiben - Sie können diese
Folien(wie auch andere Informationen) im Web finden:I
https://bildungsportal.sachsen.de/opal/auth/RepositoryEntry/26065076228/
CourseNode/83139228332295
I oder kürzer: https://mytuc.org/dzqc
WS 2020/21 · M. Werner I – 3 von 39
osg.informatik.tu-chemnitz.de
Algorithmen und Programmierung – Einführung1.1 Worum geht
es?
1.1 Worum geht es?
I Diese Lehrveranstaltung berührt zwei große Gebiete1
Algorithmen &Programmierung
Algorithmen Programmierung
1Wie überraschend!WS 2020/21 · M. Werner I – 4 von 39
osg.informatik.tu-chemnitz.de
osg.informatik.tu-chemnitz.dehttps://bildungsportal.sachsen.de/opal/auth/RepositoryEntry/26065076228/CourseNode/83139228332295https://bildungsportal.sachsen.de/opal/auth/RepositoryEntry/26065076228/CourseNode/83139228332295https://mytuc.org/dzqcosg.informatik.tu-chemnitz.deosg.informatik.tu-chemnitz.de
-
Algorithmen und Programmierung – Einführung1.1 Worum geht
es?
Algorithmen vs. Programmierung
I Der Entwurf von Algorithmen ist vollständigunabhängig von
Computern und verlangt dasVerstehen von Problemen,
Abstraktionsvermögen,Mathematikkenntnisse, sowie Kreativität
I Programmierung ist (in der praktischenUmsetzung) an Computer
gebunden undverlangt das (abstrakte) Verständnis derVorgänge im zu
programmierenden Computer,Kenntnisse der Syntax und Semantik2
vonProgrammiersprachen, sowie Beherrschung
derEntwicklungstools.
1 data Tree a = Empty | Node a (Tree a) (Tree a) deriving
(Show)23 traverseDF :: Tree a -> [a]4 traverseDF Empty = []5
traverseDF (Node a l r) = a : (traverseDF l) ++ (traverseDF r)
2Diese Begriffe werden wir später noch genauer untersuchen.WS
2020/21 · M. Werner I – 5 von 39 osg.informatik.tu-chemnitz.de
Algorithmen und Programmierung – Einführung1.1 Worum geht
es?
Algorithmen vs. Programmierung (Forts.)
Bitte seien Sie sich stets bewusst, dass Algorithmieren und
Programmieren zwei zwar (in diesem Kurs) engverknüpfte, aber
unterschiedliche Dinge sind!
I Wenn Sie in diesem Kurs erfolgreich sein wollen, müssen Sie
die Fähigkeiten entwickeln. . .I beide Bereiche auseinander zu
halten und zwischen beiden Bereichen
gedanklich „umzuschalten“ ád.h. jedes Problem in seinem Bereich
lösen!I beide Bereiche miteinander zu verknüpfen ád.h.
Abstraktionsebenen zu wechseln und
die Auswirkungen auf die andere Ebene zu berücksichtigen
First, solve the problem. Then, write the code. -- JOHN VON
NEUMANN
WS 2020/21 · M. Werner I – 6 von 39
osg.informatik.tu-chemnitz.de
Algorithmen und Programmierung – Einführung1.1 Worum geht
es?
Algorithmen vs. Programmierung (Forts.)
Bitte seien Sie sich stets bewusst, dass Algorithmieren und
Programmieren zwei zwar (in diesem Kurs) engverknüpfte, aber
unterschiedliche Dinge sind!
I Wenn Sie in diesem Kurs erfolgreich sein wollen, müssen Sie
die Fähigkeiten entwickeln. . .I beide Bereiche auseinander zu
halten und zwischen beiden Bereichen
gedanklich „umzuschalten“ ád.h. jedes Problem in seinem Bereich
lösen!I beide Bereiche miteinander zu verknüpfen ád.h.
Abstraktionsebenen zu wechseln und
die Auswirkungen auf die andere Ebene zu berücksichtigen
First, solve the problem. Then, write the code. -- JOHN VON
NEUMANN
WS 2020/21 · M. Werner I – 6 von 39
osg.informatik.tu-chemnitz.de
Algorithmen und Programmierung – Einführung1.1 Worum geht
es?
Algorithmen vs. Programmierung (Forts.)
Bitte seien Sie sich stets bewusst, dass Algorithmieren und
Programmieren zwei zwar (in diesem Kurs) engverknüpfte, aber
unterschiedliche Dinge sind!
I Wenn Sie in diesem Kurs erfolgreich sein wollen, müssen Sie
die Fähigkeiten entwickeln. . .I beide Bereiche auseinander zu
halten und zwischen beiden Bereichen
gedanklich „umzuschalten“ ád.h. jedes Problem in seinem Bereich
lösen!I beide Bereiche miteinander zu verknüpfen ád.h.
Abstraktionsebenen zu wechseln und
die Auswirkungen auf die andere Ebene zu berücksichtigen
First, solve the problem. Then, write the code. -- JOHN VON
NEUMANN
WS 2020/21 · M. Werner I – 6 von 39
osg.informatik.tu-chemnitz.de
osg.informatik.tu-chemnitz.deosg.informatik.tu-chemnitz.deosg.informatik.tu-chemnitz.deosg.informatik.tu-chemnitz.de
-
Algorithmen und Programmierung – Einführung1.1 Worum geht
es?
Algorithmen vs. Programmierung (Forts.)
Bitte seien Sie sich stets bewusst, dass Algorithmieren und
Programmieren zwei zwar (in diesem Kurs) engverknüpfte, aber
unterschiedliche Dinge sind!
I Wenn Sie in diesem Kurs erfolgreich sein wollen, müssen Sie
die Fähigkeiten entwickeln. . .I beide Bereiche auseinander zu
halten und zwischen beiden Bereichen
gedanklich „umzuschalten“ ád.h. jedes Problem in seinem Bereich
lösen!I beide Bereiche miteinander zu verknüpfen ád.h.
Abstraktionsebenen zu wechseln und
die Auswirkungen auf die andere Ebene zu berücksichtigen
First, solve the problem. Then, write the code. -- JOHN VON
NEUMANN
WS 2020/21 · M. Werner I – 6 von 39
osg.informatik.tu-chemnitz.de
Algorithmen und Programmierung – Einführung1.2 Ziele,
Herausforderungen und Vorgehen
1.2 Ziele, Herausforderungen und Vorgehen1.2.1 ZieleI Nach
erfolgreichem Absolvieren dieser Lehrveranstaltung sollten
Sie...
... in Abstraktionen und Algorithmen denken können;
... einige grundlegende Algorithmen kennen und verstehen;
... grundsätzliche Ansätze für algorithmische Lösungen kennen
und anwenden können;
... die imperative Programmiersprache C grundsätzlich (und ein
bisschen Python) beherrschen;
... Algorithmen entwickeln und programmieren können;
... Algorithmen und Programme bewerten können;
... mit den wichtigsten Entwicklungswerkzeugen (Editor,
Compiler, Linker, Debugger) umgehen können;
... kleinere Probleme mit Hilfe von C lösen können;
I Zusätzlich sollten Sie natürlich jede Menge mehr oder weniger
nützliches Wissen angesammelt undanwendungsbereit parat haben.
WS 2020/21 · M. Werner I – 7 von 39
osg.informatik.tu-chemnitz.de
Algorithmen und Programmierung – Einführung1.2 Ziele,
Herausforderungen und Vorgehen
Hinweis
I In diesem Kurs sollen Sie theoretische Kenntnisse sowie
technische und praktische Fähigkeiten erwerben
Diese können Sie aus den Vorlesungenund Übungen mitnehmen(wenn
Sie ein gutes Gedächtnis habenund gut aufpassen)
Diese nicht!
I Vorlesungen und Übungen können Sie lediglich unterstützen á
der wichtigere Teil erfolgt im Selbststudium
Merke:Programmieren kann man nur durch Programmieren lernen!
(Mit leichten Abstrichen gilt dies analog beim
Algorithmieren)
WS 2020/21 · M. Werner I – 8 von 39
osg.informatik.tu-chemnitz.de
Algorithmen und Programmierung – Einführung1.2 Ziele,
Herausforderungen und Vorgehen
1.2.2 Herausforderungen
I Algorithmen und Programme zu entwickeln machtSpaß!
I Es sind aber (gerade am Anfang) ein paar Klippenzu umschiffen,
um Frustration zu vermeiden
I Daher wollen wir hier die Ziele und Schwierigkeitenetwas
genauer diskutieren. . .
WS 2020/21 · M. Werner I – 9 von 39
osg.informatik.tu-chemnitz.de
osg.informatik.tu-chemnitz.deosg.informatik.tu-chemnitz.deosg.informatik.tu-chemnitz.deosg.informatik.tu-chemnitz.de
-
Algorithmen und Programmierung – Einführung1.2 Ziele,
Herausforderungen und Vorgehen
Klippen
I Einige (eigentlich sehr positive) Eigenschaften könnenunter
Umständen Ihren Erfolg in diesem Kurs gefährden.
I Sich dieser Gefahren bewusst zu werden kann
helfen,entsprechende Fehler zu vermeiden
I Prüfen Sie sich selbst und treffen Sie ggf.Vorkehrungen, damit
Sie nicht an diesen Klippenscheitern!
WS 2020/21 · M. Werner I – 10 von 39
osg.informatik.tu-chemnitz.de
Algorithmen und Programmierung – Einführung1.2 Ziele,
Herausforderungen und Vorgehen
Klippen (Forts.)
I Sie beherrschen bereits eine andere Programmiersprache.I
Unterschiedliche Programmiersprachen nutzen unterschiedliche
Konzepte, z.T. haben diese Konzepte aber sogar den gleichen
Namen.
I In C muss man sich um einige Dinge (z.B.
Speicherverwaltung)kümmern, die in anderen Sprachen versteckt
sind
I Achten Sie auf die Unterschiede!
A language that doesn’t affect the way you think about
programming is not worth knowing. -- ALAN J. PERLIS
The most misleading assumptions are the ones you don’t even know
you’re making. -- DOUGLAS N. ADAMS
WS 2020/21 · M. Werner I – 11 von 39
osg.informatik.tu-chemnitz.de
Algorithmen und Programmierung – Einführung1.2 Ziele,
Herausforderungen und Vorgehen
Klippen (Forts.)
I Sie beherrschen bereits C und alles ist Ihnen zu einfach.I
Manchmal ist es tatsächlich so – in diesem Fall: Herzlichen
Glückwunsch á suchen Sie sich schwierigere Herausforderungen
I Häufig aber verpassen Sie neue Aspekte (z.B. beim
Algorithmieren), weilIhnen alles so bekannt vorkommt. Die Lernkurve
an einer Universität istin der Regel steiler als z.B. in der
Schule.
I Verpassen Sie nicht den Anschluss!
If you think it’s simple, then you have misunderstood the
problem. -- BJARNE STROUSTRUP
If you have the right attitude, interesting problems will find
you. -- ERIC S. RAYMOND
WS 2020/21 · M. Werner I – 11 von 39
osg.informatik.tu-chemnitz.de
Algorithmen und Programmierung – Einführung1.2 Ziele,
Herausforderungen und Vorgehen
Klippen (Forts.)
I Sie haben eine rasche Auffassungsgabe und sind es (aus der
Schule)gewohnt, alles sofort (d.h. direkt im Unterricht) zu
lernen.I Zum Programmieren und Algorithmieren gehört auch
praktische
Erfahrung. Diese kann nicht durch Auswendiglernen erworben
werden.
I Erwerben Sie Praxiserfahrungen!
The only way to learn a new programming language is by writing
programs in it. -- DENNIS RITCHIE
A computer is like a violin. You can imagine a novice trying
first a phonograph and then a violin. The latter, he says,sounds
terrible. That is the argument we have heard from our humanists and
most of our computer scientists.Computer programs are good, they
say, for particular purposes, but they aren’t flexible. Neither is
a violin, or atypewriter, until you learn how to use it. -- MARVIN
MINSKY
WS 2020/21 · M. Werner I – 11 von 39
osg.informatik.tu-chemnitz.de
osg.informatik.tu-chemnitz.deosg.informatik.tu-chemnitz.deosg.informatik.tu-chemnitz.deosg.informatik.tu-chemnitz.de
-
Algorithmen und Programmierung – Einführung1.2 Ziele,
Herausforderungen und Vorgehen
Klippen (Forts.)
I Sie sind es gewohnt, an Dinge immer ganz konkret
heranzugehen.I Sie versuchen Abstraktionen zu vermeiden.I Durch die
enge Verknüpfung von abstrakten und konkreten Konzepten
führt eine solche Vermeidung zu einer schnellen Frustration auch
(undgerade) bei konkreten Arbeiten.
I Überwinden Sie Ihre Abscheu: Abstraktionen sind Ihre
Freunde!
Whatever the chosen language, the essence of programming is
abstraction. -- NIKLAUS WIRTH
The effective exploitation of his powers of abstraction must be
regarded as one of the most vital activities of acompetent
programmer. -- EDSGER W. DIJKSTRA
WS 2020/21 · M. Werner I – 11 von 39
osg.informatik.tu-chemnitz.de
Algorithmen und Programmierung – Einführung1.2 Ziele,
Herausforderungen und Vorgehen
Klippen (Forts.)
I Sie sind (z.B. aus einem früheren Studium) zwar an abstraktes
Denken,aber nicht an formales Denken gewöhnt.I Unkonkrete
Abstraktionen können Sie schnell in die Irre führen.
I Letztendlich machen Computer genau das, was Sie ihnen sagen,
nichtdas, was Sie meinen.
I Trainieren Sie präzises und formales Denken!
The required techniques of effective reasoning are pretty
formal, but as long as programming is done by people thatdon’t
master them, the software crisis will remain [. . . ]. -- EDSGER W.
DIJKSTRA
When someone says „I want a programming language in which I need
only say what I wish done,“ give him a lollipop.-- ALAN J.
PERLIS
WS 2020/21 · M. Werner I – 11 von 39
osg.informatik.tu-chemnitz.de
Algorithmen und Programmierung – Einführung1.2 Ziele,
Herausforderungen und Vorgehen
Klippen (Forts.)
I Sie sind es gewohnt, Dinge schnell in großen Zusammenhängen
zuverstehen.I Mitunter werden dabei die präzisen Details
vernachlässigt, diese sind
wegen des Zusammenspiels der verschieden Ebenen aber wichtig
I Lernen Sie, auf die Details zu achten!
Um die Dinge ganz zu kennen, muss man um ihre Einzelheiten
wissen. -- FRANÇOIS DE LA ROCHEFOUCAULD
The psychological profiling [of a programmer] is mostly the
ability to shift levels of abstraction, from low level to
highlevel. To see something in the small and to see something in
the large. -- DONALD KNUTH
WS 2020/21 · M. Werner I – 11 von 39
osg.informatik.tu-chemnitz.de
Algorithmen und Programmierung – Einführung1.2 Ziele,
Herausforderungen und Vorgehen
Klippen (Forts.)
I Sie sind es gewohnt, stets das volle Lehrangebot
auszuschöpfen.I Jede(r) hat einen eigenen Lernstil, daher stellen
wir Ihnen eine Vielzahl
von Möglichkeiten zur Verfügung3, die Sie nutzen können.
I Es ist Ihre Aufgabe, sich das für Sie Passende und
Wirksameherauszusuchen – alles zu nutzen, könnte den einen oder die
andereüberfordern.
Nimm an, was nützlich ist. Lass weg, was unnütz ist. Und füge
das hinzu, was dein Eigenes ist. -- BRUCE LEE
Lebenskunst ist die Kunst des richtigen Weglassens. -- COCO
CHANEL
3mehr dazu später. . .WS 2020/21 · M. Werner I – 11 von 39
osg.informatik.tu-chemnitz.de
osg.informatik.tu-chemnitz.deosg.informatik.tu-chemnitz.deosg.informatik.tu-chemnitz.deosg.informatik.tu-chemnitz.de
-
Algorithmen und Programmierung – Einführung1.2 Ziele,
Herausforderungen und Vorgehen
Klippen (Forts.)
Tipp
Wenn Sie entdecken, dass Sie auf diese Klippen zusteuern oder
mit anderenSchwierigkeiten konfrontiert sind, agieren Sie sofort:I
Kommen Sie in die Sprechstunde der LehrendenI Fragen Sie
„dienstältere“ StudierendeI Gehen Sie zum FachschaftsratI
Überprüfen Sie Ihren Lernstil und ändern ihn gegebenenfalls
WS 2020/21 · M. Werner I – 12 von 39
osg.informatik.tu-chemnitz.de
Algorithmen und Programmierung – Einführung1.2 Ziele,
Herausforderungen und Vorgehen
HinweisDie Lehrenden sind dazu da, Ihnen beim Lernen zu
helfen4.
Wir sind auch nur Menschen, können daher auch Fehler machen.
Sprechen Sie uns an, wenn Sie finden, dassetwas falsch läuft.Wir
können Ihnen nicht versprechen, das wir es beheben werden, aber
ohne Ihr Feedback haben wir nicht dieChance, es ggf. zu
versuchen.
4. . . können es Ihnen aber nicht abnehmen.WS 2020/21 · M.
Werner I – 13 von 39 osg.informatik.tu-chemnitz.de
Algorithmen und Programmierung – Einführung1.2 Ziele,
Herausforderungen und Vorgehen
1.2.3 VorgehenI In diesem Kurs werden (u.a.) zwei didaktische
Prinzipien genutzt:
I Algorithmische und Programmierkonzeptewerden eng verzahnt
behandelt
+ Schulung des Wechsels derAbstraktionsebenen
+ besseres Verstehen– schlecht zum Nachschlagen– ungünstig beim
Auswendiglernen
I Einige Gebiete werden wiederholt erörtert undvertieft
+ “Wiederholung ist die Mutter derWeisheit”
+ besseres Verstehen– schlecht zum Nachschlagen– “Lying for
kids” ist manchmalnotwendig
I Zum Nachschlagen nutzen Sie bitte Literatur eigener Wahl (á
Literaturliste)
WS 2020/21 · M. Werner I – 14 von 39
osg.informatik.tu-chemnitz.de
Algorithmen und Programmierung – Einführung1.2 Ziele,
Herausforderungen und Vorgehen
1.2.3 Vorgehen (Forts.)I Nach allgemeiner Erfahrung sind die
Konzepte, die in diesem Kurs die größten Schwierigkeiten
bereiten
I Rekursion im AlgorithmenentwurfI Zeiger (Pointer) beim
Programmieren.
[The] ability to understand pointers and recursion is directly
correlated with the ability to be a great programmer.-- JOEL
SPOLSKY
I Versuchen Sie, diese Konzepte so früh wie möglich zu verstehen
und lernen Sie, sicher damit umzugehenI Beide Konzepte sind im
Grunde sehr einfach, die Schwierigkeit besteht eher in der nicht
den
Alltagserfahrungen entsprechenden5 DenkweiseI Um Sie darin zu
unterstützen, werden diese Konzepte recht früh im Kurs eingeführt
und dann
wiederholt angewendet
5. . . aber informatik-typischenWS 2020/21 · M. Werner I – 15
von 39 osg.informatik.tu-chemnitz.de
osg.informatik.tu-chemnitz.deosg.informatik.tu-chemnitz.deosg.informatik.tu-chemnitz.deosg.informatik.tu-chemnitz.de
-
Algorithmen und Programmierung – Einführung1.3
(Telepräsenz-)Veranstaltungen
1.3 (Telepräsenz-)VeranstaltungenI Laut der Modulbeschreibung in
Ihren Studienordnungen besteht die Lehrveranstaltung aus:
I VorlesungI Übungen
I Darüber hinaus wird noch eine Zusatzveranstaltungen angeboten
und Sie sollten Selbststudium betreiben(später mehr. . . )
HinweisFür künftige Wirtschaftsinformatiker wird die Teilnahme
am Programmierpraktikum (aus Modul BM-WINF) undan Einführung in die
Funktionsweise von Computersystemen6 (aus Modul VM-INF) parallel
zur Vorlesung wirdempfohlen.
Letztere Veranstaltung sollten auch Studierende der „Informatik
für Geistes- und Sozialwissenschaftler“ bereitsim ersten Semester
besuchen.
6andere Bezeichnung: „Grundlagen der Anwendungsunterstützung“WS
2020/21 · M. Werner I – 16 von 39 osg.informatik.tu-chemnitz.de
Algorithmen und Programmierung – Einführung1.3
(Telepräsenz-)Veranstaltungen
Voraussetzungen für Teilnahme
I Keinerlei formale Voraussetzungen (außer Studienzulassung
)
I Individuelle Voraussetzungen:I AbstraktionsvermögenI
Abiturstoff7, insbesondere anwendungsbereite MathematikI Logisches
DenkenI Bereitschaft, am Rechner „herumzuspielen“
I Keine Voraussetzung (schadet aber auch
nicht):Programmiererfahrungen / Kenntnis einer
Programmiersprache
7Es wird vom sächsischen Gymnasiallehrplan ausgegangenWS 2020/21
· M. Werner I – 17 von 39 osg.informatik.tu-chemnitz.de
Algorithmen und Programmierung – Einführung1.3
(Telepräsenz-)Veranstaltungen
VorlesungI Die Vorlesung findet (Covid-19-bedingt) als
Screencast über Zoom statt
I Dozent: Prof. Matthias WernerI
[email protected] Professur
„Betriebssysteme“I Homepage: osg.informatik.tu-chemnitz.de
I Zeiten:1. Mittwoch, 7.30 Uhr2. Freitag, 11.30 Uhr
I Zugangsdaten über Opal
Warum eigentlich „Zoom“?Das ist doch total unsicher!
I Zoom hatte in der Tat eine Anzahl von Sicherheitsproblemen.I
Die (bekannten) Sicherheitslücken sind mittlerweile behoben.I
Datenschutz: Die TU hat Lizenzen erworben á Zoom ist damit in
gewissem Umfang rechtlich gebunden.8
I Videomitschnitte können aus Datenschutzgründen (vorerst) nicht
zur Verfügung gestellt werden8Vgl.:
https://unterrichten.digital/2020/05/02/zoom-datenschutz-schule-unterricht
WS 2020/21 · M. Werner I – 18 von 39
osg.informatik.tu-chemnitz.de
Algorithmen und Programmierung – Einführung1.3
(Telepräsenz-)Veranstaltungen
Vorlesung (Forts.)
I InhaltI Konzeptionelle Einführungen in den jeweiligen StoffI
Z.T. Hands-on ProgrammierungI Feedback durch Schnellquiz
I Trotz Corona soll die Veranstaltung möglichst interaktiv
ablaufenI Studierende sollen aktiv einbezogen werden, daher sollte
sich jede(r) mit Mikrofon
(oder zur Not mit Telefon) zuschalten, möglichst auch mit
KameraI Fragen durch „Handheben“ oder Stichwort im Chat á nach
Aufforderung sprechenI Wechsel zu anderen Webanwendungen (z.B.
Classroom Feedback System á
http://pingo.upb.de/770881) während der Vorlesung
WS 2020/21 · M. Werner I – 19 von 39
osg.informatik.tu-chemnitz.de
osg.informatik.tu-chemnitz.deosg.informatik.tu-chemnitz.dematthias.werner@informatik.tu-chemnitz.deosg.informatik.tu-chemnitz.de
https://unterrichten.digital/2020/05/02/zoom-datenschutz-schule-unterrichtosg.informatik.tu-chemnitz.dehttp://pingo.upb.de/770881osg.informatik.tu-chemnitz.de
-
Algorithmen und Programmierung – Einführung1.3
(Telepräsenz-)Veranstaltungen
Vorlesung (Forts.)
Hand heben
Chat
(De-)AktivierungMikrofon/Kamera
WS 2020/21 · M. Werner I – 20 von 39
osg.informatik.tu-chemnitz.de
Algorithmen und Programmierung – Einführung1.3
(Telepräsenz-)Veranstaltungen
Übungen
I Übungen finden über BigBlueButton statt
I Übungsgruppen, Zeiten & Übungsleiter/in:1. Montag, 15:30
Uhr, Marcel Richter2. Dienstag, 7.30 Uhr, Jens Pönisch á Dieser
Termin ist vorrangig für Bachelor „Wirtschaftsinformatik“3.
Dienstag, 11:30 Uhr, Julia Scharsich4. Donnerstag, 9.15 Uhr, Martin
Richter5. Donnerstag, 15:30 Uhr, Marcel Richter
I Bitte über OPAL für eine Übungsgruppe anmeldenI Über die
Anmeldung wird der Zugang zur BigBlueButton-Session mitgeteilt
WS 2020/21 · M. Werner I – 21 von 39
osg.informatik.tu-chemnitz.de
Algorithmen und Programmierung – Einführung1.3
(Telepräsenz-)Veranstaltungen
Übungen (Forts.)
I Inhalt:I Klärung von Fragen zur VorlesungI Gemeinsames
Bearbeiten von BeispielaufgabenI Diskussion von Lösungswegen
I Übungen sind (wie die Vorlesung) ein Angebot.I Sie setzen
Vorbereitung und Mitarbeit der Teilnehmer/-innen voraus.I Bei
Mangel an Interesse/Vorbereitung spielt der Übungsleiter nicht
Alleinunterhalter, sondern beendet
die Übung.
I Die Übungen beginnen morgen (15.10.)á elementarer Umgang mit
Shell, Auffrischung Mathematik/Physik/Technik
WS 2020/21 · M. Werner I – 22 von 39
osg.informatik.tu-chemnitz.de
Algorithmen und Programmierung – Einführung1.4 Selbststudium
1.4 Selbststudium
HinweisEntsprechend den Vorgaben der Kultusministerkonferenz
wird von Studierenden erwartet, dass proPräsenzstunde an der
Universität zusätzlich die doppelte Stundenzahl Selbststudium
betrieben wird.
I Für „Algorithmen und Programmierung“ heißt dies, dass von
Ihnen pro Woche im Mittel ca. 10 StundenSelbststudium erwartet
wird.9I Das sind Normwerte, Ihr individueller Bedarf kann
variieren
(nach unten oder oben )
9Umgekehrt bedeutet dies, dass Sie sich in der Regel pro
Semester nicht mehr als etwa 20 SWS (ca. 30 LP) „zumuten“ solltenWS
2020/21 · M. Werner I – 23 von 39 osg.informatik.tu-chemnitz.de
osg.informatik.tu-chemnitz.deosg.informatik.tu-chemnitz.deosg.informatik.tu-chemnitz.deosg.informatik.tu-chemnitz.de
-
Algorithmen und Programmierung – Einführung1.4 Selbststudium
Selbststudium (Forts.)
I Insbesondere sollten Sie Ihre Programmierfähigkeiten zu großen
Teilen im Selbststudium trainieren
Programmieren kann man letztendlich nur durch Programmieren
lernen – Probieren Sie Ihre Erkenntnisse so oftwie möglich direkt
am Computer aus!I Sie können dafür die Computer-Pools der Fakultät
(FRIZ) und des Universitäts-Rechenzentrums nutzen.
I Für die Nutzung der Pools und viele andere Dienste brauchen
Sie einen Uni-AccountI Falls Sie diesen noch nicht haben, sollten
Sie ihn schnellstmöglichst beantragen
á https://www.tu-chemnitz.de/urz/nutzerkonto.html
WS 2020/21 · M. Werner I – 24 von 39
osg.informatik.tu-chemnitz.de
Algorithmen und Programmierung – Einführung1.4 Selbststudium
Materialien
Auf Opal finden Sie . . .I die Vorlesungsfolien als PDF,
4-auf-1
I Ich werde mich bemühen, die Folien stets vor der Vorlesung ins
Netz zu stellen, um eine Nutzung in derVorlesung zu ermöglichen
I ein VorlesungsskriptI Enthält im Wesentlichen die Folien, aber
mit gelegentlichen Erweiterungen/Anmerkungen und
umfangreichem AnhangI Wird im Laufe des Semesters aktualisiert á
bitte möglichst nicht ausdrucken, sondern
Tablet/E-Reader/... nutzen
WS 2020/21 · M. Werner I – 25 von 39
osg.informatik.tu-chemnitz.de
Algorithmen und Programmierung – Einführung1.4 Selbststudium
GeneralkonsultationUm Sie in Ihren Selbststudium zu
unterstützen, bieten wir Ihnen eine Reihe außercurricularer
Angebote an
I Zusätzlich Frage-Antwort-Stunde (Generalkonsultation)I Im
Vorlesungsverzeichnis etwas inkorrekt als „Tutorium“ bezeichnet
I Sie haben hier die Möglichkeit, vertiefende Nachfragen zu
stellen, auch außerhalb des laufenden StoffesI Bitte möglichst
Themen bis Donnerstagabend per Mail an Leiter senden
I Leiter: Martin RichterI Zeit & Ort: Freitag, 13:45 - 15:15
Uhr (nach der Freitagsvorlesung), Raum 1/201
I Als Präsenzveranstaltung wegen Covid-19 mit beschränkter
Teilnehmerzahl (36)I Reservierung wöchentlich über OPAL á Teilnahme
ist sonst nicht garantiert
WS 2020/21 · M. Werner I – 26 von 39
osg.informatik.tu-chemnitz.de
Algorithmen und Programmierung – Einführung1.4 Selbststudium
TrainingsaufgabenI Da sie zum selbstständigen Erlernen des
Programmierens Feedback benötigen, stellen wir Ihnen zu Ihrer
Selbstkontrolle Trainingsaufgaben zur VerfügungI Bearbeitung ist
fakultativI Teilautomatische Bewertung über das Abgabesystem
OpenSubmithttps://osg.informatik.tu-chemnitz.de/submit
I Besprechung bei Bedarf in der ÜbungI Auch wenn das Lösen
dieser Aufgaben nicht erzwungen ist,
wird jede(r/m) das selbstständige Lösen zur besserenRezeption
des Stoffes dringend empfohlen
Typische Korrelation zwischen Bearbeitung derÜbungsaufgaben und
Prüfungsleistung
WS 2020/21 · M. Werner I – 27 von 39
osg.informatik.tu-chemnitz.de
https://www.tu-chemnitz.de/urz/nutzerkonto.htmlosg.informatik.tu-chemnitz.deosg.informatik.tu-chemnitz.deosg.informatik.tu-chemnitz.dehttps://osg.informatik.tu-chemnitz.de/submitosg.informatik.tu-chemnitz.de
-
Algorithmen und Programmierung – Einführung1.4 Selbststudium
Knobeln & DenksportI Sowohl beim Algorithmieren als auch
beim Programmieren ist
I analytischesI kreativesI präzises
Denken hilfreich
I Daher werden von Zeit zu Zeit (i.d.R. am Kapitelende) Knobel-
und Denksportaufgaben gestellt, die mit demeigentlichen Stoff in
der Regel nichts zu tun haben
I Niemand ist verpflichtet, diese Aufgaben zu lösen (oder sie
sich auch nur anzusehen), sie werden auch nichtin den LV
diskutiert
I Die Hoffnung ist, dass die Beschäftigung mit diesen Aufgaben
die Denkfähigkeiten stärkt, die jede(r)Programmierer(in) meiner
Meinung nach braucht, wenn sie oder er mehr als ein „Code-Monkey“10
sein will.
10https://www.youtube.com/watch?v=qYodWEKCuGg
WS 2020/21 · M. Werner I – 28 von 39
osg.informatik.tu-chemnitz.de
Algorithmen und Programmierung – Einführung1.4 Selbststudium
Lernraum Informatik
I Kein Angebot der Professur, kann aber für „Algorithmen und
Programmierung“ trotzdem sehr hilfreich sein:
I (Erfahrenere) Studierende helfen neuen Studierenden, mit den
Schwierigkeiten der Programmerstellungfertig zu werdenI Betreutes
ProgrammierenI Studentische SichtI Nicht curriculumgebunden
I
https://www.tu-chemnitz.de/qpl/tu4u/studierende/lernraum-informatik
WS 2020/21 · M. Werner I – 29 von 39
osg.informatik.tu-chemnitz.de
Algorithmen und Programmierung – Einführung1.4 Selbststudium
Kommunikation
I Für die Kommunikation der Studierenden untereinander stehen
auf Opal zwei Foren zur Verfügung:I Eines für organisatorische und
technische BelangeI Eines für fachliche Probleme
I Bitte beachten Sie die Netiquette!I Die Lehrenden lesen mit
und antworten/moderieren ggf.
I Außerdem gibt es ein (derzeit noch nicht sehr umfangreiches)
Wiki mit häufig gestellten Fragen (FAQ)
WS 2020/21 · M. Werner I – 30 von 39
osg.informatik.tu-chemnitz.de
Algorithmen und Programmierung – Einführung1.4 Selbststudium
Literaturempfehlungen
I Falls Ihr Lernstil eher literaturorientiert ist, nutzen Sie
die BibliothekI Während Covid-19: nur online oder Direkt-/
Fernleihe
I Diese Veranstaltung folgt keinem einzelnen Lehrbuch11; im
Skript finden Sie eine kommentierte Liste mitLiteratur, die ggf.
nützlich sein kannI Anmerkung: Die Kommentare sind z.T.
subjektiv
I Jede(r) kann (und sollte) sich die Literatur suchen, die
ihr/ihm liegt
I Wenn jemand der Überzeugung ist, ein besonders gutes Buch
gefunden zu haben, bin ich für Empfehlungendankbar (wenn möglich
mit Angabe der Gründe, warum dieses Buch gut ist)
11falls Sie das Skript nicht als ein Lehrbuch auffassenWS
2020/21 · M. Werner I – 31 von 39 osg.informatik.tu-chemnitz.de
https://www.youtube.com/watch?v=qYodWEKCuGgosg.informatik.tu-chemnitz.dehttps://www.tu-chemnitz.de/qpl/tu4u/studierende/lernraum-informatikosg.informatik.tu-chemnitz.deosg.informatik.tu-chemnitz.deosg.informatik.tu-chemnitz.de
-
Algorithmen und Programmierung – Einführung1.5 Prüfung
1.5 PrüfungI „Algorithmen und Programmierung“ ist in folgenden
Studiengängen (z.T. auch fakultativ oder
wahlobligatorisch) enthalten
I Bachelor „Informatik“I Bachelor „Angewandte Informatik“I
Bachelor „Informatik und
Kommunikationswissenschaften“I Bachelor „Automobilinformatik“I
Master „Informatik für Geistes- und
Sozialwissenschaftler“
I Bachelor „MINT“I Bachelor/Diplom „Mathematik“I Bachelor
„Wirtschaftsinformatik“I Bachelor „Finanzmathematik“I Bachelor
„Wirtschaftsmathematik“I Master „Finance“
I In diesen Studiengängen ist eine Anerkennung
(Prüfungsleistung) vorgesehenI Wenn Sie eine andere Studienrichtung
studieren, sprechen Sie bitte mit Ihrem
StudiengangverantwortlichenI Auch im Studium Generale enthalten á
bei Bestehen können Sie entsprechenden Schein erhalten
WS 2020/21 · M. Werner I – 33 von 39
osg.informatik.tu-chemnitz.de
Algorithmen und Programmierung – Einführung1.5 Prüfung
Prüfung (Forts.)
I Es gibt zwei verschiedene Arten des Leistungsnachweises:
I BelegaufgabenI Ca. 5-8 Aufgaben über das
Semester verteilt
I KlausurI Dauer: 120 Minuten in der PrüfungsperiodeI Anmeldung
über das Zentrale Prüfungsamt
I Sie können wählen, welche Art des Leistungsnachweises Sie
ablegen wollen
I Hinweis: Nicht alle Studienordnungen sehendiese Wahl bereits
vor, aber diePrüfungskommissionen haben dieseRegelung vorläufig
beschlossen
Tipp:
Melden Sie sich sicherheitshalber zur Klausur an.
Sie können sich bis eine Woche vor der Klausurohne Angabe von
Gründen wieder abmelden.
WS 2020/21 · M. Werner I – 34 von 39
osg.informatik.tu-chemnitz.de
Algorithmen und Programmierung – Einführung1.5 Prüfung
BelegaufgabenI Die Leistung „Belegaufgaben“ wird als erfolgreich
gewertet, wenn mindestens 50% der möglichen Punkte
erzielt werdenI Insgesamt wird es etwa 50 Punkte (± 3) geben
I Aufgabenstellung und Abgabe über OpenSubmit:
https://osg.informatik.tu-chemnitz.de/submitI Sie können bis zur
Abgabefrist Ihre Einreichung beliebig oft nachbessernI Eine
Einreichung wird nur bewertet, wenn Sie den Eingangstest bei
OpenSubmit bestanden hat
Achtung!I Alle eingereichten Aufgabenlösungen werden einem
Plagiatscheck unterzogen
I Festgestellte Plagiate bei Belegaufgaben werden als
Betrugsversuch gewertet!I Dies gilt für alle Beteiligten.
Bildquellen: Harald Dettenborn / Ralf Roletschek, CC 3.0
Lizenz
WS 2020/21 · M. Werner I – 35 von 39
osg.informatik.tu-chemnitz.de
Algorithmen und Programmierung – Einführung1.5 Prüfung
FeedbackI Wir werden jetzt erstmals das Feedbacksystem nutzenI
Öffnen Sie bitte folgende URL: http://pingo.upb.de/770881
WS 2020/21 · M. Werner I – 36 von 39
osg.informatik.tu-chemnitz.de
osg.informatik.tu-chemnitz.deosg.informatik.tu-chemnitz.dehttps://osg.informatik.tu-chemnitz.de/submitosg.informatik.tu-chemnitz.dehttp://pingo.upb.de/770881osg.informatik.tu-chemnitz.de
-
Algorithmen und Programmierung – Einführung1.6 Knobeln &
Denksport
1.6 Knobeln & Denksport
Aufgabe 1.1
Betrachten Sie die Reihe folgender Zahlen:9 44 32 12 7 42 34 92
35 37 41 8 20 27 83 64 61 28 39 93 29 17 13 14 55 21 66 72 23 73 99
1 2 88 77 3 65 8384 62 5 11 74 68 76 78 67 75 69 70 22 71 24 25
26
(a) Streichen Sie so wenig Zahlen wie möglich, so dass die
verbleibenden Zahlen eine aufsteigende Reihe bilden!(b) Lösen Sie
die Aufgabe erneut, nur soll die Ergebnisreihe diesmal absteigend
sein!(c) Beschreiben Sie, wie man vorgehen muss, um für eine
beliebige Zahlenreihe zum optimalen Ergebnis bei den
beiden vorstehenden Aufgaben zu kommen!
WS 2020/21 · M. Werner I – 37 von 39
osg.informatik.tu-chemnitz.de
Algorithmen und Programmierung – Einführung1.6 Knobeln &
Denksport
Knobeln & Denksport (Forts.)
Aufgabe 1.2
Betrachten Sie die nebenstehende Figur.Finden Sie einen
geschlossenen Weg (d.h. Start = Ende) entlang dergrünen Linien, so
dass jeder rote Punkt genau einmal besucht wird!
Amerkung: Es muss nicht jede grüne Linie genutzt werden.
WS 2020/21 · M. Werner I – 38 von 39
osg.informatik.tu-chemnitz.de
Algorithmen und Programmierung – Einführung1.6 Knobeln &
Denksport
Viel Spaß und Erfolg inAlgorithmen und Programmierung!
WS 2020/21 · M. Werner I – 39 von 39
osg.informatik.tu-chemnitz.de
osg.informatik.tu-chemnitz.deosg.informatik.tu-chemnitz.deosg.informatik.tu-chemnitz.de
WillkommenWorum geht es?Ziele, Herausforderungen und
VorgehenZieleHerausforderungenVorgehen
(Telepräsenz-)VeranstaltungenSelbststudiumPrüfungKnobeln &
Denksport