Rewarding Code Projekte für * komplette * Anfänger [geschlossen]

8

Kurse für Leute, die mit der Programmierung vertraut sind, beinhalten sehr oft ein Code-Projekt, was ich für eine gute Art zu lernen halte. Solche Projekte sind jedoch oft zu künstlich und daher nicht besonders lohnenswert.

Was sind Ihre Ideen für die Belohnung von Code-Projekten? (Vorzugsweise leicht zu beginnen und erweiterbar für Fortgeschrittene!).

Bearbeiten:

@Mark: Danke für den Link, obwohl ich mehr an Projekten für Leute interessiert bin, die völlig neu in der Programmierung sind (der Link scheint sich mehr auf Leute zu beziehen, die bereits in mindestens einer Sprache geübt sind und zu lernen versuchen ein neues - das typische SO-Publikum, das ich sagen würde :) -).

@Kevin, Vaibhav, gary: Ich habe an Leute gedacht, die das Programmieren in einer Sprache lernen, also wissen manche am Anfang des Kurses nichts über Kontrollstrukturen (und noch weniger über irgendeine Art von Syntax). Allerdings habe ich in einem ziemlich großen Projekt nachgedacht (typischerweise in den 1k-10k-Zeilen des Code-Bereichs, möglicherweise in Gruppen von 2 oder 3 Studenten). Das war, was an meiner Schule für die Anfänger gemacht wurde, und es schien für sie zu funktionieren ... außer dass die meisten von ihnen ihre Projekte ziemlich langweilig fanden, um daran zu arbeiten!

    
OysterD 25.08.2008, 20:21
quelle

7 Antworten

4

Wie schon mehrmals erwähnt, ist das, was Sie dem Anfänger beibringen möchten, sehr wichtig für das Projekt.

Mein Rat an Sie, so etwas zu planen:

1) Vermeiden Sie ein Computerspiel

Ein Computerspiel, während es Spaß macht zu bauen, belohnt den Programmierer nicht früh mit Ergebnissen (es ist sehr komplex). Sie möchten sich auf kleine, aber nützliche Anwendungsprogramme konzentrieren, z. B. einen Port-Scanner . Das Beispiel dort ist ein wenig komplex, aber es ist eines der besten Lernprojekte, die ich im Web gesehen habe.

2) Grafiken früh lernen

Es ist lohnend, die Früchte Ihrer Arbeit schon früh zu sehen, und es motiviert Sie, weiter zu gehen. Ob Sie WinForms, MFC oder die Win32-API, OpenGL oder DirectX verwenden, lehren Sie es früh.

3) Viele kleine Lektionen mit detaillierten Informationen

Diesem Prinzip folgt das oben verlinkte Port-Scanner-Projekt, und es funktioniert gut. Unterrichten Sie jedes Teil gründlich und geben Sie dem Anfänger Zeit, die Lektion zu lernen. Ich denke, ZophusX hatte ein gutes Format, um die Informationen zu geben. Es ist schade, dass er seine Seite meistens verlassen hat.

4) Es braucht Zeit

Übereile die Dinge nicht. Niemand wird in ein paar Wochen ein stellarer Programmierer. Versuchen Sie und machen Sie die Lektionen einfach, aber einnehmend und bauen Sie weiter aus Ihren vorherigen Lektionen.

5) Erhalten Sie früh und oft Rückmeldung

Sie denken vielleicht, dass ein Projekt unglaublich interessant ist, oder eine bestimmte Lektion oder so, aber Sie sind nicht derjenige, der lernt. Ihre Schüler werden es sehr schätzen, wenn Sie sie früh fragen, wie die Dinge laufen und worüber sie mehr wissen möchten. Sei flexibel genug, dass du einige dieser Anfragen annehmen kannst.

6) Viel Spaß beim Lehren

Viel Spaß. Leidenschaft ist ansteckend, und wenn Ihre Schüler sehen, wie sehr Sie das Thema genießen, wird auch etwas von dieser Begeisterung auf sie abfärben.

Ich hoffe, das hilft!

    
Marc Reside 25.08.2008, 20:47
quelle
2

Einige gute lohnende Projekte, in Bezug darauf, was Sie lernen können und welche in Bezug auf Komplexität ziemlich skalierbar sind, sind:

  • Spiele
  • Ein Reise- und Transportbuchungs- / Buchungssystem
  • Enzyklopädie oder ein Wörterbuch von Begriffen, Artikeln
  • Umrechnungsrechner (Währung, Einheiten usw.)

