Open Source Beitrag für einen Anfänger Programmierer [geschlossen]

8

Ich unterrichte meine Neffen und ich möchte, dass sie ihre Fähigkeiten verbessern, indem sie zu Open-Source-Projekten beitragen. Jetzt ist meine Frage, kennen Sie irgendein Open-Source-Projekt, das für einen Anfängerprogrammierer passend ist. Was ich meine ist, das Projekt hat keine große Codebasis, das Projekt ist sehr interessant und das Projekt ist in C geschrieben, weil ich die Sprache C als Ausgangssprache gewählt habe, aber Sie können auch andere Projekte in einer anderen Sprache vorschlagen.

Mein Ziel ist es, ihre Logik zu verbessern, indem Sie andere Quellcodes lesen, sich mit den verfügbaren Entwicklungswerkzeugen wie Bugtracker, Versionskontrollsystem usw. vertraut machen und ihr Interesse an der Open-Source-Community wecken.

Danke. =)

    
domlao 12.03.2010, 00:08
quelle

4 Antworten

3

Dies wurde schon einmal gefragt?

Open-Source-Projekt: Anfänger [geschlossen]

    
Adriaan Stander 12.03.2010, 00:16
quelle
2

Dies ist schwer zu beantworten, ohne das Niveau und die Fähigkeiten Ihrer Schüler zu kennen. Ohne diese Hintergrundinformationen konnte ich nicht einmal sagen, ob es überhaupt ratsam ist, sie bei einem bestehenden Projekt loszulassen.

Meiner Meinung nach sollten sie, bevor jemand bereit ist, zu irgendwelchen nicht-trivialen Open-Source-Bemühungen beizutragen, ein solides Verständnis von Datenstrukturen und dem Konzept von ADTs und dem Verstecken von Informationen haben. Im Idealfall hätten sie einige grundlegende ADTs implementiert.

Meiner Erfahrung nach fehlt dies allzu oft, besonders wenn die Sprache, die für Anfänger verwendet wird, C ist, da C keine eingebauten ADTs oder eine Standard-ADT-Bibliothek hat und von Entwicklern erwartet wird, dass sie entweder selbst schreiben oder wählen Sie eine Bibliothek eines Drittanbieters aus und passen Sie sie gegebenenfalls an ihre Bedürfnisse an.

Ich habe einige Open-Source-Projekte gesehen, die in C geschrieben wurden, wo die einzigen verwendeten Datenstrukturen Arrays mit fester Größe und verknüpfte Listen waren, in denen jeder Algorithmus so naiv wie möglich war jeder modifiziert sie.

Ein Autor, der mit ADTs vertraut ist, wird bald entsetzt vor einem solchen Projekt davonlaufen. Ein Mitarbeiter, der ADTs nicht kennt, lernt dort nur schlechte Gewohnheiten.

Wenn Ihr Ziel ausschließlich darin besteht, Ihre Schüler mit der Verwendung von Versionskontroll- und Fehlerbehebungssystemen vertraut zu machen, ist es vielleicht eine bessere Idee, ihnen eine Übung zuzuweisen und sie dazu zu bringen, auf einer dieser Websites, die die Versionskontrolle integrieren, ein Repository einzurichten , Online - Quellcode - Browsing und Bugtracking, zum Beispiel Github, Bitbucket, Google Code usw.

Sie können dann die Arbeit überprüfen, die sie für die Aufgabe geleistet haben und wenn Sie irgendwelche Fehler finden, benutzen Sie den Bugtracker, um einen Fehler zu melden, mit dem sie sich dann entsprechend befassen müssen. Sie können die Zuweisung dann erweitern, indem Sie Feature-Anfragen erneut mit dem Bugtracker usw. ablegen.

Darüber hinaus verfügen Sites wie Github und Bitbucket über eine Funktion zum Klonen dieses Repositories. Dies eignet sich auch gut zum Unterrichten von Zusammenarbeit. Abhängig von den Fähigkeiten Ihrer Schüler können Sie entweder ein vorhandenes Repository auswählen, um es zu klonen und dann nach Ihren Zuweisungen zu erweitern, oder Sie können ein Repository durchsuchen (möglicherweise nach bestimmten Kriterien) und eines für sich selbst auswählen und dieses dann erneut erweitern Folgen Sie Ihren Aufgaben.

Es gibt noch eine weitere Sache, von der ich persönlich denke, dass sie eine Voraussetzung für einen Beitrag zu einem nicht-trivialen Open-Source-Projekt sein sollte: Vertragsgestaltung verstehen, einen Funktionsvertrag dokumentieren, in Funktionsverträgen denken, die Disziplin entwickelt haben niemals etwas zu kodieren, ohne zuerst einen Funktionsvertrag zu dokumentieren. Leider verwenden zu wenige Open-Source-Projekte Design nach Vertrag. Ein Mitwirkender, der mit dieser Praxis vertraut ist, wird bald entsetzt vor einem solchen Projekt davonlaufen, und einer, der es nicht ist, wird nur schlechte Angewohnheiten aufgreifen.

Sie können dies jedoch in eine Übung umwandeln, indem Sie Ihren Schülern sagen, dass sie ein existierendes Repository von Github oder Bitbucket klonen und ihnen dann die Aufgabe zuweisen sollen, die fehlende Funktionsvertragsdokumentation auszufüllen. Unnötig zu sagen, dass Sie für eine solche Übung zuerst gelernt haben müssen, was Vertragsgestaltung ist und wie man Funktionsverträge schreibt.

Sobald Ihre Schüler die oben beschriebenen Fähigkeiten erworben haben, bin ich sicher, dass die Frage, zu welchen Open-Source-Projekten wir beitragen könnten? wird trivial zu beantworten, denn in diesem Stadium werden Ihre Studenten in der Lage sein, ein geeignetes Projekt für sich selbst zu finden und auszuwählen.

Wenn Sie in der Zwischenzeit meinen, dass Ihre Schüler noch einen Beispielcode für beide ADTs benötigen, die in C geschrieben sind, und wie man Funktionsverträge schreibt, und Sie solche Beispiele nicht zur Hand haben, sollten Sie einen Blick darauf werfen mein Repository bei Bitbucket. Es hat eine Vielzahl von gemeinsamen ADTs in C und alle Quellen enthalten Funktionsverträge. Fühlen Sie sich frei, irgendwelche Repos dort zu klonen und sie als Basis für Übungen zu verwenden:

Ich bin mir sicher, wenn Sie sich umsehen, gibt es auch genügend Material von anderen Autoren.

    
trijezdci 12.03.2010 04:37
quelle
1

Ich würde GitHub empfehlen, da sie starten können, ohne wirklich Leute kontaktieren zu müssen, um einen Festschreibezugriff auf das Repository zu erhalten, und wo ein falsches Festschreiben kein Problem verursacht, da es nur ein "lokales" Festschreiben ist. p>     

Vincent 27.05.2011 11:59
quelle
0

Ich fand das freebsd-Projekt immer gut, um Leuten beizubringen, wie man in C programmiert. Sie werden Code-Reviews von Commitern bekommen, die erklären, wie sie besser werden können, und sie haben großartige Dokumente, Ссылка . Sie können sich freiwillig melden, um Fehler zu beheben: Ссылка und sie haben eine große Liste von Dingen, die Sie tun können: < a href="http://www.freebsd.org/projects/ideas/ideas.html"> Ссылка einige sind einfach und einige sind schwer

    
ms4720 12.03.2010 05:22
quelle

Tags und Links