যখন আমি কলেজে ছিলাম, তখন আমি অন্যান্য কোর্সের মধ্যে ইন্ট্রো টু প্রোগ্রামিং কোর্সের একজন শিক্ষক থাকতাম। আপনি যে সমস্যাটি বর্ণনা করছেন তা অস্বাভাবিক নয়। আপনার নির্দিষ্ট ভূমিকা কী তার উপর নির্ভর করে আপনার নিতে বিভিন্ন ধরণের পন্থা থাকতে পারে।
প্রথমত, যদি এটি ক্লাসে শিক্ষার্থীদের উল্লেখযোগ্য অংশগুলিকে প্রভাবিত করে এমন একটি বিস্তৃত সমস্যা হয়, যদি আপনার কাছে এটির অ্যাক্সেস থাকে তবে আমি শিক্ষার্থীদের কী ধারণাটি উপলব্ধি করতে ব্যর্থ হচ্ছে সে সম্পর্কে সুনির্দিষ্ট মতামত সহ কোর্স পড়ানো অধ্যাপকের সাথে যোগাযোগ করব, যাতে তিনি বা তিনি পদটিতে আবার আসার সাথে সাথে সেই উপাদানটির অতিরিক্ত পর্যালোচনা অন্তর্ভুক্ত করতে পারেন, বা ভবিষ্যতের শর্তগুলির জন্য পাঠ্যক্রমের উন্নতি করতে পারেন।
আপনি যদি আপনার ল্যাব সময় ছাড়াও কোর্সের জন্য একটি আলোচনার বিভাগটি পড়ান, তবে বক্তৃতাগুলিতে বিভ্রান্তিকর বিষয়গুলি ব্যাখ্যা করার জন্য এবং সেগুলি আরও দৃ concrete়তর করতে এবং নিশ্চিত হওয়াতে মৌলিক বিষয়গুলি বুঝতে পেরে এক দুর্দান্ত সময় হবে।
আপনি যদি এই শিক্ষার্থীদের সাথে একমাত্র সময় টিউটোরিং ল্যাবটিতে সময় কাটাচ্ছেন তবে আপনি এখনও এই সময়টি শিক্ষার্থীদের যে কোনও একটিতে বা একসাথে কয়েকজনকে শেখানোর জন্য ব্যবহার করতে পারেন, ধারণাটি তৈরি করার জন্য যে ব্লকগুলি তাদের প্রয়োজন এবং তাদের বাড়ির কাজ সম্পূর্ণ করুন।
তারা ক্লাসে এতটা হারিয়ে যেতে পারে তারা কোথায় থামবে এবং প্রশ্ন জিজ্ঞাসা করতে পারে তাও জানেনা। যদি এটি হয় তবে তাদের সাথে বেসিকগুলিতে ফিরে যান। শেষ অবধি তারা যখন বুঝতে পেরেছিল তখন তারা কোথায় ছিল? যদি তারা অনিশ্চিত হয়, বা "কখনই বোঝে না", আপনাকে হ্যালো ওয়ার্ল্ড ব্যাখ্যা করার জন্য শুরুতে ফিরে যেতে হবে, ভেরিয়েবল কী কী, কম্পিউটার তাদের "নির্দেশাবলীর" তালিকা কীভাবে গ্রহণ করে এবং কীভাবে চেষ্টা করে তার মতো জিনিস শেখাতে পারে সেগুলি যথাযথভাবে করুন, তবে কম্পিউটারটি আমাদের মতো "স্মার্ট" নয় তাই আপনাকে খুব আক্ষরিক হতে হবে এবং কম্পিউটার বোঝার জন্য ঠিক কিছু বলতে হবে, ইত্যাদি etc.
এটি আসলে লড়াই এবং হতাশার একটি বিষয় আমি অ-মেজর প্রোগ্রামিং কোর্সে বেশিরভাগ ঘন ঘন দেখেছি। শিক্ষার্থীরা কিছু কোড লিখেন। এটি "সম্পর্কে" ঠিক বলে মনে হয় তবে তারা এটি সংকলন করতে যায় এবং এটি একটি ত্রুটি দেয়, একটি অত্যন্ত রহস্যজনক ত্রুটি। এবং এতে কোন সমস্যা আছে তা তাদের কোনও ধারণা নেই। এবং কয়েক ঘন্টা তাদের কোড তাকান। তারপরে অবশেষে এটি নির্ধারণ করুন এমন কিছু যা তুচ্ছ মনে হয়েছিল, যেমন অনুপস্থিত আধা-কোলনের মতো, বা ভুল জায়গায় একটি ধনুর্বন্ধনী। তারপরে তারা এটিকে আবার সংকলন করতে যায় এবং এখনও ত্রুটি রয়েছে, এটি অন্য কিছু। তারা দ্বিতীয়বার ব্যবহার করার পরে তারা কোনও পরিবর্তনশীল নামটি আলাদাভাবে বানান। ইত্যাদি। সুতরাং তারা কোনও বন্ধু বা গৃহশিক্ষক বা কাউকে সাহায্যের জন্য জিজ্ঞাসা করে এবং তারা তাদের মাথার উপরের অংশের উত্তর দিতে পারে "ওহ কেবল এটি এখানে যুক্ত করুন এবং তারপরে এটি কার্যকর হবে।" সুতরাং তাদের অভিজ্ঞতা হ'ল প্রোগ্রামিং কিছুটা "রহস্যময়"
এটি টিউটর হিসাবে এমন একটি অঞ্চল, যেখানে আপনার সাহায্য করার জন্য অনেক জায়গা রয়েছে। তাদের হতাশার স্তরের উপর নির্ভর করে, তাদের কোডটি কেন কাজ করছে না তা নির্ধারণ করার জন্য তাদের কাছে আমার বিভিন্ন পন্থা থাকতে পারে। যদি তারা তা পাওয়ার মতো হয় তবে আমি তাদেরকে ইঙ্গিতগুলি দিতে পারি এবং তাদের নিজেরাই চিত্রিত করতে সহায়তা করার চেষ্টা করতে পারি। তবে যদি তারা হতাশাকে ছাড়ার জন্য তাদের দড়িটির শেষে থাকে তবে আমি প্রায়শই তাদের দু'জনকে ফ্রি উত্তর দেই এবং তারপরে কমপক্ষে তাদেরকে এমন প্রশ্ন জিজ্ঞাসা করার চেষ্টা করব যে "কেন এই পরিবর্তনটি আপনার প্রোগ্রামটি স্থির করেছে তা কি আপনি বুঝতে পারছেন? ? "
কিছু শিক্ষার্থীর জন্য, বিশেষত অ-মেজরদের জন্য, তাদের কাছে একটি ভাল প্রোগ্রামার হওয়ার জন্য বা প্রোগ্রামিং উপভোগ করার জন্য প্রয়োজনীয় বিশদ সম্পর্কিত পদ্ধতিগত মনোযোগ না থাকতে পারে। বিশদগুলিতে মনোযোগ দেওয়ার জন্য কৌশলগুলির মাধ্যমে আপনি এগুলি ধরে রাখতে পারেন, এবং সমস্যাগুলির সমাধানের পক্ষে পর্যাপ্ত পদ্ধতিগত হলেও যদি তা তাদের পক্ষে চ্যালেঞ্জ হয়।
তবে শিক্ষার্থীরা তাদের কোডটি "সঠিকভাবে" ইনডেন্ট করা সম্পর্কে পায়ুপথ-প্রতিবেদনশীল - তাই প্রায়শই, প্রোগ্রামাররা বাসা বাঁধা এবং স্কোপ নিয়ে সমস্যা তৈরি করে কারণ তাদের অ-ম্যাচিংয়ের ধনুর্বন্ধনী রয়েছে বা এর মতো কারণ তারা কীসের অধীনে বাসা বাঁধে তাতে মনোযোগ দেয় না। তাদের "আপনার প্রোগ্রামটি কখন সংকলিত হবে না তা যাচাই করার জন্য" বিষয়গুলির একটি চেকলিস্ট দিন, যেমন সমস্ত কোড সঠিকভাবে ইনডেন্ট করুন এবং ব্রেসগুলি মিলছে তা নিশ্চিত করুন, বিশেষত লাইন নম্বরটির আশেপাশে যেখানে প্রথম ত্রুটিটি দেখায় সেখানে সমস্ত লাইন শেষ হয়েছে আপ, ইত্যাদি
তাদের তাড়াতাড়ি সংকলন করতে এবং প্রায়শই সংকলন করতে শেখান। ন্যূনতম কঙ্কাল কোড (বলুন, হ্যালো ওয়ার্ল্ড), সংকলন / পরীক্ষা লিখুন। কয়েকটি লাইন যুক্ত করুন, আবার সংকলন করুন। ত্রুটিগুলি খুঁজে পাওয়া আরও সহজ যদি আপনি কেবল একটি ছোট বালতি পরিবর্তনের একটি ছোট বালতি না দেখেন।
কীভাবে ছোট সমস্যা সমাধানযোগ্য সমস্যার মধ্যে কোনও সমস্যা ভাঙতে হয় তা শিখতে তাদের সহায়তা করুন। পেশাদার প্রোগ্রামাররা হিসাবে আরও শক্ত সমস্যাগুলি সমাধান করার জন্য আমরা এটিই করি যা কীভাবে সমাধান করতে হয় তা আমরা জানি না। আপনি কীভাবে সমাধান করতে জানেন বা কীভাবে সমাধান করতে হয় তা শিখতে কিছু গবেষণা করতে পারবেন এমন কোনও বিষয় না পাওয়া পর্যন্ত আপনি এটিকে টুকরো টুকরো করে রাখছেন। "একটি কার্যনির্বাহী সমাধান পেতে আপনার কী পদক্ষেপ নেওয়া দরকার?" ঠিক আছে, প্রথমে আপনাকে কিছু কঙ্কাল কোড (হ্যালো ওয়ার্ল্ড) লাগবে। আপনি কীভাবে তা জানেন? হ্যাঁ, দুর্দান্ত, সুতরাং যখন আমরা কথা শেষ করেছি আপনি তা করেই শুরু করতে পারেন! তারপরে ইনপুট হিসাবে কোনও ফাইল পড়তে হবে। আপনি চতুর্থ অধ্যায়ে যে সম্পর্কে পড়া মনে আছে? আসলে তা না? হ্যালো ওয়ার্ল্ড চলার পরে আপনি কেন সেদিকে নজর রাখবেন না এবং দেখুন যে আপনি এই কাজটি করতে কতটা কাছাকাছি যেতে পারেন এবং আমাকে আবার ফোন করুন এবং আমি ' আপনি যখন আটকে থাকবেন তখন আপনাকে আরও কিছুটা সহায়তা করবেন। প্রথম কয়েকবার আপনার সমস্যা সমাধানের জন্য প্রয়োজনীয় পদক্ষেপগুলির জন্য কেবল তাদের একটি তালিকাবদ্ধ তালিকা তৈরি করা প্রয়োজন, যাতে তারা উদাহরণটি থেকে কীভাবে সমস্যাটি পচন করতে পারে তা শিখতে পারে।
তারা যদি ক্লাসে থাকা সমস্ত উপাদান না পেয়ে সমস্ত উপাদান পেয়ে থাকে, তবে তাদের ক্লাসে প্রশ্ন জিজ্ঞাসা করতে উত্সাহিত করুন, কারণ দশজনের মধ্যে নয় বার, তারা একমাত্র শিক্ষার্থী নয় যা বুঝতে পারে না, এবং অধ্যাপক সম্ভবত কোনও গুরুত্বপূর্ণ বিষয় নিয়ে কেবল গ্লস করেছিলেন।
যদি তারা একটি বাগের দিকে তাকিয়ে "ঘন্টা" ব্যয় করে তবে তা নির্ণয় করে না, এটি তাদের সময় নষ্ট, তারা এগুলি থেকে খুব বেশি শিখছেন না। প্রায়শই বাগগুলি অন্তর্দৃষ্টি সমস্যা হয় এবং এটি সমাধানের জন্য সঠিক অন্তর্দৃষ্টি নিয়ে আসে এবং এ জাতীয় সমস্যার জন্য তাদের কোনও নকশা নাও থাকতে পারে। আটকে যাওয়ার সময় অন্যান্য সাধারণ পদ্ধতির পরামর্শ দিন: ক্লাসের অন্য এক বন্ধুকে সাহায্যের জন্য জিজ্ঞাসা করুন (এটি করার প্রয়োজনে কিছু সহপাঠীর সাথে পরিচিত হন), তাদের বাড়ির কাজটি সময়ের আগে শুরু করুন যাতে তাদের থামার সময় রয়েছে, এবং পরে আসুন টিউটর ল্যাব এবং খোলার সময় প্রশ্ন জিজ্ঞাসা করুন, বা অধ্যাপকের অফিস সময় যান। যদি তারা ক্র্যামিং করতে অভ্যস্ত হয়, যা মুখস্তকরণের বিষয়গুলির জন্য ভাল কাজ করে, তারা হতাশার প্রাচীরে আঘাত করবে যখন তারা ' মুখোমুখি হওয়ার চেয়ে সমস্যা সমাধানের বিষয়ে যা প্রোগ্রামিংয়ের মুখোমুখি। কীভাবে তাদের পাঠ্যপুস্তক, স্ট্যাকওভারফ্লো ইত্যাদি থেকে সিনট্যাক্সের উদাহরণগুলি সন্ধান করতে হবে তা তাদের দেখান।
কোডটি যেখানে কাজ করা বন্ধ করে দেয় সেখানে কীভাবে সংকীর্ণ হবে তা তাদের শিখান। আপনি চালিত কোনও কিছুতে ফিরে না আসা পর্যন্ত স্টাফ মন্তব্য করুন এবং তারপরে আবার সেগফাল্ট না পাওয়া পর্যন্ত আস্তে আস্তে জিনিসটি আবার যুক্ত করুন।
এই ধারণাগুলি অনেকগুলি হ্যান্ডসআউটে রূপান্তরিত হতে পারে যদি সেগুলি অনেক বেশি আসে। কৌশলগুলি সাধারণত অংশ অধ্যাপকদের চকচকে করে - তারা সিনট্যাক্স, লুপ, অ্যারে, আই / ও ইত্যাদি কীভাবে লিখতে হবে তার অর্থশাস্ত্রের উপর তাদের সময় ব্যয় করছে তবে "চেষ্টা করার পরে আমি কী করব? আমার কোড চালানোর জন্য এবং এটি কেবল আমার উপর সংকলন বা ক্র্যাশ করে না? "
যখন ধারণাগত বিষয়গুলির বিষয়ে আসে, বিশেষত মৌলিক বিষয়গুলির মতো, "একটি পরিবর্তনশীল কী" বা "লুপটি কী?" বুঝতে না পারলে বাকি কোর্সের সাথে তাল মিলিয়ে চলতে তাদের বাধা দেবে। একটি বক্তৃতা-ভিত্তিক কোর্সে, অধ্যাপকের প্রতিটি প্রশ্নের উত্তর দেওয়ার বা লাইটবুলবটি প্রতিটি শিক্ষার্থীর জন্য যেতে সাহায্য করার জন্য সময় থাকতে পারে না। এবং প্রোগ্রামারিং শেখার জন্য টিউটররা কেন এত গুরুত্বপূর্ণ তা সেই অংশ। নির্দিষ্ট বিষয়টিকে কংক্রিট করার জন্য তাদের অতিরিক্ত উপমাগুলি সহ স্বতন্ত্র নির্দেশের প্রয়োজন হতে পারে।
আপনি যেহেতু সি ++ তে শিক্ষকতা করছেন, আমি কল্পনা করব এমন ক্লাসগুলি একটি বিমূর্ত বিষয় হিসাবে উপস্থিত হবে যা কিছু শিক্ষার্থী "পেতে" লড়াই করে। প্রায়শই ক্লাসগুলির বিমূর্ততা কিছু এলোমেলো বাস্তব বিশ্বের বস্তুর সাথে সম্পর্কিত উদাহরণগুলির সাথে শেখানো হয়, যেমন একটি "এটিএম মেশিন" এর মতো, এবং বাস্তব বিশ্বের বস্তুর সাথে উপমা তৈরি করা হয়। আপনার ভিতরে কতটা অর্থ রয়েছে তার উপর নজর রাখতে আপনার ভেরিয়েবল থাকতে পারে, আপনার পদ্ধতি রয়েছে যা নিয়মের মতো যা এটিএম মেশিনকে নির্দিষ্ট পরিস্থিতিতে কীভাবে প্রতিক্রিয়া জানাতে পারে ইত্যাদি ইত্যাদি। কখনও কখনও একটি উপমাটি কোনও নির্দিষ্ট ব্যক্তির জন্য "স্টিকস" থাকে যা , এবং অন্যান্য শিক্ষার্থীরা আরও ভাল একটি উপলব্ধি করতে পারে।
যখনই সম্ভব, তাদের জন্য ছবি আঁকুন। তারা যে কোডটি লিখছেন তা কী করে তার বড় চিত্রটি তাদের দেখতে সহায়তা করতে সময়ের সাথে কী ঘটে যায় তার ক্রম ডায়াগ্রামের মতো। ব্যবহারকারীরা এই বোতামটি ক্লিক করে। তারপরে প্রোগ্রামটির এক্স, ওয়াই এবং জেড করে সাড়া দেওয়া উচিত। পোস্ট অফিসে পিও বাক্সের গুচ্ছের মতো একটি অ্যারে আঁকুন যা প্রত্যেকটিতে কেবল একটি নম্বর থাকতে পারে এবং তীরের মতো পয়েন্টারগুলি বক্সের সম্মুখভাগে "ঠিকানার" দিকে ইঙ্গিত করে। প্রভৃতি