پروگرامنگ بچوں کو پروگرامنگ کی تعلیم

جیسبادی

محفلین
بچوں کو پروگرامنگ کی تعلیم

‫اس امر سے انکار ممکن نہیں کہ بچوں کو پروگرامنگ سے روشناش کرانا تعلیم کا اہم حصہ ہے۔ بحث اس پر ہوتی ہے کہ اس کا صحیح طریقہ کیا ہے۔ یا سوال کیا جاتا ہے کہ کونسی پروگرامنگ زبان ایسی خصوصیات کی حامل ہے، جو ایسے طلباء کیلئے موزوں ہو جن بچوں کی عمر دس بارہ سال کے لگ بھگ ہو۔ یہ سوال اکثر فورموں پر اٹھایا جاتا ہے۔ "شلیش ڈاٹ" پر بھی کئی دفعہ بحث ہو چکی ہے۔ کچھ لوگ logo کا نام لیتے ہیں۔ کچھ basic کا۔ مائیکروسافٹ کے پجاری "ویزول بیسک" کا۔ کچھ "جاوا" کا ذکر بھی کرتے ہیں۔ بچوں کیلئے خاص زبانیں بنانے کا تجربہ بھی کیا گیا ہے۔ اس سوال کا مجھے بھی سامنا ہؤا۔ میرا خیال تھا کہ سائیلیب scilab اس کے لیے موزوں ہو گی۔ بچے اسے کیلکولیٹر کے طور پر سیکھنا شروع کریں گے، اور آہستہ آہستہ پروگرامنگ کے بنیادی قوائد سے واقف ہو جائیں گے۔ مگر عملی طور پر یہ میری خام خیالی ثابت ہوئی۔ ایک تو سب بچوں کو ریاضی سے اتنا شغف نہیں ہوتا، اور پھر اس میں کیا سوال حل کیا جائے جو چھوٹے بچوں کے کام کا ہو۔ اس معمےکا حل مجھ پر اس وقت واضح ہؤا، جب میں نے یہ جانا کہ بچے کمپوٹر کو ویب براؤزر کے ذریعہ جانتے ہیں۔ اس لیے پروگرامنگ کا انٹرفیس بھی ویب براؤزر ہی ہونا چاہیے۔ "ڈیٹا" لینے کیلئے ح‌‌ٹ‌م‌ل"فارم" کا استعمال کیا جا سکتا ہے۔ فارم میں "ٹیکست باکس"، "ریڈیو بٹن"، input fields وغیرہ استعمال کی جا سکتی ہیں۔ اب پروگرامنگ زبان کا سوال رہ جاتا ہے۔ اس کیلئے میں نے PHP کا انتخاب کیا ہے، جو server side پروگرامنگ کیلئے استعمال ہوتی ہے، اور ایک سکرپٹنگ زبان ہے۔ اس کام کو چلانے کیلئے آپ کو ویب سرور apache اور php کا ماڈیول چاہیے ہوتے ہیں۔ یہ سب چیزیں لینکس پر تو پہلے ہی نصب ہوتی ہیں۔ آپ نے LAMP کا لفظ سنا ہو گا:‬
LAMP = Linux + Apache + mySQL + PHP/perl/Python
‫ونڈوز پر بھی آپ تنصیب کر سکتے ہو۔
چلو ایک سادہ سے پروگرام پر نظر ڈالتے ہیں۔ ایک HTML فائل بنا کر اسے محفوظ کر لو:‬

کوڈ:
‪...... HTML file ..........
<h2> Questions  for You!</h2>
<form 
method="post" 
action="myAct.php">

What is your name? 
<input  type="text"   
name="myName"   
value="">


How old are you?
<input  type="text"
      name="myAge"
      value="">


<input type="submit">
</form>‬

‫یہ ایک html فائل ہے، جس میں ایک فارم ہے، "سبمٹ" بٹن کے ساتھ۔ دو خانے ہیں، جس میں نام اور عمر کا اندراج کیا جا سکتا ہے۔ آپ اپنے localhost سرور کے پتے پر اس فائل کو اپنے براؤزر میں کھول سکتے ہو۔ جب submit کا بٹن دبایا جاتا ہے، تو یہ myAct.php فائل کو چلاتا ہے۔ اب ہم اس myAct.php فائل میں اپنا پروگرام لکھتے ہیں:‬

کوڈ:
‪..... myAct.php .....
<h2> Hello me! </h2>
<?
print "Your name is $myName. 
";

print "And you are $myAge years old.
";

if ($myAge<13)
{
print "You are a kid! 
";
}
else
{
print "You are a teen or an adult. 
";
}

?>‬

‫ دیکھو کہ پ‌ح‌پ پروگرام خاص ٹیگز ‭<? ?>‬ کے درمیان لکھا گیا ہے۔ یہ سادہ سا پروگرام، نام اور عمر پرنٹ print کر دیتا ہے، اور عمر کی بنیاد پر ایک فیصلہ کرتا ہے, if کے ذریعہ ۔ متغیر variables کے استعمال کا بھی پتہ چلتا ہے، جو اس پروگرام کو ح‌ٹ‌م‌ل فارم سے ملتے ہیں۔‬

‫PHP کے ٹیٹوریل ویب پر موجود ہیں۔ آسانی کیلئے یہ: ‎/etc/apache/php.ini میں registers_globals کو on کر لینا بہتر ہے، ورنہ متغیر کو پکڑنا مشکل ہو جاتا ہے۔‬
 

امانت علی

محفلین
میں آپ کی اس بات سے متفق نہیں کہ بچوں کو پی ایچ پی سکھانے سے ان کی پروگرامنگ کی صلاحیتوں کو بڑھوتری دینی چاہئے۔
اس کا سب سے بڑا نقصان یہ ہے کہ بچے ویب ایپلی کیشنز اور آپریٹںگ سسٹم ایپلی کیشنز کو سمجھنے میں مشکلات کا شکار ہوجاتے ہیں۔
یہ بات میرے ذاتی تجربے میں آچکی ہے کہ جاوا سیکھنا بچوں کے لئے کسی بھی دوسری زبان کے مقابلے میں زیادہ سہل ہے۔
 

جیسبادی

محفلین
امانت، میرا نشانہ تو دس بارہ سال کی عمر کے بچے تھے۔ اور سیکھانے کا مطلب، صرف variables, functions, بنیادی قوائد ,...if, for, while سے روشناش کرانا ہے۔ اور جس paradigm چیز سے بچے صارف کے طور پر واقف ہوں، اسی کو ذریعہ تعلیم بنانا عقلمندی ہے۔
آپ غالباً کالج کے معیار کے طالب علموں کی بات کر رہے ہو۔ وہاں تو آپ کمپوٹر سائینس کے موجودہ سوچ کے مطابق پڑھا سکتے ہو۔
 

امانت علی

محفلین
جی نہیں، میں بھی اتنے ہی چھوٹے بچوں کی بات کررہا ہوں۔ بچوں کے لئے جاوا سیکھنا بے حد آسان ہے کسی بھی دوسری لینگویج کے مقابلے میں۔ خاص طور پر سی سی پلس پلس کے مقابلے میں۔
اس کے علاوہ پی ایچ پی کے مقابلے میں جاوا کے بارے میں لرننگ ٹولز بھی آسانی سے مل جاتے ہیں۔
لیکن سب سے اہم بات تو پھر بھی وہی ہے کہ ویب ایپلی کیشنز اور ونڈوز ایپلی کیشنز میں واضح فرق ہوتا ہے اور پی ایچ پی یہ فرق مٹا دیتی ہے۔
 

الف عین

لائبریرین
لیکن پروگرامنگ لنگوئیج ہی کیوں۔ میرا تجربہ ہے کہ بچے ہی کیا بڑے بھی یعنی گریجوئیٹ لیول کے طلباء بھی جب یہ سوچتے ہیں کہ "کمپیوٹر "سیکھنا ہے، تو لوگ محض پروگرامنگ لنگوئیج کی ہی بات کرتے ہیں۔ اور یہ لوگ سی شارپ اور ویجوال بیسک سیکھ کر بھی ایک فائل تک ایک فولڈر سے دوسرے فولڈر میں کاپی نہیں کر سکتے۔
میری بھانجی کے سکول میں ان کے والد ہی سکول کی کمیٹی میں ہیں اور قوہاں بھی یہی سوال اٹھا اور مجھ سے مشور پوچھا گیا تو میں نے تو یہی صلاح دی کہ پہلے بیسک کمپیوٹنگ تو سیکھیں۔ پروگرامنگ کی کیا ضرورت پڑ سکتی ہے۔ جب کیرئر بنانے کا سوچیں اس میدان میں تب بھلے ہی سیکھیں۔ کم از کم وندوز کا بیسک تو انھیں بتایا جائے اور لینکس سے بھی متعارف کر دیا جائے۔ لوگ لینکس بھی کمپیوٹر انسٹی ٹیوٹ سے سیکھ کر آتے ہیں اور انھیں وِم کے علاوہ کچھ معلوم نہیں ہوتا۔ کے ڈی ای کا نام بھی ایک ایسے ایکسپرٹ کو نہیں معلوم تھا اور نہ اوبنٹو کا ذکر انھوں نے سن رکھا تھا، صرف ریڈ ہیٹ کے نبام سے واقف تھے اور اسی کو کمانڈ موڈ میں لینکس کے نام سے جانتے تھے۔ تو اس صورتِ حال میں بہتر تو یہی ہوگا کہ ابھی سے کیا انھیں پروگرامنگ سکھائی جائے۔
 

جیسبادی

محفلین
امانت، اگر آپ ذرا تفصیل سے اپنا جاوا سیکھانے کا تجربہ بتانا پسند کرو کہ آپ کیا طریقہ استعمال کرتے ہو۔ کیا کسی ادارے یا سکول میں، یا شوقیہ۔ کیا بچے اس مقصد کیلئے سکول میں داخل ہوتے ہیں، یعنی captive audience یا بچے خود اس میں کام کرنے کا شوق ظاہر کرتے ہیں۔
 

جیسبادی

محفلین
اعجاز، آپ کی بات بھی درست ہے۔ مگر پروگرامنگ سیکھانے کا مقصد یہاں ریاضی logic سے روشناس کرانا ہے۔ پروگرام چلنے پر لاجک کی غلطیاں فوراً پکڑی جاتی ہیں، جس سے سوچنے اور سلجھانے کی مشق ہوتی ہے۔
 

فریب

محفلین
جیسبادی آپ اس کو جاری رکھو اس سے بچوں کے ساتھ بہت سے بڑوں کا بھی فائدہ ہو سکتا ہے۔۔۔۔۔
 

جیسبادی

محفلین
ح‌ٹ‌م‌ل ایڈیٹر کی وجہ سے ابتدائی پیغام میں code اس طرح نظر نہیں آ رہا جس طرح آنا چاہیے تھا۔ اصل حالت میں اس پیغام کی نقل یہاں دیکھی جا سکتی ہے۔
 
خاکم بدہن

Amanat نے کہا:
جی نہیں، میں بھی اتنے ہی چھوٹے بچوں کی بات کررہا ہوں۔ بچوں کے لئے جاوا سیکھنا بے حد آسان ہے کسی بھی دوسری لینگویج کے مقابلے میں۔ خاص طور پر سی سی پلس پلس کے مقابلے میں۔
اس کے علاوہ پی ایچ پی کے مقابلے میں جاوا کے بارے میں لرننگ ٹولز بھی آسانی سے مل جاتے ہیں۔
لیکن سب سے اہم بات تو پھر بھی وہی ہے کہ ویب ایپلی کیشنز اور ونڈوز ایپلی کیشنز میں واضح فرق ہوتا ہے اور پی ایچ پی یہ فرق مٹا دیتی ہے۔


امانت بھائی: آپ میرے بزرگ اور انتہائی محترم ہستی ہیں۔ آپ سے اختلاف کرنا نامناسب لگتا ہے مگر (خاکم بدہن) آپ نے یہ کیسے کہہ دیا کہ جاوا سیکھنا بچوں کے لیے آسان ہے۔ قبلہ جس لینگویج کا اوّلین پروگرام بھی OOP یعنی Object Oriented Programming سمجھنے کا محتاج ہو اس کو آپ بچوں کے لیے سہل کہہ رہے ہیں یہ بات میری سمجھ سے بالاتر ہے۔

جیسبادی: آپ کا ٹیوٹوریل نہ صرف بچوں بلکہ بڑوں کے لیے بھی مفید ہے۔
 

نبیل

تکنیکی معاون
شارق، میرے خیال میں oop اتنی بھی مشکل نہیں ہے اور میرے خیال میں پروگرامنگ سیکھنے کی ابتدا object orientation سے ہی کی جائے تو یہ آسان ہی رہتی ہے۔ مسئلہ ان لوگوں کو زیادہ ہوتا ہے جو سالہا سال سے procedural programming کر رہے ہوتے ہیں اور یکایک آبجیکٹ اوریئنٹیشن کو دیکھ کر مخمصے میں پڑ جاتے ہیں۔

میرے خیال میں اب وقت آ گیا ہے کہ یہاں اردو میں پروگرامنگ کے آسان ٹیوٹوریل شروع کیے جائیں۔
 

جیسبادی

محفلین
مجھے شارق سے اتفاق ہے۔ بلکہ میں تو یہ کہوں گا کہ object تو کجا، typed variables بھی اتنے چھوٹے بچوں کیلئے ایک غیر ضروری درد سر ہے۔ پہلا مقصد تو صرف پروگرامنگ کے بنیادی constructs سیکھانا ہے اور تھوڑی بہت debugging سیکھانا ہے۔ اس کے لیے سکرپٹنگ زبان کا انتخاب صحیح ہے۔ اب آپ میٹلیب کو لو، سارے سائینسدان اور انجینیر اس میں بغیر typed متغیر کے خاصے پچیددہ سوال حل کرتے ہیں۔

اصل بات یہ ہے کہ آلات کا چناؤ مسلئے کی نوعیت کے مطابق ہی کیا جاتا ہے۔ جاوا اور oops بڑے مسائل حل کرنے کیلئے مفید ہے۔ میٹلیب میں بھی بڑے مسائل کیلئے classes استعمال کی جاتی ہیں۔
 
جیسبادی سلسلہ رک گیا ہے کچھ، ویسے بنیادی چیزوں میں Constants بھی تو آئیں گے جو اردو میں شاید ساکنات کہلائیں۔
 

قیصرانی

لائبریرین
جیسبادی بھائی، ایک بات جو میرے ذہن میں آتی ہے، وہ یہ کہ پروگرامنگ لینگوئج سیکھنا یا سکھانا دور کی بات ہے، ایک جنرل سی آؤٹ لائن ہونا لازمی ہے۔ یعنی بچوں کو کیا سکھایا جائے گا۔
میں نے میٹرک سے ماسٹرز لیول تک پروگرامنگ سکھائی ہے۔ لیکن ہمارے ہاں بچوں کو پروگرامنگ سکھلا دی جاتی ہے۔
مثلاً انہیں لوپ کا پتہ ہے، لیکن اس کو عملی زندگی کے کسی پروگرام میں کیسے استعمال کرنا ہے، یا دیگر کاموں کو کتاب سے ہٹ کر کیسے استعمال کرنا ہے، کوئی نہیں جانتا۔ گریجوائشن میں جب ایک لڑکیوں کے گروپ نے مجھ سے ایک بات سوال کیا کہ سر یہ سی پلس پلس پڑھ کر ہم نے کیا کمال کیا ہے۔ ایک عام سی گرافکس کی فائل تک تو ہمیں بنانی نہیں آتی، فائلنگ کو کورس کی حد تک پڑھا ہے لیکن ابھی تک کوئی فائل کھل نہیں سکی نہ کوئی فائل بنا سکے ہیں۔
اس دن کے بعد سے میں نے بحیثیت پرنسپل، اپنے اختیارات کو استعمال کر کے اضافی وقت کی کلاس بنا کر ہر طالبعلم اور طالبہ کو کچھ نہ کچھ گرافکس کی پروگرامنگ سکھلا دی۔
نتیجہ یہ نکلا کہ جو سٹوڈنٹس پہلے مر مر کر کلاس لیتے تھے، ابھی رات گئے تک کمپیوٹر لیب میں مصروف ہوتے تھے۔
تو جب تک پروگرامنگ کا مقصد اور دلچپسی کو مدٍ نظر نہ رکھا جائے، انہیں کچھ سکھلانا، پروگرامنگ سے انہیں‌ بھگانے کے مترادف ہے
قیصرانی
 

