Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
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