Textbasiertes online-Kurs für totale Anfänger

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
StefanL38
User
Beiträge: 7
Registriert: Mittwoch 29. Dezember 2010, 18:52

Hallo,

Ich suche für totale Anfänger einen leicht verständlichen textbasierten Online-Kurs über Python.
Ich weiß es sehr wohl zu schätzen wenn jemand helfen möchte. Ich habe jetzt recht lange Zeit damit verbracht per google nach einem Python-Einsteigerkurs zu suchen. Jedoch keinen gefunden der meinen Vorstellungen entspricht. Ich bitte darum sich zunächst
sorgfältig durchzulesen welche Anforderungen ich an diesen Einsteiger-Kurs stelle. Das wird bei vielen dazu führen das sie denken
SO einen Kurs kenne ich (auch) nicht. Das ist OK. Dann bitte ich darum einfach NICHTS zu posten. Die ganzen Standard-Fundstellen
bin ich schon durchgegangen. Genug der Vorrede hier die Anforderungen:

- Textbasiert - KEIN Videotutorial

- für Python 3 geeignet (
ich hatte einen der recht gut war aber nur für Python 2 print "Hello World" ging schon nicht muss print ("Hello World!") geschrieben werden

- in deutscher Sprache

- OHNE Anmeldung und kostenlos

- Für Windows NICHT für Linux /Unix

- Bei null anfangen und die Begriffe aufeinander aufbauend erklären
Ich poste hier mal ein krasses Gegenbeispiel

Zitat
Dieses erste C++-Programm, das wir in diesem Tutorial sehen, beginnt mit einer sogenannten Präprozessoranweisung. Was das ist? Nun, bevor eine C++-Quelltextdatei von einem Compiler in Maschinencode übersetzt wird, wird der Präprozessor aktiv. Dieser durchsucht den C++-Quellcode nach bestimmten Anweisungen: eben den Präprozessordirektiven."

Wie kann man denn so mit der Tür ins Haus fallen??!! Diese zwei Sätze werfen vier Fragen auf und vermitteln den Eindruck programmieren ist sauschwierig - anstatt aufeinander aufbauend etwas zu erklären.


So - ganz schön viele Anforderungen.
Diejenigen die einen Online-Kurs kennen der diese Anforderungen erfüllt mögen einen Link posten.
Diejenigen die mit einer "wenigstens schnell ein paar links"-posten-Antwort antworten möchten. Bitte lieber NICHTS posten.
Die schnellen Fundstellen habe ich schon durchgeackert.

Ich möchte mich ausdrücklich bedanken für die Mühe dieses Posting durchzulesen und das beherzigen der Bitte

mit freundlichen Grüßen

Stefan
Bolitho
User
Beiträge: 219
Registriert: Donnerstag 21. Juli 2011, 07:01
Wohnort: Stade / Hamburg
Kontaktdaten:

Das entscheidende Kriterium ist die Sprache. Bist du kompromissbereit? Ohne Englisch kommst du eh nicht weit.

Alternativ kann ich dir ein Buch in deutscher Sprache leihen, welches deine Kriterien erfüllt. Halt nicht online.
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

das beste Einsteiger-Tutorial ist das offizielle von Python auf docs.python.org. Ist halt auf englisch. Wie auch 99% der anderen Doku, die es zu Python und Python-Modulen gibt.

Wie Bolitho schon sagte: ohne Englisch kommst du nicht weit (bei keiner Programmiersprache). Das gute ist ja, dass man das Englisch "nur" lesen muss und nicht sprechen oder schreiben.

Gruß, noisefloor
Benutzeravatar
__blackjack__
User
Beiträge: 13114
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Falls die Python 3-Anforderung auch ältere Python 3-Versionen mit einschliesst, dann gibt es das Tutorial aus der Python-Dokumentation auch auf deutsch übersetzt.

Was man vielleicht noch vor das lernen von Python stellen sollte ist sich einen Kurs zu suchen der einem den Umgang mit dem Betriebssystem auf Kommandozeilenebene näher bringt. Denn früher oder später wird man damit konfrontiert. Oder man ist auf eine IDE festgelegt und kann keine andere verwenden, und auch nur das was da jemand in GUI gegossen hat.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
StefanL38
User
Beiträge: 7
Registriert: Mittwoch 29. Dezember 2010, 18:52

Hallo,
Vielen Dank für eure Antworten und die Geduld mein Posting aufmerksam zu lesen.
Ich habe mir das offizielle Tutorial auf docs.python.org angeschaut.
Nun - wenn man sich einen wirklich TOTALEN Anfänger vorstellt der das Wort Variable vor längerer Zeit mal im Mathematikunterricht gehört hat
und dann nie wieder.

Wenn so jemand die folgenden Sätze liest
Zitat aus dem Tutorial
"The equal sign (=) is used to assign a value to a variable. Afterwards, no result is displayed before the next interactive prompt:"

wird große Schwierigkeiten haben diese Sätze zu verstehen.
Da leidet das Tutorial unter einer weltweit verbreiteten Krankheit. Ich nenne sie "die Anfängerschwierigkeiten-Blindheit des Experten"
Für einen totalen Anfänger müsste es zum Konzept Variable eine eigene halbe Seite einführende Erklärung geben.

Sobald man mal eine Programmiersprache ein Stück weit verstanden hat weiß man auch was mit "Variable" gemeint ist.
Aber als TOTALER Anfänger eben nicht.

Es geht mir mit dieser Frage nicht um mich. Ich selbst bin Hobbyprogrammierer in Basic, Pascal, Delphi, SPIN, 6502-Assembler,
PropellerChip-Assembler und ein bisschen Arduino-C. Alles halbwegs exotische Sprachen oder veraltet.
Es geht mir um 15-jährige Hauptschüler. Da wäre ein Kurs in deutsch schon deutlich einfacher.

Buch ist eigentlich auch eine gute Idee. Also wenn jemand einen guten Buchtitel weiß bitte auch posten.

@Bolitho: Ist das Buch im Handel noch erhältlich? Wenn du mir den Titel des Buches nennst kann ich mal schauen ob es das an der Uni-Bibliothek oder gebraucht zu kaufen gibt.

viele Grüße

Stefan
Benutzeravatar
sparrow
User
Beiträge: 4195
Registriert: Freitag 17. April 2009, 10:28

Wenn man einen einzigen Satz aus edm Tutorial heraus reißt, dann scheint das möglicherweise so.
Allerdings wird sofort danach gezeigt, wie man mit Variablen arbeitet. Selbst wenn der Mathe-Unterricht schon eine Weile her ist, sollte das beim Verständnis helfen.
Natürlich kann man sich immer eine Welt konstruieren, in der jemand etwas nicht versteht und es noch einfacher erklärt werden muss, aber in diesem Fall sehe ich da kein Defizit.
Es gibt seltsame Programmiersprachen, die oft im Informatikunterricht benutzt werden. Wenn nämlich schon das Verständnis für Variablen fehlt, ist das für den squentiellen Programmablauf und Schleifen wahrscheinlich auch nicht da.

Eine davon ist zum Beispiel Scratch.
StefanL38
User
Beiträge: 7
Registriert: Mittwoch 29. Dezember 2010, 18:52

Hallo,

es ist vollkommen OK Erklärungen auf einem etwas höheren Niveau anzubieten. Auch dafür gibt es eine Zielgruppe und für diese Zielgruppe ist das etwas höhere Niveau gerade richtig.

Ich bitte aber darum von weiteren Postings die eben die "Expertenblindheit für Anfängerschwierigkeiten" aufs neue demonstrieren abzusehen.
(Zitat "In diesem Fall sehe ich da kein Defizit")

Ich konstruiere da keine Welt sondern beziehe mich auf das was ich in dem Welt-Ausschnitt mit dem ich zu tun habe in der Realität vorfinde.
Das können sich Aussenstehende nicht immer vorstellen.

Ich könnte es auch einmal so ausdrücken: Wenn jemand eine Python-Einführung kennt die so einfach gehalten ist, das man entweder ins Schmunzeln kommt wegen der kindergerechten Analogien oder arrogant die Nase rümpft weil alles "zu einfach" erklärt wird, dann bitte den Link posten.

viele Grüße

Stefan
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

Soweit ich weiß, gibt es weder einen Online-Kurs noch ein Buch speziell für die Zielgruppe 15 jährige Hauptschüler in einfacher Sprache. Vermutlich soll diese Sprache auch deutsch sein. Der Lösung am nächsten kommt vielleicht die Einführung in Python 3 von Michael Weigend (Buch, nicht online). Das könnte sich womöglich als Basis eignen, um Deine Schüler damit didaktisch zu begleiten.
Benutzeravatar
__blackjack__
User
Beiträge: 13114
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@StefanL38: Ich denke so etwas wirst Du nicht finden, weil Du IMHO den Fall beschreibst in dem Leute von jemanden der es kann, persönlich an die Hand genommen werden müssen, der dann speziell auf die bei der individuellen Person auftretenden Fragen eingeht. Und man sollte auch von vornherein einplanen das es Leute gibt die das nicht packen werden, egal wie man es erklärt.

Und Du wirst garantiert nichts in der Einfachheit finden bei dem man Python lernt. Da wird es nur etwas geben bei dem man Anfänge von Programmieren lernen kann, vielleicht auch mit Hilfe von Python, aber eben nicht programmieren in Python. Python ist keine einfache Programmiersprache. Die Syntax ist übersichtlich und es ist möglich gut lesbaren, leicht verständlichen Code zu schreiben. Aber nicht für Anfänger. Also Anfänger können den lesen und verstehen, aber um so schreiben zu können, muss man die Sprache beherrschen, die ganzen Konzepte die dahinter stehen, und auch allgemein objektorientierte und funktionale Programmierung kennen. Und man muss sich an Konventionen halten können, die man auch erst einmal lernen muss.

Du gehst bei der Kritik vom Python-Tutorial IMHO zu sehr auf einzelne Sätze ein. Der Satz der Variablen erklärt reicht wahrscheinlich nicht um sie tatsächlich auf Anhieb 100%ig zu verstehen. Das Tutorial besteht aber nicht nur aus dem Text sondern auch aus den Beispielen im interaktiven Python-Interpreter, die man *durcharbeiten* muss, wenn das Tutorial etwas bringen soll. Also nicht nur passiv lesen, sondern auch die Beispiele nachvollziehen, abändern, damit herum spielen. Und in Folge dessen wird es bei der überwiegenden Zahl von Leuten die das durcharbeiten zu einem Verständnis dafür kommen was eine Variable in Python ist.

Die passende Analogie ist übrigens, dass es Werte/Objekte gibt, und an die dann kleine Post-It-Zettelchen mit Namen darauf auf diese Objekte geklebt werden, und man sich über diese Namen dann auf die Werte/Objekte beziehen kann.

Zumindest in englischer Sprache gibt es ein paar Bücher die speziell auf Kinder abzielen. No Starch Press hatte neulich ein Humble Bundle wo mindestens drei Titel dabei waren die Kinder/Eltern+Kinder die Zielgruppe sind.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Bolitho
User
Beiträge: 219
Registriert: Donnerstag 21. Juli 2011, 07:01
Wohnort: Stade / Hamburg
Kontaktdaten:

StefanL38 hat geschrieben: Sonntag 17. November 2019, 20:08 ...
@Bolitho: Ist das Buch im Handel noch erhältlich? Wenn du mir den Titel des Buches nennst kann ich mal schauen ob es das an der Uni-Bibliothek oder gebraucht zu kaufen gibt.
Oh je, das Buch, welches ich im Sinn hatte, ist auch in englischer Sprache hier. Das habe ich beim Sichten gar nicht gemerkt. Es wäre Mission Python gewesen von Sean McManus. Hatte es mir genau für den von dir beschriebenen Anwendungsfall als Unterstützung für Anfänger besorgt.

Ansonsten habe ich in deutscher Sprache noch hier:
Python von Kopf bis Fuß von Paul Barry (O'Reilly) - Die Art und Weise muss man mögen, ich finde es aber ganz gut.
Python 3 - Das umfassende Handbuch von Johannes Ernesti und Peter Kaiser (Rheinwerk) - Kann einen Anfänger auf Grund der Dicker erschlagen, ist aber sehr gut.

Ansonsten schau mal hier:
https://programmierbuch.de/die-besten-python-buecher/
Meine Tipps daraus:
- Routineaufgaben mit Python automatisieren
- Eigene Spiele programmieren
Benutzeravatar
sparrow
User
Beiträge: 4195
Registriert: Freitag 17. April 2009, 10:28

Das Buch von Ernesti und Kaiser kannst du getrost vergessen.
Die beschreiben super, wie man Java mit Python-Syntax programmiert. Wirklich Python wird man damit nicht erfahren.

@StefanL38
Deine Hervorhebung bei meinem Zitat ist offensichtlich falsch. Wenn dann musst du "ich" betonen, nicht "sehe".
Wie gesagt, schau dir mal Umgebungen an, die dafür gedacht sind, ein grundlegendes Verständnis für Programmieren und Abläufe zu vermitteln. Wirklich. Ich spreche da aus Erfahrung. Für dich sieht das vielleicht zu kindisch aus, aber solche Sachen sind ja nicht grundlos erfunden.
Benutzeravatar
__blackjack__
User
Beiträge: 13114
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@sparrow: Das es für ihn zu kindisch aussehen könnte kann nicht sein, er hat ja explizit nach Sachen gefragt die kindergerecht aussehen.

@StefanL38: Scratch wird von Leuten entwickelt die sich intensiv mit dem lernen und lehren von Programmieren beschäftigen, und nicht von jemanden der für ein experimentelles, verteiltes Betriebssystem eine Programmiersprache brauchte die zwischen Shell-Programmierung und C liegt. Auch wenn bei der Entwicklung von Python vielleicht mehr auf die Syntax geachtet wurde als bei so einigen anderen Programmiersprachen.

Scratch ist neben Python auch offizielle Programmiersprache auf dem Raspberry Pi. Für Leute für die Python für für den Anfang eine zu grosse Hürde darstellt. Auch beim Raspi entscheiden Leute mit die etwas mit Bildung zu tun haben. Das ist das ursprüngliche Ziel von dem ganzen Projekt: Kindern und Jugendlichen günstige Hardware zur Verfügung zu stellen auf der sie programmieren lernen können. Dass die Geräte auch von Nerds wie blöde gekauft werden ist ja nur ein netter Nebeneffekt.

Das wäre vielleicht wirklich eine Alternative die Du ins Auge fassen könntest.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
StefanL38
User
Beiträge: 7
Registriert: Mittwoch 29. Dezember 2010, 18:52

Hallo an alle die mir geantwortet haben,

Wow ! Erst mal ein ganz dickes und herzliches Dankeschön für die ausführlichen Antworten .
Jetzt habe ich Stoff zum Nachdenken. Scratch werde ich mir auch anschauen.

Inzwischen bin ich auf eine Einführung ins Programmieren gestoßen die den Aspekt einfach durch einfaches System betont.

http://www.askos.de/tutorial/

Diese Einführung greift auf den C16 und Commodore Basic zurück (als PC-Emulation) wenn das noch jemand kennt.
So ein BASIC ist für manche BÄH!-SICK. BASIC mit Goto und Zeilennummern finde ich auch nicht gut. Aber den Stil der Einführung
den finde ich super. Da könnte ich mir vorstellen diese Einführung auf eine andere Programmiersprache quasi zu "portieren".

Mag sein das man in dieser Einführung wirklich nur die elementarsten Grundkonzepte erlernt. Aber darum geht es ja.
Wenn man die Grundkonzepte Variable, Bedingungen, Schleifen, Funktionen verstanden hat dann kann man meiner Meinung nach
aus einer größeren Anzahl Programmiersprachen wählen wo man vertiefende Kenntnisse erwerben will.

@_blackjack_ : Noch eine Frage: In Delphi habe ich recht viel und auch relativ umfangreiche Programme geschrieben.
Für den Fall das du Delphi auch kennst

Wenn man den Schwierigkeitsgrad von Python erlernen und Delphi erlernen vergleicht wie fällt der Vergleich aus?
Delphi und Python unterscheiden sich von der Stuktur her und den Haupt-Anwendungsbereichen. Trotzdem kann man unter
dem Aspekt Schierigkeitsgrad des Erlernens für beide etwas sagen.

Ich mache mal ein Beispiel:

Scratch: leicht zu erlernen Haskell: schwierig zu erlernen

In Python stecke ich nicht tief genug drin um das wirklich beurteilen zu können.

viele Grüße

Stefan
Benutzeravatar
__blackjack__
User
Beiträge: 13114
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@StefanL38: Ich habe unter DOS viel mit Pascal gemacht und unter Linux ein bisschen mit FreePascal gespielt. Weiss nicht ob mich das für einen Delphi/Python-Vergleich qualifiziert.

Pascal/Delphi ist eine nach heutigen Standards low-level hardwarenahe Programmiersprache, während Python eine high-level Programmiersprache ist, die weiter von der Maschine entfernt ist. Man muss sich in Python nicht um die Speicherverwaltung kümmern, was IMHO das lernen gegenüber Pascal vereinfacht. Da Python nicht so low-level ist, gibt es aber beispielsweise keine Zählschleifen wie in Pascal. Mit der ``for``-Schleife kommt auch gleich das Konzept eines iterierbaren Objekts und damit eines Iterators, also eines Objekts mit einem gekapselten internen Zustand. Da fängt dann schon die Frage an ob das einfacher oder schwieriger ist. Einerseits muss man beim schreiben/lesen nicht den gedanklichen Umweg über eine Indexvariable gehen wenn man beispielsweise über die Elemente einer Liste iterieren will, andererseits ist das natürlich etwas abstrakter als die Aufteilung in hochzählen eines Indexes und dann den Zugriff damit in eine Liste.

Python ist durch und durch objektorientiert, das heisst *alles* was man an einen Namen binden kann ist ein Objekt. Also beispielsweise auch Module, Funktionen, oder Klassen. Und alle Objekte werden gleich behandelt bei Zuweisungen an Namen und bei Übergabe als Argument bei Aufrufen. Es wird das selbe Objekt zugewiesen/übergeben und dabei nur an einen anderen Namen gebunden. Python kopiert nie implizit Werte dabei. Es gibt keinen Pointer-Datentyp. Ich denke das ist auch eine Vereinfachung.

Neben objektorientierter Programmierung kann Python auch vieles was man für funktionale Programmierung braucht. Also beispielsweise Closures. Pascal-Programmierer haben da schon mal den Vorteil das sie lokale Funktionen/Prozeduren nicht überraschen, aber zumindest bei Pascal war es immer noch so, das lokale Variablen nur solange existieren wie der Funktions-/Prozeduraufruf aktiv war. Ich vermute mal das hat sich bei Delhpi nicht verändert?

Neben den Eigenschaften Sprache selbst gibt es auch einen Haufen Funktionen für funktionale Programmierung. Eingebaut (`map()`, `zip()`, `filter()`, `enumerate()`) und in der Standardbibliothek (`functools`, `itertools`).

In das verlinkte Tutorial habe ich mal reingeschaut. Die C16-Emulation hat komischerweise ”3-PLUS-1 ON KEY F1” im Startbildschirm stehen, ist also im Grunde kein C16 sondern ein Plus/4 bei dem nur 16 KiB RAM konfiguriert sind. Da die Hardware beider Rechner kompatibel ist, mag das vielleicht nicht so wichtig erscheinen, zeigt aber das der Autor in den Einstellungen nicht einfach auf den C16 umgeschaltet hat, was die einfachste und irgendwie auch offensichtlichste Möglichkeit ist mit diesem Emulator einen C16 zu emulieren. Wobei man sich dann auch fragen kann warum überhaupt einen C16 emulieren und nicht einfach die Standardeinstellung für einen Plus/4 lassen. Also besser einen Rechner so konfiguriert emulieren wie man ihn damals auch kaufen konnte, als irgendwie eine Hybridmaschine zu emulieren.

Was ich eine Zumutung finde, und was vielleicht den ein oder anderen gleich am Anfang abschrecken wird, ist die Tastaturbelegung. Der Nutzer muss da ausprobieren welches Zeichen auf welcher Taste liegt und dann merken dass Fragezeichen <Shift>+<-> ist, Plus <ß>, und so weiter, weil die Default-Einstellung des Emulators die Tastenanordnung auf dem Originalrechner ist. Das kann man aber ganz einfach auf normale deutsche PC-Tastatur (oder auch andere Layouts) umstellen.

LET kann man erwähnen, muss man aber nicht, und vor allem habe ich LET ausser in den Handbüchern von Commodore nie tatsächlich in Programmen gesehen. Nicht mal in den Handbüchern selbst, da wurde das nur der Vollständigkeit halber erwähnt und das es optional ist. Das Tutorial verwendet LET soweit ich das sehe durchgehend. Und Klammern um Bedingungen bei IF und WHILE als wenn das so sein müsste und zur Syntax gehören würde, was es bei BASIC natürlich nicht tut. Ebenfalls falsch ist die Behauptung man müsste ``DIM X(11)`` schreiben wenn man ein Array mit 10 Elementen initialisieren will weil die Zählung bei 0 anfängt. Was nicht einmal ein off-by-one-Fehler ist, denn es wird immer von 0 bis inklusive der angegebenen Zahl initialisiert. Also 12 Elemente bei ``DIM X(11)``. Für 10 Elemente hätte ``DIM X(9)`` gereicht. Wobei es auch üblich ist/war ``DIM X(10)`` für 10 effektiv verwendete Elemente zu schreiben und nur die Elemente 1 bis 10 zu verwenden, also das 0te unbenutzt zu lassen.

Eine wichtige Sache an dem Tutorial ist, dass die Umgebung erklärt wird. Also der C16 oder Plus/4, die Grundlagen von DOS, und so weiter.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Benutzeravatar
__blackjack__
User
Beiträge: 13114
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Nachtrag zur C16-Emulation mit den Standard 16 KiB RAM und dem 3-PLUS-1 ROM: Das ROM setzt 64 KiB RAM voraus, ist also mit nur 16 KiB RAM gar nicht nutzbar. Der Rechner stürzt ab wenn man versucht mit F1 + Return Code aus dem ROM zu starten. Visuell nicht uninteressant weil in den Grafikmodus geschaltet wird und offenbar der untere Speicherbereich als Bitmap angezeigt wird → bunte Pixel und ein paar flimmern auch weil da Variablen vom Betriebssystem die sich ändern als Pixel angezeigt werden.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten