খেলাচ্ছলে প্রোগ্রামিং

image_print

 

sayaminduগবেষণায় অবাধ স্বাধীনতা যে কোনো গবেষকের কাছে হাতে চাঁদ পাওয়ার মত। কিছু গবেষণাগার আছে যেখানে এই স্বপ্নের খুব কাছাকাছি পৌঁছনো যায়। MIT মিডিয়া ল্যাব তার মধ্যে অন্যতম। নিজের আইডিয়ার পিছনে বিনা বাধায় লেগে থাকতে পারলে কোথায় পৌঁছনো যায়, এই মিডিয়া ল্যাব তারই নিদর্শন। প্রস্থেটিক পা থেকে শুরু আকার পরিবর্তনক্ষম টেবিল, রোবোটিক অপেরা থেকে থালাবাটির কীবোর্ড — এখানে কিছুক্ষণ কাটালে কল্পবিজ্ঞান আর বাস্তবের মধ্যে তফাৎ করা কঠিন হয়ে যায়। এই মিডিয়া ল্যাবের সায়মিন্দু দাশগুপ্তর সাথে আমরা এক আলোচনায় বসলাম। সেই আলোচনায় কিছু ইতিহাস উঠে এলো, জানলাম মিডিয়া ল্যাবের কিছু বর্তমান প্রজেক্টের কথা। আজকের গল্প একটা বিশেষ প্রজেক্টকে নিয়ে, যা আমাদের শিক্ষাব্যবস্থা সম্বন্ধে ধারণা আমূল পাল্টে দেবে। লিখেছে অনির্বাণ গঙ্গোপাধ্যায়

 

টা নিঃসন্দেহে সত্যি যে জেনারেশন ওয়াই কম্পিউটার নিয়ে নাড়াচাড়া করাতে তার আগের প্রজন্মের থেকে অনেক বেশি স্বচ্ছন্দ বোধ করে এবং পরবর্তী প্রজন্ম আরো অল্প বয়েসে তুখোড় হয়ে উঠবে নিশ্চিতরূপে। কিন্তু তুখোড় হওয়া মানে কি? তারা পটাপট ইন্টারনেট ঘেঁটে যেকোনো তথ্য বার করে দিতে পারবে, রকমারি অ্যাপ ব্যবহার করে অনেক নিত্যনৈমিত্তিক ঝঞ্ঝাট থেকে নিষ্কৃতি পাবে। কিন্তু তার বাইরে, যদি রেডিমেড সমাধান না খুঁজে নিজে থেকে একটা প্রোগ্রাম অথবা অ্যাপ বানাতে বলা হয় তাহলে ক’জন বলতে পারবেন — কুছ পরোয়া নেহি, নামিয়ে দিচ্ছি? কই, হাত তুলুন তো দেখি!

প্রোগ্রামিংয়ের জুজুর সাথে আমরা অনেকেই পরিচিত। একে তো অপরিচিত কিম্ভূত-নিয়মে-ভরা ভাষা, তায় ভাষার প্রয়োগে একচুল এদিক ওদিক হলে প্রোগ্রাম আর কাজ করবে না। কেন কাজ করছে না, তা জানানো হবে ঠিকই, কিন্তু যা জানানো হবে, তার থেকে গলদটা খুঁজে বার করতেই জান কয়লা হয়ে যাবে। স্বাভাবিকভাবেই, স্কুলের পাঠ্যক্রমে ঘাড় ধরে না শেখালে নিজে থেকে শেখার উৎসাহ পাওয়া কঠিন। MIT মিডিয়া ল্যাব এই কঠিন কাজটাকে সহজ এবং মজাদার করার এক অভিনব উপায় ভেবেছে, যার নাম স্ক্র্যাচ

চট করে দেখলে, “স্ক্র্যাচ”-কে প্রোগ্রামিংয়ের ভাষা বলে মনেই হবে না। ধরা যাক, আপনি একটা নতুন প্রোগ্রাম লিখতে শুরু করলেন। প্রথমেই পর্দায় দেখবেন একটা বেড়াল। আপনার প্রোগ্রামের উদ্দেশ্য হলো, বেড়ালটাকে দিয়ে যা খুশি তাই করানো।

scratch_cat

কেমনভাবে করানো হবে? আসলে সেখানেই মজা। হাতে মজুত কয়েকটা বিশেষ আকারের ব্লক, যেগুলো একটার গায়ে আরেকটা চাপানো যায়। যেমন, একটা ব্লক নির্দেশ দিচ্ছে, একশো পা এগোন।

move_100_steps

আরেকটা ব্লক বলছে, ৩ সেকেন্ড অপেক্ষা করুন।

wait_3_seconds

আরেকটা বলছে, ৯০ ডিগ্রী ঘুরে দাঁড়ান।

turn_90_degreess

এবার এদের একটার ঘাড়ে আরেকটাকে চাপিয়ে তাদের উপর ক্লিক করলেই বেড়ালবাবাজি একশো পা হেঁটে তিন সেকেন্ড পর রাইট টার্ন নেবে।

move_wait_turn

এবার এই তিনটে ব্লকের সমষ্টিকে আর একটা চতুর্থ হাঁ করে থাকা ব্লকের মধ্যে গুঁজে দেওয়া যায়। এই ব্লকটা বলছে, কাজটা দশবার করুন।

repeat_10_times

জিনিসটা দাঁড়াবে এইরকম। লক্ষ্য করুন, আরেকটা অপেক্ষা করার ব্লক গুঁজে দেওয়া হলো যাতে সবকটা ব্লকের প্রভাব আলাদা আলাদা করে বোঝা যায়।

repeat_move_wait_turn_wait

এবার ক্লিক করুন এতে। বেচারা বেড়াল একটা অদৃশ্য চতুষ্কোণের চারিদিকে ঘুরপাক খাবে আড়াই পাক।

বেড়ালবাবাজিকে কলুর বলদ বানিয়ে নিজের অজান্তেই কিন্তু আপনি শিখে গেছেন প্রোগ্রামারদের চেনাপরিচিত একটা কনসেপ্ট বা ধারণা — যাকে বলে “লুপ”। যার অর্থ দাঁড়ায় একই কাজের বারংবার পুনরাবৃত্তি। এক্ষেত্রে আপনি শুধু শিখছেনই না, চোখের সামনে জলজ্যান্ত দেখছেন। এবার বেড়ালের বদলে বসিয়ে দিন পছন্দসই চরিত্র (যাকে স্ক্র্যাচ টীম নাম দিয়েছে “স্প্রাইট”), তাকে ইচ্ছেমত নাচনকোঁদন করান, চান তো ব্যাকগ্রাউন্ড মিউজিক বা সিনারি জুড়ে দিন তাতে — একটা ছোটখাটো অ্যানিমেশন কিছুক্ষণের মধ্যে তৈরী।

এইবার বলুন, একজন ইস্কুলের ছাত্র এইভাবে প্রোগ্রামিং শিখতে চাইবে, না দশগন্ডা মৌলিক সংখ্যা কি ফিবোনাচি সেকুএন্সের যোগফল বার করে শিখতে চাইবে?

এই ধরণের একটা উপলব্ধি থেকেই ‘স্ক্র্যাচ’-এর জন্ম। আশির দশকে যখন পার্সোনাল কম্পিউটার বা পি.সি. এলো, তখন ভাবা হয়েছিল শিক্ষার জগতে একটা বিপ্লব আসবে। বিপ্লব হয়তো এসেছে, কিন্তু শিক্ষার জগতে নয়। আজও ভাবা হয়, প্রোগ্রামিং শেখার একটা বড় উদ্দেশ্য আখেরে সফটওয়্যার কোম্পানিতে চাকরি। প্রোগ্রামিংয়ের দ্বারা নিজেকে প্রকাশ করার সাবলীলতা বা স্বাচ্ছন্দ্য এখনো অনেকেরই হাতের বাইরে।

