1. Einleitung

Sehr geehrte Studierende,

Herzlich Willkommen zur VU Grundlagen des Programmierens 317.530. Wie bereits im Namen verankert, beschäftigt sich die LVA mit der Einführung in das Programmieren. Einige Studierende sind mit diesen Grundlagen teilweise vertraut, für andere ist dieses Thema Neuland. Wir haben versucht einen Mittelweg zu finden und bitten um Verständnis wenn es manchmal “zu langsam” und manchmal “zu schnell” vorangeht.

Programmierung bedeutet das Erstellen von Computerprogrammen mittels einer Programmiersprache.

_images/codeBinary.jpg

... keine Sorge, wir verwenden Python ...

Inhaltlich orientiert sich dieses Skriptum an unterschiedlichen Quellen und wird laufend verbessert. Das Skriptum beinhaltet sehr viele WWW Links, aus diesem Grund gibt es eine elektronische HTML Version des Skriptums.

Hörer früherer Semester sollten beachten dass mit WS 2020 das Skriptum stark überarbeitet und auf Python 3 umgestellt wurde .

In diesem Sinne - Have Fun beim Programmieren lernen - Ihr LVA Team

1.1. Wie meistere ich am besten diese Lehrveranstaltung?

Kurz gesagt, durch Interesse, Beharrlichkeit, regelmäßiges Lernen und üben, üben, üben.

Hat man andauernde Motivationsprobleme, sollte man (gerade im ersten Semester) kritisch hinterfragen warum man sich für dieses Studium und somit für diesen Kurs entschieden hat? Antworten der Art:

  • gehört zum Studium, da muss ich durch ...
  • brauche ich für ...
  • wird von mir erwartet ...
  • besser studieren als arbeiten zu gehen ...

deuten auf ein grundsätzliches Problem hin. Überdenken Sie Ihr Tun (Studium) und verschwenden Sie nicht Ihre Zeit. Suchen Sie sich ein Studium, dass Sie begeistert und Spaß macht nach dem Motto: Carpe Diem - Nütze den Tag!

In anderen Worten, wenn Sie am Kurs teilnehmen:

  • versuchen Sie Ihr Bestes,
  • freuen Sie sich darauf, etwas Neues zu lernen,
  • stehen Sie auf, wenn Sie niederfallen (Rückschläge erleiden),
  • vor allem aber, haben Sie Freude bei dem, was Sie tun!

Warum ist das wichtig? Universitäten unterscheiden sich grundsätzlich von Schulen. Bei Lehrveranstaltungen ...

  • gibt es sehr große oder sehr kleine Gruppen,
  • muss man schnell denken und komplizierten Inhalten folgen,
  • ist oft der Vortrag zu schnell, oder manchmal ist dieser zu langsam,
  • wird viel in kurzer Zeit abverlangt!

Mein Erfolgsrezept beim Studium lautete SMOD:

  • Selbst-Motivation-Organisation-Disziplin

Bei Vorlesungen sollte man für ein gutes Miteinander folgendes beachten:

  • pünktlich kommen - zu spät kommen stört den Unterricht!
  • Mobiltelefone leise stellen - niemals Telefonate beantworten, keine Textnachrichten schreiben, soziale Medien checken, etc!
  • Computer, Tablets, etc für Vortragsunterlagen und zum Mitschreiben verwenden - keine Videos, Spiele, Emails, etc. im Hörsaal!
  • sich auf den Vortrag konzentrieren - nütze die Zeit!
  • nicht untereinander sprechen (tratschen) - störend für andere!
  • bei Fragen entsprechend der Vorgaben agieren (Klopfen, Online agieren, etc)!
  • essen vermeiden - vor allem stark riechende Speisen!

1.2. Administration

Warnung

Aufgrund der derzeitigen COVID19 Situation wurde dieser Teil am 15.11.2020 deutlich modifiziert! Bitte verfolgen Sie stets die TISS News um über alle Änderungen informiert zu bleiben.

1.2.1. Ziele der LVA

