यह स्तर और अपने छात्रों के कौशल जानने के बिना जवाब देना मुश्किल है। कि पृष्ठभूमि जानकारी के बिना, मैं भी नहीं बता सकता है अगर यह उन्हें किसी भी मौजूदा परियोजना पर खुला छोड़ करने के लिए सभी को एक सलाह दी जाती है।
मेरी राय में, किसी भी गैर-तुच्छ ओपन सोर्स प्रयास में योगदान करने के लिए तैयार होने से पहले, उन्हें डेटा संरचनाओं और एडीटी की अवधारणा और सूचना छिपाने की अवधारणा होनी चाहिए। आदर्श रूप से वे कुछ बुनियादी एडीटी लागू कर लेते थे।
मेरे अनुभव में यह अक्सर बहुत कम होता है, खासकर जब शुरुआती निर्देश देने के लिए उपयोग की जाने वाली भाषा सी है क्योंकि सी में अंतर्निहित एडीटी नहीं है और न ही मानक एडीटी लाइब्रेरी है और डेवलपर्स आमतौर पर उनके लिखने में सक्षम होने की उम्मीद कर रहे हैं स्वयं या किसी तृतीय पक्ष लाइब्रेरी का चयन करें और यदि आवश्यक हो तो इसे अपनी आवश्यकताओं के अनुसार अनुकूलित करें।
मैंने सी में लिखी कुछ खुली स्रोत परियोजनाएं देखी हैं, जहां केवल डेटा संरचनाओं का उपयोग किया गया था, केवल आकार के सरणी और लिंक्ड सूचियां थीं, जहां प्रत्येक एल्गोरिदम सबसे बेवकूफ संभव था, जहां एक एपीआई की धारणा structs का पर्दाफाश करना था और सभी को उन्हें संशोधित करने दें।
एडीटी से परिचित एक योगदानकर्ता जल्द ही इस तरह के एक परियोजना से डरावनी हो जाएगा। एक योगदानकर्ता जो एडीटी से परिचित नहीं है केवल वहां बुरी आदतों को सीखेंगे।
अपने उद्देश्य अपने छात्रों संस्करण नियंत्रण और bugtracking प्रणाली के उपयोग को जानने के लिए प्राप्त करने के लिए पूरी तरह से है, तो यह शायद एक बेहतर विचार उन्हें एक व्यायाम निर्दिष्ट करके उन साइटों है कि संस्करण एकीकृत में से एक में भंडार की स्थापना करना है नियंत्रण, ऑनलाइन स्रोत कोड ब्राउज़िंग और bugtracking, उदाहरण के Github, Bitbucket, गूगल कोड आदि के लिए
तुम तो काम वे काम के लिए किया था की जांच कर सकते हैं और आप एक बग की रिपोर्ट दर्ज करने के लिए बगट्रैकर उपयोग करें यदि आप कोई गलती पाते हैं जो वे तो तदनुसार निपटने के लिए है। इसके बाद आप बगट्रैकर आदि का उपयोग करके फीचर अनुरोधों को फिर से दर्ज करके असाइनमेंट का विस्तार कर सकते हैं।
इसके अलावा, गिथब और बिटबकेट जैसी साइटों में क्लोन-द-रिपोजिटरी सुविधा है। यह सहयोग को पढ़ाने के लिए खुद को अच्छी तरह से उधार देता है। अपने छात्रों के कौशल के आधार पर आप या तो क्लोन करने के लिए उनके लिए एक मौजूदा भंडार चुन सकते हैं और फिर अपने असाइनमेंट का पालन कर सकते हैं, या आप उन्हें एक भंडार (संभवतः कुछ मानदंडों से मेल खाते हुए) को खोजने के लिए कह सकते हैं और खुद को एक चुन सकते हैं, फिर फिर से इसे बढ़ाएं आपके असाइनमेंट के बाद।
एक और बात यह है कि मैं व्यक्तिगत रूप से किसी भी गैर तुच्छ ओपन सोर्स प्रोजेक्ट के लिए योगदान के लिए एक पूर्व अपेक्षित होना चाहिए विश्वास करते है: अनुबंध द्वारा समझ डिजाइन, कैसे एक समारोह अनुबंध दस्तावेज़ के लिए, समारोह के ठेके में सोच, का विकास किया पहले किसी फंक्शन अनुबंध को दस्तावेज किए बिना कुछ भी कोड करने के लिए अनुशासन। दुर्भाग्यवश, बहुत कम खुली स्रोत परियोजनाएं अनुबंध द्वारा डिजाइन का उपयोग करती हैं। फिर, इस अभ्यास से परिचित एक योगदानकर्ता जल्द ही इस तरह के एक परियोजना से डरावनी हो जाएगा और जो नहीं बल्कि बुरी आदतों को उठाएगा।
हालांकि, अगर आप Github या Bitbucket कहना से एक मौजूदा भंडार क्लोन और फिर उन्हें गायब समारोह अनुबंध दस्तावेज में भरने के लिए कार्य आवंटित करने के लिए अपने छात्रों को बताकर एक अभ्यास में इस बदल सकता है। कहने की जरूरत नहीं है कि इस तरह के अभ्यास के लिए आपको सबसे पहले उन्हें सिखाया जाना चाहिए कि अनुबंध द्वारा कौन सा डिज़ाइन है और फ़ंक्शन अनुबंध कैसे लिखना है।
एक बार आपके छात्रों ने ऊपर बताए गए कौशल प्राप्त कर लिया है, तो मुझे यकीन है कि "कौन सी ओपन सोर्स प्रोजेक्ट्स हम योगदान दे सकते हैं?" उत्तर देने के लिए तुच्छ हो जाएगा क्योंकि उस समय आपके छात्र खुद के लिए उपयुक्त परियोजना ढूंढने और चुनने में सक्षम होंगे।
इस बीच, यदि आपको लगता है कि आपके छात्रों को अभी भी सी में लिखे गए एडीटी और फ़ंक्शन अनुबंधों को लिखने के लिए कुछ उदाहरण कोड की आवश्यकता है, और आपके पास ऐसे कोई उदाहरण आसान नहीं हैं, तो आप एक नज़र रखना चाहेंगे बिटबकेट में मेरे भंडार पर। इसमें सी में विभिन्न प्रकार के सामान्य एडीटी हैं और सभी स्रोतों में फ़ंक्शन अनुबंध होते हैं। वहाँ में रेपोस के किसी भी क्लोन करने के लिए स्वतंत्र महसूस करने और उन्हें अभ्यास के लिए एक आधार के रूप में उपयोग:
मुझे यकीन है कि अगर आप चारों ओर देखने के अन्य लेखकों द्वारा उपयुक्त सामग्री के बहुत सारे है, भी कर रहा हूँ ।
* परियोजना बहुत दिलचस्प है *: यह निश्चित रूप से आपकी राय पर निर्भर करता है। यही कारण है कि मैं आपको यह देखने के लिए http://sourceforge.net/ पर एक नज़र डालने की सलाह दूंगा ;-) – ChristopheD
धन्यवाद स्रोत फोर्ज को कई परियोजनाएं मिलीं। =) – domlao