এর কারণ খুঁজতে গিয়ে, কয়েকটা জিনিস লক্ষ্য করা গেল।

১) প্রোগ্রামিংয়ের ভাষায় দুর্বোধ্য নিয়মের কড়াকড়ি। কোথায় সেমিকোলন পড়বে, আর কোথায় নয়, সেটা বুঝতে বুঝতেই শেখার ইচ্ছেটা মরে যায়।

২) ভাষার প্রয়োগে কোনো ব্যক্তিগত ইচ্ছের জায়গা নেই। কিছু আপাত রসহীন সমস্যার সমাধান করাই যেন প্রোগ্রামিংয়ের লক্ষ্য, দৈনন্দিন অভিজ্ঞতার সঙ্গে কোনো সম্পর্ক নেই তার।

৩) যেভাবে প্রোগ্রামিং, ইস্কুলের বাঁধাধরা কারিকুলাম মেনে শেখানো হয়, সেখানে খুটখাট করে এক্সপেরিমেন্ট করার জায়গা নেই। এক ঘণ্টার পিরিয়ডে চারটে প্রোগ্রাম নামাতে হবে!

তাবড় তাবড় প্রোগ্রামারদেরও প্রথম সংস্করণটা নির্ভুল হয়না।

সায়মিন্দু আমাদের দুটো ছোটবেলার অভিজ্ঞতার কথা মনে করিয়ে দিলো। তার মধ্যে একটা হলো, কাগজে কলমে প্রোগ্রাম লেখা। “এটা যে কি অস্বাভাবিক জিনিস, বলে বোঝানো মুস্কিল। তাবড় তাবড় প্রোগ্রামারদেরও প্রথম সংস্করণটা নির্ভুল হয়না। প্রোগ্রাম চালিয়ে ঘন্টার পর ঘন্টা ডিবাগ করে তবে সেটা দাঁড়ায়। অথচ, ইস্কুলে আশা এই যে কাগজে কলমে প্রথম চেষ্টাতেই নিখুঁত প্রোগ্রাম বেরিয়ে আসবে।” আরেকটা সমস্যা, ইস্কুলে যথেষ্ট সংখ্যক কম্পিউটার থাকে না। একটা কম্পিউটারে চার পাঁচজনকে বসিয়ে দেওয়া হয়। স্বাভাবিকভাবেই একজন কোড করে, বাকিরা চেয়ে চেয়ে দেখে। চেয়ে চেয়ে দেখে কতটা শেখা যায়, সেটা না বলাই ভালো।

শিক্ষাপ্রদানের পন্থা বদলানো একটা ভিন্ন চ্যালেঞ্জ। কিন্তু, প্রোগ্রামিং ভাষা শেখার যে প্রতিবন্ধকতা ভাষার মধ্যেই আছে, তাকে অনেকটা দূর করেছে ‘স্ক্র্যাচ’। চেষ্টা ছিল এমন একটা ভাষা তৈরী করা, যার জমি থাকবে অনেক নিচে, ছাত অনেক উপরে আর নড়াচড়া করার অনেকটা জায়গা থাকবে। অর্থাৎ, শেখা যাবে চটপট, একবার শিখলে প্যাঁচালো থেকে প্যাঁচালোতর কাজে লাগানো যাবে, আর সামনের বেঞ্চের প্রথমেশ থেকে পিছনের বেঞ্চের লাল্টুবিল্টু — সকলেই নিজের মত শেখার রাস্তা খুঁজে নিতে পারবে।

পরের সপ্তাহে আমরা দেখবো, ‘স্ক্র্যাচ’ কিভাবে এই সমস্যাগুলোর মোকাবিলা করল।

ছবি: MIT News

খেলাচ্ছলে প্রোগ্রামিং – ২

image_print
(Visited 1,495 times, 1 visits today)

Tags: , , , , ,