Motivation

Warum Programmieren lernen? Im Video Programming – What most schools don’t teach dazu Meinungen einiger IT-Größen!

Bemerkung

Steve Jobs (1955-2011)

Everybody in this country should learn to program a computer... because it teaches you how to think.

Grundkenntnisse des Programmierens sind kein “nice to have” sondern ein “must have” für technische Berufe!

Ziele

In dieser LVA lernen Sie die Grundlagen der Programmierung d.h.

  • Erlernen einer Programmiersprache (hier Python) und
  • verfassen einfacher Computer-Programme.

Zusätzlich wird der Einsatz dieses Wissens hinsichtlich ingenieurswissenschaftlichem Arbeiten vorgestellt.

Bemerkung

  • Durch den Besuch dieser LVA wird man kein Programmierexperte,
  • jedoch sollte man besser verstehen was hinter Computerprogramme steckt,
  • und wofür Programmierung zukünftig in Studium & Arbeit verwendet werden kann!

1.2.2. Voraussetzung für die LVA

Vorausgesetzt werden:

  • ein eigener Computer (Laptop, Desktop-PC oder Tablet mit Tastatur)
  • mit dem Betriebssystem Linux, Windows oder MacOS - Windows Mobile, iOS, Android, etc sind nicht ausreichend!
  • und Minimum 5 GB freien Speicher sowie
  • eine EDV-Allgemeinbildung d.h. die Fähigkeit mit einem Computer im Bereich Bildung umgehen zu können.
  • zur Absolvierung der online Prüfung sind darüber hinaus weitere technische Voraussetzungen zu erfüllen - siehe dazu TUWEL

Tipp

Sollten Sie keinen eigenen Computer haben, ziehen sie ubook oder edustore bei einem PC Kauf in Betracht (für Studierende, gutes Preis-Leistungsverhältnis, 3 Jahre Garantie, ...). Sofern Sie viel am Computer arbeiten, kaufen Sie sich einen entsprechend großen Bildschirm.

Nicht vorausgesetzt werden:

  • grundlegende Programmierkenntnisse, natürlich sind solche von Vorteil!

Zusätzlich zum Computer benötigen Sie:

  • eine darauf laufende Python Distribution inklusive IDE (integrated development environment).

Tipp

Wir empfehlen anaconda von Continuum Analytics (Python Version >3.6 NICHT 2.X!). Dieses Paket gibt es gratis zum Download für alle gängigen Betriebssysteme und enthalten alle notwendigen Softwareprogramme.

1.2.3. Ablauf

  • Grundsätzlich starten wir mit der Vorlesung. Diese läuft über das ganze Semester (siehe Zeitplan).
  • Unmittelbar nach den Vorlesungen finden Übungseinheiten statt.
  • Zusätzlich werden Hausübungen aufgegeben.
  • Am Ende des Semesters gibt es ein Kolloquim sowie ein Ersatzkolloquium im Februar.
  • Die VU wird aufgrund der aktuellen Situation durch COVID19 bis auf Weiteres im Distance-Learning Modus abgehalten. Details hierzu finden Sie in TISS und TUWEL.

WICHTIGE Details:

  • Für die Teilnahme an der Lehrveranstaltung ist es notwendig, dass Sie sich in TISS anmelden. Erst dann bekommen Sie Zugang zu dem entsprechenden Kurs in TUWEL, der E-Learning Plattform der TU Wien.

  • Hausübungen sind bis zu den im Zeitplan angegebenen Terminen selbstständig zu lösen und in TUWEL hochzuladen.

  • Die abgegebenen Hausübungsbeispiele werden bewertet (0 oder 1 Punkt pro Beispiel). Keinen Punkt bekommen Sie unter anderem, wenn die hochgeladene Datei:
    • kein Python-File (.py) ist.
    • keinen Python-Code enthält.
    • nicht lauffähig ist.
    • wesentliche Merkmale des zu lösenden Beispiels nicht enthält.
    • überwiegend identisch mit einer anderen abgegebenen Datei ist –> Schummelverdacht!

Hinweis

Eine positive Bewertung Ihres Beispiels (1 Punkt) bedeutet nicht unbedingt, dass das Beispiel komplett richtig gelöst wurde - vergleichen Sie dazu die Musterlösung in TUWEL!

  • Zur Unterstützung werden in TUWEL Videos zur Verfügung gestellt. In diesen Videos wird die Lösung einiger Übungsbeispiele aus dem Skriptum präsentiert.
  • In den Übungseinheiten werden diese Übungsbeispiele im Sinne eines “Inverted Classroom” diskutiert.
  • Zusätzlich besteht die Möglichkeit, Fragen zu den Übungsbeispielen und Hausübungen mit den Tutoren in deren Sprechstunden zu klären. Die Sprechstundentermine werden in TISS bekannt gegeben.
  • Um zum Kolloquium antreten zu dürfen benötigen Sie zumindest 6 der 12 Hausübungspunkte.
  • Wenn Sie durch die Kolloquien eine positive Note erreicht haben, werden Ihnen alle Punkte, die Sie durch Hausübungen erzielt haben, als Bonuspunkte angerechnet.

Warnung

Sobald Sie mindestens eine Hausübung abgeben, haben Sie eine prüfungsrelevante Aktion gesetzt und bekommen ein Zeugnis!

Tipp

Hausübungen selbstständig machen, Unklarheiten in den Tutorensprechstunden oder Übungen klären und das Programmieren üben, üben, üben - nur so lernt man es. Wer diese Ratschläge befolgt, sollte für die Kolloquien gut vorbereitet sein!

1.2.4. Zeitplanung

Der vorläufige Zeitplan sieht folgendermaßen aus. Änderungen werden via TISS als News E-mails bekanntgegeben:

_images/Planung_GdP_2020WS_v3.png

Vorläufiger Zeitplan (modifiziert am 14.12.2020)

1.2.5. Notenfindung

Kolloquium

Die Noten werden anhand des Kolloquiums am Semesterende ermittelt. Eine Teilnahme ist nur möglich, wenn die erforderlichen Hausübungspunkte erreicht wurden (siehe Ablauf)

Das Kolloquium wird online über TUWEL abgewickelt. Genauere Informationen zur Abwicklung werden zeitgerecht über TUWEL bekanntgegeben.

Ersatzkolloquium

Für jene, die das Kolloquium nicht bestanden haben gibt es ein Ersatzkolloquium. Es gelten die selben Voraussetzungen zur Teilnahme wie für das Kolloquium.

Das Ersatzkolloqum wird ebenfalls online über TUWEL abgewickelt. Genauere Informationen zur Abwicklung werden zeitgerecht über TUWEL bekanntgegeben.

1.2.6. Abhaltung der LVA im Distance-Learning Modus

Die LVA wird dieses aufgrund der aktuellen COVID19 Situation bis auf Weiteres in reinem Distance-Learning abgehalten.

E-Learning Plattform:

  • TUWEL ist die primäre E-Learning Plattform.
  • In TUWEL finden Sie auch sämtliche Streaming Links und ggf. erforderliche Passwörter.
  • Um Zugang zum TUWEL Kurs zu bekommen, müssen Sie sich in TISS anmelden.

Abhaltung der Vorlesung und Übung:

  • Vorlesung und Übung werden über Zoom gestreamt. Den Link zum Livestream entnehmen Sie TUWEL .
  • Interaktion mit den Vortragenden während der Vorlesung/Übung ist über die Software ARSnova möglich.
  • Fragen, die außerhalb der Vorlesungs-/Übungszeit über ARSnova gestellt werden, können nicht berücksichtigt werden.
  • Die “Room-No.” entnehmen sie TUWEL bzw. TISS.

Wichtig

Andere Kommunikationswege als ARSnova sind während des Streams aufgrund der Fairness gegenüber den anderen Teilnehmern NICHT vorgesehen!

Tutoren-Sprechstunden:

  • Die Sprechstundentermine werden in TISS und TUWEL bekannt gegeben.
  • Die Sprechstunden finden ausschließlich über die Webmeeting-Anwendung Zoom statt.
  • Den entsprechenden Link zu den Sprechstunden finden Sie in TUWEL.

1.2.7. Fragen

Wen soll ich wie kontaktieren?

Bei inhaltlichen Fragen:

  • Allgemein - während der LVA über die Kommentarfunktion von ARSnova .
  • Spezifisch - die TutorInnen in den Sprechstunden über Zoom .

Bei organisatorischen Fragen:

  • Allgemein - TISS Forum für Fragen die alle betreffen.
  • Spezifisch - individuellen Anliegen in den Sprechstunden mit den TutorInnen über Zoom klären.

Bei Anliegen, welche nicht in die obigen Kategorien fallen bzw. kurzfristig auftreten, jedoch von entsprechender Bedeutung sind:

  • Per Email an gdp@ilsb.tuwien.ac.at (ein Anliegen, in 2-3 Sätzen). Ausgenommen hiervon sind Reklamationen o. Ä., welche ausschließlich persönlich in den Sprechstunden der TutorInnen vorzubringen sind.

Hinweis

Aufgrund der seit 25.05.2018 anzuwendenden Datenschutz-Grundverordnung werden nur E-Mails bearbeitet, welche von Ihrer offiziellen TU-Wien E-Mail Adresse kommen. Telefonische Auskünfte sind nicht mehr möglich.

Hinweis

Persönliche Emails oder Telefonate werden aufgrund der hohen Hörerzahl NICHT beantwortet.

Hinweis

TutorInnen sind Studierende höherer Semester, die diese VU hervorragend abgeschlossen haben und auch schon darüber hinaus Programmiererfahrung gesammelt haben. Sie werden Ihnen gerne bei programmiertechnischen Problemen in den Sprechstunden helfen.

1.3. Informatik Grundlagen

Bevor wir den Computer verwenden noch einige Grundideen und Begriffe der Informatik bzw. Programmierung.

1.3.1. Programm und Algorithmus

Programme

Im Alltag sind uns Programme geläufig, wie z.B.:

  • das Programm einer Feier,
  • ein Kochrezept,
  • eine HowTo Anleitung, etc.

Diese beschreiben einen Ablauf d.h. was wie zu tun ist.

In der Informatik wird der Begriff enger gefasst und man spricht von der Programmierung.

Programmierung

  • Unter Programmierung versteht man das Schreiben solcher Programme in Form von Quellcode, d.h. Befehlen in einer Textdatei.
  • Das Verfassen von Quellcode erfolgt in einer Programmiersprache (C++, Java, Python, Fortran, ...)
  • Diese Programmiersprachen werden von Softwareprogrammen in Maschinensprache übersetzt, welche ein Computer versteht und ausführen kann.
  • Somit kann man mit Programmierung das Verhalten eines Computers steuern.
Algorithmus

Ein Algorithmus ist eine eindeutige Abfolge von Anweisungen (Befehlen) zur Lösung eines Problems.

Beispiel eines Algorithmus:

ALGORITHMUS mach_was()
   ANFANG mach eine Aufgabenliste
   SOLANGE was zu tun ist
   WENN nicht erledigt
      mach weiter
   SONST
      geh zur nächsten Aufgabe
   WIEDERHOLE
ENDE

Ein Algorithmus kann auch graphisch in Form eines Flussdiagramms dargestellt werden.

_images/algorithmus.png

Algorithmus graphisch mittels Flussdiagramm

Ein Programm besteht im Allgemeinen aus vielen Algorithmen!

1.3.2. Hardware und Software

Ein Computersystem besteht aus Hardware und Software.

Hardware:

Bezeichnet alle Komponenten eines Computers, welche man “angreifen” kann. Zum Beispiel:

  • Arbeitsspeicher, Prozessor, Festplatte, ... = PC
  • Monitor, Maus, Tastatur, Drucker, ...