الکبیر

محفلین
جیسبادی بھائی، ایک بات جو میرے ذہن میں آتی ہے، وہ یہ کہ پروگرامنگ لینگوئج سیکھنا یا سکھانا دور کی بات ہے، ایک جنرل سی آؤٹ لائن ہونا لازمی ہے۔ یعنی بچوں کو کیا سکھایا جائے گا۔
میں نے میٹرک سے ماسٹرز لیول تک پروگرامنگ سکھائی ہے۔ لیکن ہمارے ہاں بچوں کو پروگرامنگ سکھلا دی جاتی ہے۔
مثلاً انہیں لوپ کا پتہ ہے، لیکن اس کو عملی زندگی کے کسی پروگرام میں کیسے استعمال کرنا ہے، یا دیگر کاموں کو کتاب سے ہٹ کر کیسے استعمال کرنا ہے، کوئی نہیں جانتا۔ گریجوائشن میں جب ایک لڑکیوں کے گروپ نے مجھ سے ایک بات سوال کیا کہ سر یہ سی پلس پلس پڑھ کر ہم نے کیا کمال کیا ہے۔ ایک عام سی گرافکس کی فائل تک تو ہمیں بنانی نہیں آتی، فائلنگ کو کورس کی حد تک پڑھا ہے لیکن ابھی تک کوئی فائل کھل نہیں سکی نہ کوئی فائل بنا سکے ہیں۔
اس دن کے بعد سے میں نے بحیثیت پرنسپل، اپنے اختیارات کو استعمال کر کے اضافی وقت کی کلاس بنا کر ہر طالبعلم اور طالبہ کو کچھ نہ کچھ گرافکس کی پروگرامنگ سکھلا دی۔
نتیجہ یہ نکلا کہ جو سٹوڈنٹس پہلے مر مر کر کلاس لیتے تھے، ابھی رات گئے تک کمپیوٹر لیب میں مصروف ہوتے تھے۔
تو جب تک پروگرامنگ کا مقصد اور دلچپسی کو مدٍ نظر نہ رکھا جائے، انہیں کچھ سکھلانا، پروگرامنگ سے انہیں‌ بھگانے کے مترادف ہے
قیصرانی

آداب،
میں عرصہ گیارہ سال سے گرافک ڈیزئننگ سے منسلک ہوں اور میں سمجھتا ہوں کہ گرافکس کو اگر آغاز میں سکھایا جائے تو کیا بچے اور کیا بڑے،، سب شوق سے سیکھیں گے،،، ابتدا میں انہیں اپنے نام، اردو انگریزی حروف اور ڈرائنگ وغیرہ بنناانی اور اس میں رنگ بھرنے سکھائیں جائیں تو نتیجہ اچھا نکلتا ہے۔۔۔ اس کے لئے عام گھریلو کمپیوٹر پر ونڈوز کا فوٹوپینٹ پروگرام بھی استعمال کیا جا سکتا ہے،،، بغیر ضرورت وہی چیز کوئی سیکھنا چاہے گا جو دلچسپ ہو گی،،،،،، ابتدا سے ہی میں لینگویج کے حق میں نہیں،،،،، یہ میری ذاتی رائے ہے جس سے اختلاف کیا جا سکتا ہے۔
 

فخرنوید

محفلین
میں جس سکول میں کام کر رہا ہوں۔ ما شاللہ اس سکول نے میٹرک میں 2009 کےبوروڈ کے امتحانات میں 5 پوزیشنیں لی ہیں۔

ہمارے سکول میں بچوں کو پہلی کلاس سے ہی کمپیوٹر ٹیکنالوجی کی تربیت دی جا رہی ہے۔