Der Schlüssel besteht darin, ein Projekt so einfach auszuwählen, dass einige seiner Funktionen sofort sichtbar werden, wenn Sie sich den Projekttitel ansehen. Und wenn Sie wirklich einen Gedanken bekommen, werden Sie weitere Funktionen entdecken, die Sie hinzufügen können.

Das Projekt sollte genug Schwierigkeiten haben, so dass seine Eigenschaften jenseits der Reichweite des Anfängers zu liegen scheinen und ihn dadurch motivieren, die ganze Zeit etwas Neues zu lernen.

    
Pascal 25.08.2008 20:42
quelle
1

Wenn Sie in Ihrem Unternehmen neue Leute ausbilden, ist es sehr lohnend, sie als interne Ressourcen an einem Live-Projekt anzuhängen.

Dies erhöht die Arbeitsbelastung der Hauptentwickler ein wenig (weil sie die ganze Arbeit, die der Praktikant macht, überprüfen muss), aber es ist ein langer Weg in Bezug auf Training und Entwicklung der Person.

    
Vaibhav 25.08.2008 20:32
quelle
1

Ich denke, dass Spiele und Puzzles ein guter Anfang sind, da sie viel Spielraum für die Entwicklung komplexerer Versionen bieten können. Zum Beispiel kann ein tic-tac-toe -Programm anfangs als einfaches Befehlszeilenprogramm erstellt werden, bei dem zwei Spieler das Spiel spielen können.

Dieser Schritt kann verwendet werden, um zu zeigen, wie eine einfache Datenstruktur oder ein Array das Spielbrett darstellen kann, einfache Eingabe, um Benutzerbefehle / -bewegungen zu erhalten, einfache Ausgabe zur Anzeige des Spielbretts und Eingabeaufforderungen usw. Dann können Sie anfangen zu zeigen, wie Algorithmus kann verwendet werden, um Player vs Computer-Modus zu ermöglichen. Ich mag den einfachen magischen quadratischen mathematischen Algorithmus für tic-tac-toe , da er auf sehr einfacher Mathematik basiert. Danach ist der Himmel das Limit, Verbesserungen der Benutzeroberfläche, Datei-I / O zum Laden und Speichern von Spielen, erweiterte Algorithmen, um den Computer besser spielen zu lassen usw. Komplexere und befriedigendere Spiele können immer noch mit Textmodus oder einfachen Grafiken erstellt werden / p>

Ich habe das Sokoban Spiel verwendet, um im Laufe der Jahre viele Techniken zu zeigen.

Das einfachste Spiel, das ich benutzt habe, ist ein Nummernlisten-Umkehrspiel. Dies beinhaltet eine gemischte Liste von Zahlen von 1-9. Der Player kann eine Anzahl von Ziffern angeben, die auf der linken Seite der Liste umgekehrt werden sollen. Ziel ist es, die Liste sortiert zu bekommen. Das ist großartig für absolute Anfänger. Jeder kleine Teil des Spiels kann separat geschrieben und getestet werden.

    
Tim Ring 29.08.2008 23:01
quelle
0

Es hängt wirklich davon ab, was Sie dem Anfänger beibringen wollen. Wenn Sie versuchen, Syntax zu lehren, dann sind einfache "Hello World" -Programme und solche, die jede ungerade Zahl zwischen 1 und 100 ausspeien, in Ordnung, um sie zu starten. Wenn Sie versuchen, Datenstrukturen zu unterrichten, dann vielleicht so etwas wie ein 20-Fragen-Spiel oder ein einfaches Sortierprogramm. Wenn Sie versuchen, Rekursion zu lehren, dann vielleicht ein breites erstes Suchprogramm. Wenn Sie versuchen, Datenbankmanipulation beizubringen, dann wäre etwas wie ein Auftragsverfolgungssystem angebracht.

    
Kevin Pang 25.08.2008 20:26
quelle
0

Sehen Sie sich Codebeispiele im Buch Python-Programmierung für den absoluten Anfänger

    
jfs 07.01.2009 13:08
quelle
0

Text Abenteuer.

  • Es ist eine Konsolen-App
  • Sie müssen einige nützliche Dinge tun, Inventar, Karten- und Raumzustand halten und Eingaben analysieren
  • Es macht Spaß und du kannst es anderen zum Spielen geben! : D
Quibblesome 07.01.2009 13:27
quelle

Tags und Links