Die Abbildung “Komponenten eine Computers” zeigt die wesentlichen Bestandteile eines Computers (1 Bildschirm, 2 Motherboard, 3 CPU, 4 RAM, 5 Grafik- und Netzwerkkarte, 6 Netzgerät, 7 DVD, 8 Festplatte, 9 Tastatur, 10 Maus).

_images/ComputerAufbau.png

Komponenten eines Computers

Die Abbildung “Zusammenspiel der Komponenten” zeigt deren Verknüpfung.

_images/vonNeumann.png

Zusammenspiel der Komponenten (Von-Neumann-Architektur)

Software

Bezeichnet die Summe aller Programme eines Computers. Man unterteilt diese in:

  • Betriebssystem und
  • Anwendungsprogramme.
Betriebssystem

Regelt den Zugriff auf Hardware des Computers und verwaltet Daten, die auf dem Rechner gespeichert werden.

Bekannte Betriebssysteme sind:

  • Unix
  • MS Windows
  • Mac OS
Anwendungssoftware

Dient zum Lösen spezifischer Probleme. Typische Vertreter sind:

  • Textverarbeitungsprogramme,
  • Internet-Browser,
  • Bildbearbeitung, ...
Computersystem

Ein Computersystem kann als Schichtmodell gesehen werden.

_images/ComputerSystem.png

Schichtmodell eines Computersystems

1.3.3. Bits und Bytes

Bits und Bytes sind Maßeinheiten für eine Datenmenge.

_images/bit-byte2.jpg

Bit und Byte

Bits
  • Eine Speicherzelle kennt 2 Werte: 0 und 1.
  • Diese Binärziffer bezeichnet man als Bit (binary digit).
Byte
  • 8 Bits werden zu einem Byte zusammengefasst.
  • Dies ist das kleinste adressierbare Element im Computer.
  • Ein Byte kann 256 unterschiedliche Zahlen speichern.
  • 1 GByte = 1000 MBytes = 1 Milliarde Bytes!

Beispiel: Die Binärzahl 10011011 errechnet sich im Dezimalsystem zu:

1*2^7 + 0*2^6 + 0*2^5 + 1*2^4 + 1*2^3 + 0*2^2 + 1*2^1 + 1*2^0 = 155

Zahlendarstellung
  • Character: benötigt 1 Byte (siehe ASCII Tabelle)

  • Integer: 2 Bytes (short), 4 Bytes (long), etc.

  • Gleitkomma (Float): 4 Bytes (single precision), 8 Bytes (double precision), etc.

    _images/32bit_float.png

    32 Bit (4 Byte) Float

    Der Wert berechnet sich daraus wie folgt:

Wert = (-1)^{Vorz.} * 2^{(Exponent-127)} * Mantisse

Bemerkung

  • Wertebereich Integer bei 4 Bytes: -2147483648 bis 2147483647 (2.147x10 9 )
  • Wertebereich Gleitkomma bei 4 Bytes: 3.4x10 -38 bis 3.4x10 38 (Genauigkeit 7-8 Stellen)

1.3.4. Programmiersprachen

Eine Programmiersprache zeichnet sich - wie jede Sprache - durch Syntax und Semantik aus.

Syntax

Legt fest, in welcher Folge Zeichen den Programmtext bilden. Z.B. Python-Syntax zur Definition einer Variablen:

a = 1.843

Nicht erlaubt wäre z.B.:

a 1.843

Bei anderen Programmiersprachen würde dies wie folgt aussehen:

real a = 1.843     # Fortran
float a = 1.843;   # C++, Java

Bemerkung

Python erkennt den Datentyp automatisch und kann diesen dynamisch verändern.

Semantik

Beschreibt die Bedeutung eines Programmtextes

print("Alles Python oder was?")

Dieser Programmtext gibt einen Text am Bildschirm aus. Ein weiteres Beispiel :

if a < 0 :
   a = a*(-1)

Dieser Code macht aus a eine positive Zahl.

