2008-08-25 9 views
8

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

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

Edit:

@ Mark: danke für den Link, obwohl ich in Projekte für die Menschen mehr daran interessiert bin, die auf die Programmierung völlig neu sind (der Link scheint mehr Menschen zu beziehen, die in bereits beherrschen mindestens eine Sprache, und versuche, ein neues zu lernen - das typische SO-Publikum, das ich sagen würde :) -).

@Kevin, Vaibhav, gary: Ich habe an Leute gedacht, die das Programmieren in einer Sprache lernen, daher wissen einige am Anfang des Kurses nichts über Kontrollstrukturen (und noch weniger über jede 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). Dies wurde an meiner Schule für Anfänger gemacht und es schien für sie zu funktionieren ... außer dass die meisten von ihnen ihre Projekte ziemlich langweilig fanden.

Antwort

4

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

mein Rat an Sie so etwas wie dies für die Planung:

1) Vermeiden Sie ein Computerspiel

ein Computerspiel zu machen, und dabei Spaß zu bauen, nicht frühzeitig den Programmierer mit den Ergebnissen belohnen (es ist sehr komplex). Sie möchten sich auf kleine, aber nützliche Anwendungsprogramme konzentrieren, z. B. Port Scanner. Das Beispiel ist ein wenig komplex, aber es ist eines der besten Lernprojekte, die ich im Internet gesehen habe. Teach

2) Grafiken frühe

Es ist lohnend, die Früchte Ihrer Arbeit zu sehen frühzeitig, 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 ausführlichen Informationen

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

4) Es braucht Zeit,

nicht überstürzen. Niemand wird in ein paar Wochen ein stellarer Programmierer. Versuchen Sie es und machen Sie die Lektionen einfach, aber ansprechend und bauen Sie weiter aus Ihren vorherigen Lektionen.

5) Früh Feedback und oft

Man könnte denken, ein Projekt unglaublich interessant ist, oder eine bestimmte Lehre oder so, aber sie sind nicht das Lernen. 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. Seien Sie flexibel genug, dass Sie einige dieser Anforderungen erfüllen können.

6) Viel Spaß beim Unterrichten

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, dass hilft!

+0

Die Verknüpfung mit dem Port-Scanner-Code scheint auf dieser Website unterbrochen zu sein. Hast du zufällig noch eine Kopie? Ich habe die Seite kontaktiert, aber sie haben nicht geantwortet. – Steve

0

Es hängt wirklich davon ab, was Sie dem Anfänger beibringen möchten. 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.

1

Wenn Sie neue Mitarbeiter in Ihrem Unternehmen 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 alle die Arbeit, die der Praktikant tut) überprüfen müssen, aber es geht einen langen Weg in Bezug auf die Ausbildung und Entwicklung der Person.

2

Einige gute lohnende Projekte, in Hinblick darauf, was man lernen kann und die im Hinblick auf die Komplexität ganz skalierbar sind, Merkmale sind:

  • Spiele
  • A Reise- und Transport Reservierung/Buchung System
  • Enzyklopädie oder ein Wörterbuch von Begriffen, Artikel
  • Umwandlung Rechner (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 Schwierigkeit haben, so dass seine Eigenschaften gerade jenseits der Reichweite des Anfängers scheinen und ihn dadurch motivieren, die ganze Zeit etwas Neues zu lernen.

1

Ich denke, dass Spiele und Puzzles ein guter Anfang sind, da sie großen Spielraum für die Entwicklung komplexerer Versionen bieten können. Zum Beispiel kann ein tic-tac-toe Programm als ein einfaches Befehlszeilenprogramm erstellt werden, das zunächst zwei Spieler das Spiel spielen lässt.

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 Aufforderungen usw. Dann können Sie anfangen zu zeigen, wie Ein Algorithmus kann verwendet werden, um Player-Computer-Modus zu ermöglichen. Ich mag den einfachen magischen quadratischen mathematischen Algorithmus für tic-tac-toe, da es auf sehr einfache Mathe basiert. Danach ist der Himmel das Limit, UI-Verbesserungen, Datei-I/O zum Laden und Speichern von Spielen, erweiterte Algorithmen, um den Computer besser zu spielen etc. Komplexe und befriedigende Spiele können immer noch mit Text-Modus oder einfachen Grafiken produziert werden.

Ich habe das Sokoban Spiel als Mittel verwendet, um viele Techniken im Laufe der Jahre 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.

0

Text Adventure.

  • Es ist eine Konsolenanwendung
  • Sie werden einige nützliche Dinge tun müssen, halten Inventar, Karte und Raum Zustand und analysieren Eingang
  • Es macht Spaß und man kann es an andere weitergeben zu spielen! : D