- Pickcode मध्य और उच्च विद्यालयों की computer science classes के लिए एक online IDE है, जिसका लक्ष्य शिक्षकों का class management में लगने वाला समय घटाने वाला एक सरल और स्थिर platform बनना है
- Chromebook support, student work monitoring, real-time collaboration, और code history देखना इसके मुख्य class management features हैं
- शिक्षक class materials और assignments को customize करके व्यवस्थित कर सकते हैं, और Pickcode साफ़ तौर पर बताता है कि इसमें AI code assistance feature नहीं है
- शिक्षकों की राय है कि Java, Web Development, Python, और AP Computer Science Principles classes में इसने छात्रों को अधिक आसानी से शुरुआत करने और स्वतंत्र रूप से काम करने में मदद की है
- जटिल professional IDEs की तुलना में यह class creation और student management पर केंद्रित tool है, इसलिए classroom environment में distractions कम करने वाला विकल्प माना जा सकता है
Classroom के लिए बना online IDE
- Pickcode मध्य और उच्च विद्यालयों की CS classes के लिए एक online IDE है
- यह शिक्षकों का class management time बचाने के लिए सरल और स्थिर platform पर जोर देता है
- यह get started, login, और pricing pages तक जाने वाला basic entry path देता है
Class management features और शिक्षकों की प्रतिक्रिया
- Pickcode के प्रमुख features class चलाने और students का काम देखने पर केंद्रित हैं
- Chromebook पर काम करता है
- छात्रों के काम को monitor किया जा सकता है
- real-time collaboration support करता है
- code history देखी जा सकती है
- class materials customize किए जा सकते हैं
- assignments व्यवस्थित किए जा सकते हैं
- AI code assistance feature नहीं है
- शिक्षकों का कहना है कि interface सरल है, लेकिन scalable है, और अलग-अलग उम्र के students इसे पसंद करते हैं
- Java, Web Development, Python, और AP Computer Science Principles classes में इसके उपयोग के उदाहरण हैं
- प्रतिक्रियाओं में यह भी शामिल है कि इससे छात्रों को tool का उपयोग अधिक आसानी से करने, अपना काम track करने, और स्वतंत्र रूप से आगे बढ़ने में मदद मिली
- support team के बारे में भी राय है कि वह तेज़ और मददगार है, और दिए गए कई suggestions लागू किए गए हैं
1 टिप्पणियां
Hacker News की टिप्पणियाँ
मुझे यह जानने की जिज्ञासा है कि
var,set,callkeywords को अनिवार्य करने का कोई ठोस कारण है या नहीं। BASIC में ऐसा कुछ नहीं था, और बचपन में पहली बार programming सीखने की धुंधली यादों के आधार पर कहूँ तो ये अनावश्यक जटिलता लगतींउदाहरण के लिए LOGO में बस
forward 10,left 90लिखना होता था, लेकिनcall paint.forward(10),call paint.left(90)ज़्यादा भरा हुआ और शोरगुल जैसा लगता हैset x = 7में keyword साफ़ कर देता है कि हम variable बदलना चाहते हैं या equality assert कर रहे हैंतकनीकी रूप से drawing program के context में
forward()को top-level method बनाया जा सकता था, लेकिन बाद में जब छात्र 2D game engine पर जाएँगे और कई sprites को control करेंगे, उसे ध्यान में रखते हुए हमने इसे थोड़ा ज़्यादा object-oriented बनाने का फैसला कियाforwardऔरleftmovement direction जैसे लगते हैं, इसलिए खासकर जब painter को “बाएँ ले जाना” हो तो भ्रम हो सकता हैअसल में
forwarddrawing/movement है औरleftnegative argument भी लेने वाला counterclockwise rotation है, इसलिएcall paint.draw(10),call paint.rotate(90)याrotate("up")ज़्यादा सहज लगता हैgosubcommand थावैसे, सुना है शुरुआती BASICs में ऐसा ही था, इसलिए मैंने link numbering भी 1 से शुरू रखी :)
[1] https://picaxe.com/basic-commands/program-flow-control/gosub...
[2] https://alandix.com/blog/2021/07/27/a-brief-history-of-array...
LET X=10थामैं एक 10 साल के बच्चे को Godot से परिचित करा रहा हूँ। पिछले 6 महीनों से वह Scratch में game बना रहा है और उसे Scratch पसंद है, लेकिन उसकी सीमाओं से वह परेशान भी हुआ है
मुझे लगा था कि असली script language इस्तेमाल करने पर उसे और मज़ा आएगा, लेकिन GDScript शुरू करते ही typing की मात्रा से वह जल्दी निराश हो गया। उसके हाथ छोटे हैं, इसलिए touch typing सीखना मुश्किल है, और variable names तथा method calls टाइप करने में बहुत समय लगता है
यह एकदम सही संतुलन जैसा लग रहा है, इसलिए इसे देखने वाला हूँ
मैं अपने 3 साल के बच्चे के साथ बहुत हल्की Python class कर रहा हूँ, और समझ नहीं आता था कि उसकी समझ के मुकाबले प्रगति इतनी धीमी क्यों है। अब समझ आया कि parentheses और quotes जैसी चीज़ें टाइप करने में ही बहुत समय लग रहा था
यह project मुझे पसंद आया, और इसे आज़माने का इंतज़ार है। बच्चों की programming के मामले में मेरा झुकाव अब जितनी ज़्यादा, उतना अच्छा की तरफ़ हो रहा है। कई languages और workflows में से चुनने वाली dynamics से उन्हें परिचित कराना अच्छा हो सकता है
लेकिन जब मैं उसे “real” programming language दिखाता हूँ, तो वह कहता है कि यह सब Scratch में भी किया जा सकता है और इतना typing करने की कोई ज़रूरत नहीं
हमने GameMaker भी साथ में आज़माया और अच्छे नतीजे बनाए, लेकिन जैसे ही मैं थोड़ी देर के लिए मुड़ता हूँ, वह फिर अपने Scratch project पर लौट जाता है। कभी-कभी सोचता हूँ कि क्या मेरे पुराने दिनों की तरह शुरू से code से शुरू करना बेहतर होता ;-)
फिर भी, सिर्फ़ समस्या की तरफ़ इशारा करके और पूछकर कि इसके बारे में क्या किया जा सकता है, बच्चा उस समस्या पर सोचना शुरू कर देता है और Scratch के भीतर संभव अलग-अलग तरीके ढूँढ लेता है। उदाहरण के लिए program को कई objects या agents में बाँटना
Scratch, first impression या पहले program से जो संकेत मिलता है, उससे कहीं ज़्यादा शक्तिशाली है
varऔरconstजैसी चीज़ें हैंPickcode launch के लिए बधाई। details का polish अच्छा है, और साफ़ दिखता है कि इसे ध्यान से बनाया गया है
मेरे हिसाब से non-developers के लिए programming को ज़्यादा accessible बनाने वाली visual programming में कम से कम दो धाराएँ हैं
कुछ प्रयास visual interface के ज़रिए syntax सीखने का बोझ कम करते हैं, लेकिन imperative nature या algorithmic thinking की ज़रूरत को छिपाते नहीं। असल में इन्हें अलग accessibility level वाले IDE की तरह देखा जा सकता है, और मेरे विचार से Pickcode और Scratch इसी श्रेणी में आते हैं
दूसरी धारा ऐसे अलग programming paradigms की खोज करती है जो visual metaphor के साथ कुछ हद तक अच्छी तरह मेल खाते हैं। यह users को भी imperative programming से अलग सोचने के लिए प्रेरित करती है। Node-RED flow-based programming की खोज का अच्छा उदाहरण है, जो functional reactive programming का क़रीबी रिश्तेदार है। LabVIEW भी dataflow-based क़रीबी रिश्तेदार है, बस उसमें थोड़ा ज़्यादा जादुईपन है। असल में यह काफ़ी smart defaults और internal variable naming है। Apple Automator भी याद आता है
मैं यह नहीं कहूँगा कि कोई एक तरीका ज़रूर बेहतर या बदतर है, लेकिन visual languages को देखते समय imperative और reactive के बीच का अंतर सोचना उपयोगी है, क्योंकि इससे end-user experience में बड़ा फ़र्क पड़ता है
“कोड एडिटिंग का अनुभव पूरी तरह structured है, और typing की जगह menu से चयन किया जाता है” — यह बात बहुत शानदार है
काश वयस्क programmers के लिए भी ऐसा कुछ होता, यानी एक general-purpose structural editor जिसे कई programming languages के साथ इस्तेमाल किया जा सके। Programming करते समय जो इरादा सबसे पहले दिमाग में आता है, वह semantic होता है। जैसे यहाँ function define करना है, वहाँ condition check करनी है
तो फिर यह समझ नहीं आता कि उस semantic intent को सीधे editor तक क्यों न पहुँचाया जाए। पहले उस इरादे को string में serialize क्यों किया जाए, और फिर editor उसे दोबारा ऐसे parse करे जहाँ गलती होने की संभावना ज़्यादा हो। टाइपो, parentheses mismatch, operator precedence errors जैसी बेवकूफ़ी भरी syntax errors के लिए जगह बनती है; बेहतर तो यह होगा कि सिर्फ semantic errors ही बचें
ऐसा editor ज़रूरी नहीं कि keyboard के लिए unfriendly ही हो। यह कुछ वैसा हो सकता है जैसे Excel keyboard के लिए unfriendly नहीं है। शायद East Asian language input methods की तरह “composition window” में input लेकर “candidate window” से चुनकर insert करने के तरीके से भी यह काम कर सकता है
मेरी समझ में इस मामले की बड़ी समस्या यह है कि आप यह constraint लगाना चाहते हैं कि code जिन भी intermediate states से गुज़रे, वे सभी semantically valid हों। ऊपर से यह आकर्षक लगता है, लेकिन व्यवहार में यह घातक constraint बन जाता है। बहुत प्रतिभाशाली लोग भी पहले थोड़ा ढीला-ढाला सोचते हैं और बाद में code ठीक करते हैं, यहाँ तक कि एक-एक line के स्तर पर भी। हर समय 100% valid रहने की मजबूरी इंसानी सोच के असली तरीके से काफ़ी अलग है
मैं इस mismatch को बुनियादी मानता हूँ। पता नहीं कितने लोग वास्तव में इस तरह सोचते हैं। पेशेवर गणितज्ञ भी, ऐसा सुना है, असली काम में पहले आगे निकलकर सोचते हैं और बाद में rigor भरते हैं। अगर वे भी हर कदम पर सख़्ती से आगे नहीं बढ़ते, तो फिर कौन बढ़ता होगा
Programming ने आखिरकार semantic-aware autocomplete और suggestions पर ठिकाना पाया है, और यह सिर्फ आलस का नतीजा नहीं बल्कि शायद असली optimum है
हो सकता है कोई इसे अंत तक ले जाकर समस्या सुलझा दे, लेकिन अगर यहाँ कोई फल लटका भी है, तो वह low-hanging fruit नहीं है
जैसा saurik ने कहा, Emacs इस्तेमाल करने वाली Lisp दुनिया शायद इसके सबसे करीब आती है, लेकिन वहाँ भी आप जो चाहें कर सकते हैं। बस ऐसे tools ज़्यादा हैं जो आपको semantic तरीके से काम करने में मदद करते हैं; कुछ भी पूर्णतः enforce नहीं होता
मुझे नौकरी इसलिए मिली क्योंकि मैं उस software का नाम सुनने वाला इकलौता applicant था। वजह बस इतनी थी कि मैंने किसी magazine में उसके बारे में एक छोटा-सा लेख पढ़ लिया था
https://en.wikipedia.org/wiki/Omnis_Studio
dropdown lists और popups पर click करके programming करने का उसका तरीका बहुत अच्छी तरह design नहीं किया गया था। Program किसी list जैसा दिखता था, और जब आप एक line edit करना चाहते, तो एक modal dialog खुलता था जिसमें सिर्फ वही एक line बदली जा सकती थी। IntelliSense या code completion तो थे ही नहीं
यह सोचकर ही PTSD जैसा महसूस होने लगता है; लगता है शराब या सिगरेट की ज़रूरत पड़ जाएगी
Scratch की मेरी सबसे पसंदीदा खूबियों में से एक यह है कि इसमें syntax error बनाई ही नहीं जा सकती। Blocks या तो फिट होते हैं, या नहीं होते। इसलिए बच्चों के लिए बिना अलग से समझाए या tutoring के भी जल्दी शुरू करना और खेलना आसान हो जाता है
मैंने rectangle tutorial के शुरुआती कुछ steps follow करने के बाद इधर-उधर click करके खुद आज़माया, और
call math paint.forward()बन गया जिससे syntax error आ गई। जाहिर है वह line बेकार है, लेकिन मैं यह समझ ही नहीं पाया किmathcommand को कैसे काम करना चाहिए। आगे tutorial में शायद यह समझाया जाता हो, लेकिन मेरे हिसाब से discoverability भी महत्वपूर्ण हैBlocks ज़्यादा हो जाएँ तो वे एक-दूसरे के ऊपर भी चढ़ सकते हैं, जिससे समस्या ढूँढना काफ़ी मुश्किल हो जाता है। Block arguments छूट जाने की दिक्कत भी होती है। तब भी program चल जाता है, लेकिन काम नहीं करता
Visual programming बच्चों के लिए निश्चित रूप से बेहतर है, लेकिन मुझे लगता है कि Scratch से भी ज़्यादा सख़्त approach और बेहतर debugging capability की ज़रूरत है
यह सच में बहुत अच्छा दिखता है। Khan Academy में ProcessingJS editor का block-based version बनाया जा रहा था, उसकी याद आ गई
UI थोड़ा भद्दा था और maintain करना मुश्किल था, इसलिए आखिरकार उसे छोड़ दिया गया, लेकिन यह काफ़ी smooth लग रहा है। यह बात अच्छी लगी कि यह नए programmers को typed programming की ओर आने के और रास्ते देता है। मुझे यह भी लगता है कि ज़्यादातर block coding असली code से बहुत दूर चली जाती है
कभी-कभी ऐसे block-based editors को type checking के साथ जोड़ दिया जाता है, ताकि “holes” को समझदारी से query-based तरीके से भरा जा सके। शायद यह Agda जैसी pure functional languages के editors में सबसे साफ़ दिखाई देता है
ZX81 का BASIC याद आ गया। कीवर्ड टाइप नहीं करने पड़ते थे; खास कीबोर्ड पर हर कीवर्ड के लिए एक key होती थी
एडिटर context-sensitive था, या दूसरे शब्दों में कहें तो parser-चालित lexical analyzer खुद user ही था। उस समय यह थोड़ा जादू जैसा लगता था कि यह समझ लेता था कि आप शब्द/संख्या डालना चाहते हैं या कीवर्ड, और किस तरह का कीवर्ड। सच तो यह है कि शैक्षिक रूप से अहम बात यह थी कि मुझे यह पता था
ZX81 में महत्वपूर्ण बात यह थी कि text representation की जगह token store करके memory बचाई जाती थी। RAM 1KB थी, और उसी में display memory भी शामिल थी। अलग GPU भी नहीं था। input के समय parsing होने की वजह से execution भी शायद तेज़ होता होगा
साइट बहुत अच्छी तरह polished है, लेकिन मैं इसके लक्ष्य से पूरी तरह सहमत नहीं हूँ। यह एक प्रभावशाली IDE है, लेकिन नई भाषा की बजाय शायद Python के subset पर ध्यान देना बेहतर होता
नहीं तो इसे इस वजह से नज़रअंदाज़ किया जा सकता है कि Scratch सिखाना आसान है, और Python सीखना ज़्यादा उपयोगी। पहला उन स्कूलों पर लागू होता है जहाँ developer-teacher हैं, और दूसरा उन programmer parents पर जो अपने बच्चों को सिखाते हैं
एक software developer के रूप में मैंने अपनी पत्नी की elementary school/kindergarten programming classes में मदद की है, इसलिए इस क्षेत्र की समस्याओं के बारे में कुछ हद तक जानता हूँ
संबंधित पोस्ट:
Show HN: Pickcode – A new way to introduce programming to kids - https://news.ycombinator.com/item?id=33562193 - नवंबर 2022, 14 comments
Show HN: PickCode – An educational coding environment for students after Scratch - https://news.ycombinator.com/item?id=32230329 - जुलाई 2022, 32 comments
Show HN: Pickcode – A graphical code editor for education - https://news.ycombinator.com/item?id=31426331 - मई 2022, 4 comments
दोबारा पोस्ट करना लगभग एक साल बाद ठीक है, और पिछली thread links उन पाठकों के लिए हैं जो और जानना चाहते हैं
मैं music programming की दिशा में मिलता-जुलता कॉन्सेप्ट बना रहा हूँ:
https://glicol.org
अच्छा होगा अगर landing page पर सीधे कुछ examples हों
इसे आज़माते समय मैं अटक गया, और hint दाईं तरफ है, लेकिन बहुत नज़र नहीं आती। शायद इसे Svelte Tutorial(https://learn.svelte.dev/tutorial/welcome-to-svelte) की तरह rearrange किया जा सकता है
syntax को लेकर भरोसा नहीं है। सोच रहा हूँ कि क्या आपने LOGO इस्तेमाल करने पर भी विचार किया था