Wichtige Programmiersprachen

Die Liste der Programmiersprachen ist lang. Anbei eine Abbildung über die Entwicklung wichtiger Programmiersprachen.

_images/Programmiersprachen.png

Entwicklung wichtiger Programmiersprachen

Python
In dieser LVA lernen wir Python - eine eher junge Sprache. Warum Python?
  • auf allen Plattformen verfügbar
  • einfache Syntax (Code is 2-10x kürzer als C++, Java)
  • leicht lesbar (Wartbarkeit)
  • schnell erlernbar

Dies bestätigen auch internationale Umfragen, siehe Abbildung: Beste, erste Programmiersprache.

_images/ErsteProgrammiersprache.png

Beste, erste Programmiersprache auf lifehacker.com

Aber auch Experten wie Bjarne Stroustrup, der Erfinder von C++, meint dazu im Video zu den 5 wichtigsten Programmiersprachen:

  • C++, Java, Python ... JavaScript
  • ... Experten kennen mehr als nur eine Sprache,
  • kennt man diesen Cluster, kennt man alle anderen!

1.3.5. Interpreter und Compiler

Es gibt 2 unterschiedliche Methoden, wie Programmtext (Quelltext, source code) in Computersprache übersetzt wird, d.h. vom Computer “verstanden” wird.

Compiler

Der Programmtext wird nach Erstellung komplett in Maschinen-Code (executeable) übersetzt (siehe Arbeitsweise eines Compilers) und ausgeführt.

_images/Compiler.png

Arbeitsweise eines Compilers

Vor- und Nachteile:

  • benötigt Compiler (=eigene Anwendungssoftware)
  • läuft nur auf dem Betriebssystem, wo Programm kompiliert wurde
  • i.a. sehr schnell (high performance)
  • Quelltext nach kompilieren nicht einsehbar
  • typische Sprachen: Fortran, C++
Interpreter

Der Programmtext wird Zeile für Zeile an das Betriebssystem geschickt und ausgeführt (siehe Arbeitsweise eines Interpreters).

_images/Interpreter.png

Arbeitsweise eines Interpreters

Vor- und Nachteile:

  • benötigt Interpreter (=eigene Anwendungssoftware)
  • unabhängig vom Betriebssystem
  • schnell implementiert, langsam exekutiert
  • Quelltext einsehbar, schnell änderbar
  • typische Sprachen: JavaScript, Python

1.3.6. Programmierstile

Quellcode kann imperativ (z.B. prozedural) oder objektorientiert geschrieben werden.

Imperativ

Kommt aus dem lateinischen imperare = anordnen d.h. einzelnen Befehle werden sequentiell hintereinander geschrieben mittels:

  • Kontrollstrukturen = Strukturierte Programmierung
  • Überschaubare Unterprogrammen = Prozedurale Programmierung
  • Logisch zusammengefassten Unterprogrammen = Modulare Programmierung

Vor- und Nachteile:

  • für kleine Programme geeignet
  • i.a. sehr schnell, da Compiler den Code gut optimieren kann
  • wird schnell unübersichtlich, schwer wartbar, ...
Objektorientiert

Das Programm wird als System von Objekten dargestellt, die miteinander kommunizieren (siehe Beispiel objektorientierte Programmierung).

_images/zusammenfassung-oop.png

Beispiel objektorientierte Programmierung

Erklärungen:

  • Zunächst definiert man sogenannte Klassen (z.B. Klasse “Artikel”). Ein Programm kann beliebig viele unterschiedliche Klassen haben (Artikel, Auftrag, Kunde, ...).
  • Erzeugt man nun einen bestimmten “Artikel” (z.B. Artikel 1, anders gesagt gibt man diesem spezifische Daten), spricht man von einem Objekt.
  • Diesen Vorgang bezeichnet man auch als “das Objekt (Artikel 1) wird von der Klasse (Artikel) instantiiert. Man kann viele Objekte einer Klasse erzeugen (Artikel 1, Artikel 2, ..).
  • Jedes Objekt besitzt (anhand der Klassendefinition) Eigenschaften (Attribute), dies sind die Daten (z.B. Nummer, Text, ...) und Methoden (Algorithmen), welche diese Daten ändern, anzeigen, bereitstellen, etc (z.B. auslagern, einlagern, ...).
  • Ein Hauptprogramm enthält z.B. alle hier dargestellten Objekte in Form von Listen und steuert den Programmablauf inklusive Daten Ein- und Ausgabe.

