12
Algorithmen und Programmierung Wintersemester 2020/2021 Algorithmen und Programmierung 1. Kapitel Einführung in die Lehrveranstaltung Prof. Matthias Werner Professur Betriebssysteme Algorithmen und Programmierung – Einführung Willkommen Willkommen! I zur der ersten Vorlesung des Kurses „Algorithmen und Programmierung“ Matthias Jens Marcel Martin Julia Werner Pönisch Richter Richter Scharsich I Wer nicht an dieser Veranstaltung teilnehmen will, sollte jetzt diese Videositzung verlassen. WS 2020/21 · M. Werner I–2 von 39 osg.informatik.tu-chemnitz.de Algorithmen und Programmierung – Einführung Willkommen I Kurs „Algorithmen und Programmierung“ ist (für die meisten Studiengänge) Teil des Moduls „Algorithmen und DatenstrukturenI Mittelfristig wird „Algorithmen und Programmierung“ eigenes Modul werden I Für viele Studiengänge ist „Algorithmen und Programmierung“ eine (wenn nicht die) Kernveranstaltung des ersten 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ührung 1.1 Worum geht es? 1.1 Worum geht es? I Diese Lehrveranstaltung berührt zwei große Gebiete 1 Algorithmen & Programmierung Algorithmen Programmierung 1 Wie überraschend! WS 2020/21 · M. Werner I–4 von 39 osg.informatik.tu-chemnitz.de

- Algorithmen und Programmierung - TU Chemnitz...Programmieren kann man nurdurch Programmieren lernen! (Mit leichten Abstrichen gilt dies analog beim Algorithmieren) WS 2020/21 M

  • Upload
    others

  • View
    5

  • 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