پہلے سال میں بچوں کو ماوس اور کی بورڈ کی تربیت دی جاتی ہے۔ کمپیوٹر کیسے چلانا ہے کیسے بند کر نا ہے۔

اس کے بعد دوسرے سال میں سابقہ مواد شامل کر کے کمپیوٹر میں شامل چیزوں پر توجہ دی جاتی ہے ۔ اس کے پارٹس اور اسیسر یز کے متعلق

تیسرے سال میں مائکروسافٹ ورڈ وغیرہ

چوتھے سال میں مائیکروسافٹ ورڈ ایڈوانس اور مائکروسافٹ ایکسل کی تربیت

پانچویں سال میں مائیکروسافٹ ایکسل اور پاور پوائینٹ وغیرہ

چھٹے سال میں بچوں کو ایڈوب ڈریم ویور کے زریعے ایچ ٹی ایم ایل ۔۔۔۔ اور ایڈوب فوٹو شاپ سکھائی جا رہی ہے۔

ساتویں سال میں بچوں کو ایچ ٹی ایم ایل ۔۔۔۔ اور ایڈوب فوٹو شاپ کی مزید تعلیم دی جاتی ہے۔

اس کے بعد ہم نوین اور دسویں جماعت کا سلیبس حکومت پنجاب کا منظور کردہ ہی صرف پڑھاتے ہیں۔
 

الکبیر

محفلین
میں جس سکول میں کام کر رہا ہوں۔ ما شاللہ اس سکول نے میٹرک میں 2009 کےبوروڈ کے امتحانات میں 5 پوزیشنیں لی ہیں۔

ہمارے سکول میں بچوں کو پہلی کلاس سے ہی کمپیوٹر ٹیکنالوجی کی تربیت دی جا رہی ہے۔

پہلے سال میں بچوں کو ماوس اور کی بورڈ کی تربیت دی جاتی ہے۔ کمپیوٹر کیسے چلانا ہے کیسے بند کر نا ہے۔

اس کے بعد دوسرے سال میں سابقہ مواد شامل کر کے کمپیوٹر میں شامل چیزوں پر توجہ دی جاتی ہے ۔ اس کے پارٹس اور اسیسر یز کے متعلق

تیسرے سال میں مائکروسافٹ ورڈ وغیرہ

چوتھے سال میں مائیکروسافٹ ورڈ ایڈوانس اور مائکروسافٹ ایکسل کی تربیت

پانچویں سال میں مائیکروسافٹ ایکسل اور پاور پوائینٹ وغیرہ

چھٹے سال میں بچوں کو ایڈوب ڈریم ویور کے زریعے ایچ ٹی ایم ایل ۔۔۔۔ اور ایڈوب فوٹو شاپ سکھائی جا رہی ہے۔

ساتویں سال میں بچوں کو ایچ ٹی ایم ایل ۔۔۔۔ اور ایڈوب فوٹو شاپ کی مزید تعلیم دی جاتی ہے۔

اس کے بعد ہم نوین اور دسویں جماعت کا سلیبس حکومت پنجاب کا منظور کردہ ہی صرف پڑھاتے ہیں۔

بہت خوب،،، دل خوش ہوا یہ پڑھ کے،،،!
 

دوست

محفلین
یہ مائیکروسافٹ کا سن کر دل خوش ہوا۔ دنیا میں صرف مائیکروسافٹ ہی کے تو سافٹویر ہیں۔
 

جیسبادی

محفلین
کلرکی کا نصاب معلوم ہوتا ہے۔ شاید لارڈ میکالے نے ہی تجویز کیا ہو:

http://en.wikipedia.org/wiki/Thomas_Babington_Macaulay,_1st_Baron_Macaulay

It is impossible for us, with our limited means, to attempt to educate the body of the people. We must at present do our best to form a class who may be interpreters between us and the millions whom we govern; a class of persons, Indian in blood and colour, but English in taste, in opinions, in morals, and in intellect. To that class we may leave it to refine the vernacular dialects of the country, to enrich those dialects with terms of science borrowed from the Western nomenclature, and to render them by degrees fit vehicles for conveying knowledge to the great mass of the population.
 
Top