Vor- und Nachteile:

  • für große Programmierprojekte gut geeignet
  • Konzepte wie Vererbung, Datenkapselung, Polymorhismus, etc umsetzbar

Hinweis

Python kann sowohl prozedural als auch objektorientiert verwendet werden. Mehr Details dazu werden später behandelt.

1.3.7. Software Engineering

Software Engineering wird auf deutsch als Softwaretechnik bezeichnet. Softwaretechnik umfasst eine Vielzahl von Teilgebieten wie (siehe WIKI Softwaretechnik):

  1. Projektmanagement
  2. Qualitätsmanagement
  3. Risikomanagement
  4. Anforderungserhebung
  5. Systemdesign/technische Konzeption
  6. Implementierung
  7. Softwaretest
  8. Softwareeinführung
  9. Wartung/Pflege

In dieser LVA beschäftigen wir uns vorwiegend mit Punkt 6) und am Rande mit 5) und 7). Diese Übersicht soll zeigen, dass Software Engineering nicht nur aus Programmieren besteht!

Software Engineering kann man in Phasen aufteilen. Man spricht auch vom Software Lebenszyklus (siehe Abbildung).

_images/SDLC_-_Software_Development_Life_Cycle.png

1.3.8. Einführendes Beispiel

Am Ende dieser Lehrveranstaltung sollten Studierende in der Lage sein, ingenieurwissenschaftliche Fragestellungen numerisch aufzubereiten.

Zur Motivation stellen wir Online ein solches Beispiel aus dem Gebiet der Physik vor. Dabei wird die Flugbahn eines Projektils untersucht und gleichzeitig ein Berechnungsbericht erstellt. Das folgende Bild zeigt ein Ergebnis dieser Untersuchungen.

_images/projektil1.png

1.4. Übungsbeispiele

Wichtig

Installieren Sie für die Übung eine Python Distribution für Ihr Betriebssystem. Wir empfehlen Anaconda von Continuum Analytics (Python Version >3.6 NICHT 2.X!). Dieses Paket gibt es gratis zum Download für alle gängigen Betriebssysteme.

Idealerweise nehmen Sie Ihren Laptop oder ihr Tablet zur Übung mit. Notfalls läuft Python auch auf dem Smartphone.

Achten Sie bitte bei der Installation darauf, dass der Pfad, in dem Sie Anaconda installieren keine Leerzeichen oder Umlaute enthält!

Aufgabe 1.1

Hat Ihr Computer einen 32-Bit oder 64-Bit Processor? Wie viel Speicher hat Ihr Computer?

Hinweis:

  • In Windows, klicken Sie rechte Maustaste auf ‘Computer’ bzw. ‘My Computer’ und schauen Sie die Eigenschaften an. Für noch ausführlichere Informationen, installieren Sie die Software CPU-Z von cpuid (http://www.cpuid.com/softwares/cpu-z.html).
  • In Linux, benutzen Sie den Command lscpu, lesen Sie die Inhalte von /proc/cpuinfo, /proc/meminfo
  • In Mac OS verwenden sie im Terminal den Befehl sysctl hw, die Zeilen hw.cpu64bit_capable und hw.memsize zeigen Ihnen die gesuchten Werte an.

Aufgabe 1.2

Wieviel Arbeitspeicher wird von Ihrem Browser, Spyder und anderen Anwendungen benutzt?

Hinweis:

  • Starten Sie den Task Manager in Windows
  • den System Monitor in Linux (top)
  • bzw. die Aktivitätsanzeige in Mac OS.