چگونه برنامه نویسی کامپیوتری مقدماتی باید آموزش داده شود

چگونه برنامه نویسی کامپیوتری مقدماتی باید آموزش داده شود

نکته: این امر با نوشتن سلام نیست ، جهان! first

برنامه نویسی کامپیوتر به همین صورت آموزش داده شده است به مدت سی یا چهل سال ، یا حداقل از زمانی که وارد میدان شدم. از دانش آموز بخواهید یک مترجم یا کامپایلر باز کند و برنامه ای بنویسد که نشان می دهد سلام ، جهان! روی صفحه نمایش سپس چند مفهوم را آموزش دهید ، از دانش آموز بخواهید با استفاده از آن مفاهیم برنامه بنویسد ، بشویید و تکرار کنید. هرچند روش بهتری برای آموزش برنامه نویسی وجود دارد و در این مقاله قصد دارم این برنامه آموزشی جدید را با شما به اشتراک بگذارم. این برنامه درسی بر اساس مقاله ای است که توسط گروهی از محققان در دانشکده اطلاعات دانشگاه واشنگتن نوشته شده است و نویسنده اصلی آن بنیامین شی است.

نظریه آموزش برنامه نویسی کامپیوتر

زی و نویسندگان همکارش دنباله ای از مراحل آموزش و یادگیری برنامه نویسی کامپیوتر را ترسیم می کنند. من مراحل را در اینجا شرح می دهم و سپس در بقیه مقاله عمیق تر به هر مرحله می پردازم. این مراحل عبارتند از: الگوهای کد نویسی جلوتر از بازی و هنگامی که نحوه نوشتن نحو برای یک سازه را درک کردید ، آمادگی حل مشکلات با استفاده از آن را ندارید تا زمانی که الگوهایی را مشاهده نکرده اید که نحوه استفاده از ساختار را در برنامه نشان می دهد.

بیایید این مراحل را بیشتر تقسیم کنید تا ببینید در هر مرحله چه کارهایی باید انجام شود.

ردیابی متغیرها

اولین قسمت از یادگیری برنامه نویسی باید نحوه خواندن برنامه ها و درک آنچه انجام می دهند. بهترین راه برای انجام این کار نوشتن اثری از همه متغیرهای یک برنامه است. ردیابی مقادیر متغیر از ابتدا تا انتهای یک برنامه نشان می دهد که زبان آموز می تواند جریان یک برنامه را دنبال کند و همه تفاوت های ظریف ساختارهای برنامه نویسی مورد استفاده در برنامه را درک می کند. به عنوان مثال ، در اینجا یک قطعه کد ساده وجود دارد که من اغلب از دانش آموزان خود می خواهم (در C ++) ردیابی کنند:

 const int SIZE = 5؛
نمرات int [SIZE] = {71 ، 82 ، 77 ، 92 ، 84} ؛
int کل = 0؛
برای (int i = 0 ؛ i  

اثری که دانش آموزان می نویسند به این شکل است:

SIZE: 5

i: 0، 1، 2، 3، 4، 5

مجموع: 0 ، 71 ، 153 ، 230 ، 332 ، 416

امکان ردیابی کد از این طریق دو کار را انجام می دهد: 1) نشان می دهد که دانش آموز معانی برنامه را درک می کند. و 2) نشان می دهد که دانش آموز می تواند تأثیر نحو را بر رفتار برنامه پیش بینی کند. این مهارتها قبل از اینکه دانش آموز بتواند برنامه های خود را شروع کند ، بسیار ضروری است.

نوشتن کد برنامه

هنگامی که دانش آموز با خواندن و تجزیه و تحلیل نحو یک برنامه راحت شد ، آماده است کد آن سازه را بنویسید بهترین راه برای تسهیل این یادگیری این است که توضیحات روشنی را در اختیار دانش آموز قرار دهیدساختار مورد نیاز برای کد نویسی و درخواست دانش آموز از توضیحات آن به برنامه.

نمونه ای از مقاله Xie ، et.al. در حال توضیح نحوه چگونگی مبادله مقادیر دو متغیر و تبدیل آن به یک برنامه است. توضیحات آنها به این شکل است:

متغیر x را تعریف کنید. آن را روی 1 تنظیم کنید. متغیر y را تعریف کنید. آن را روی 2 تنظیم کنید. p> دانش آموزی که نحو اصلی نوشتن دستورات تکلیف را درک می کند ، باید بتواند این توصیف را به یک برنامه کامل تبدیل کند ، همانطور که در زیر نشان داده شده است:

 int x = 1؛
int y = 2 ؛
int temp = x؛
x = y ؛
y = temp؛ 

مشکل اکثر برنامه نویسی این است که انتظار می رود دانش آموزان بتوانند بدون تمرین لازم برای یادگیری خواندن و درک کد ابتدا کد بنویسند.

خواندن الگوها

به گفته Xie ، et.al. ، یک الگو انتزاعی قابل استفاده مجدد از دانش برنامه نویسی است ، و اینکه بتوانید یک الگو را بخوانید و بدانید چه زمان و چگونه از آن برای یک مشکل مناسب استفاده کنید ، گام بعدی در این زمینه است. دستور برنامه نویسی آنها می خوانند بنابراین ، هنگامی که دانش آموز قطعه کد مبادله متغیر را که در بالا نشان داده شده است مشاهده کرد ، آن را تشخیص داده و می فهمد که این الگوی پیاده سازی متغیر است.

مهم است که قبل از اینکه دانش آموز بتواند الگوها را با موفقیت بخواند ، باید بتواند کد را بخواند و بتواند رفتار آن را پیش بینی کند ، که ناشی از خواندن کد زیاد و نوشتن کد است. نداشتن این دانش باعث می شود دانش آموز نتواند درک کند یا نادرست بفهمد که یک قطعه کد چه می کند و باعث شود که الگویی که کد در حال پیاده سازی آن است را اشتباه تفسیر کنند.

نوشتن الگوها

آخرین مرحله در آموزش برنامه نویسی این است که دانش آموز بتواند توضیحات مبهم برنامه را ارائه دهد ، الگوی مورد نیاز برای حل مشکل را تعیین کند و بتواند الگو را در آن مشکل خاص اعمال کند. مقاله Xie این را با مشکل کلمه ای نشان می دهد که در آن یک دختر دارای دو چراغ قوه است ، یکی با قدرت بیشتر از دیگری. با این حال ، چراغ قوه با قدرت بیشتر خراب می شود ، بنابراین او باید باتری ها را عوض کند تا چراغ قوه کار بیشترین قدرت را داشته باشد. این مشکل بیان می کند که میزان قدرت در چراغ قوه در متغیرهای power1 و power2 ذخیره می شود. سر راست با این حال ، اگر دانش آموز در هر یک از سه مرحله دچار نقص باشد ، تلاش برای حرکت از راه حل کلی الگو به یک برنامه کاری می تواند منجر به خطا شود. اگر دانش آموز در مهارت خواندن کد و/یا مهارت نوشتن کد دچار نقص باشد ، احتمالاً هنگام نوشتن برنامه خطاهای نحوی متعددی مرتکب می شود. اگر دانش آموز در الگو خوانی دچار کمبود استمهارت ها ، آنها احتمالاً هنگام تلاش برای استفاده از الگوی مبادله متغیر در مشکل باتری چراغ قوه ، اشتباهات منطقی انجام می دهند.

چرا دستورالعمل برنامه نویسی فعلی خوب کار نمی کند

دنباله ای از مراحل آموزشی توسعه یافته توسط شی و همکارانش نشان می دهد که هنگامی که مهارت های برنامه نویسی به درستی دنبال می شوند ، دانش آموزان برنامه نویسی به طور م effectivelyثرتر و کارآمدتری یاد می گیرند. مشکل اکثر برنامه نویسی های امروزی این است که این مراحل یا رعایت نمی شوند یا با فاصله کافی بین آنها رعایت نمی شود تا دانش آموزان بتوانند قبل از حرکت به مرحله بعدی در یک مرحله مهارت کسب کنند.

به راحتی می توان مربیان برنامه نویسی را برای این مشکل مقصر دانست ، اما از نظر من ، تقصیر اصلی بر سر منابعی است که اکثر مربیان برای آموزش برنامه نویسی استفاده می کنند - کتابهای درسی. من در جاهای دیگر در این وبلاگ در مورد مشکلات کتاب های درسی برنامه نویسی کامپیوتر نوشته ام ، اما یک مشکل این است که این کتاب ها از این دنباله آموزشی پیروی نمی کنند یا حداقل دنباله را با فاصله مناسب دنبال نمی کنند.

سازه های برنامه نویسی معرفی می شوند ، دو یا سه مثال آورده می شود ، و سپس از دانش آموزان خواسته می شود که با استفاده از سازه مسائل را حل کنند. معمولاً از دانش آموزان خواسته نمی شود که قبل از نوشتن چند مثال ساده ، مهارت خود را در خواندن و درک نحو سازه نشان دهند. و به ندرت الگوهای خوب طراحی شده با ساختار برنامه نویسی ارائه می شود تا دانش آموزان را در زمینه ساختار تقویت کند.

چند کتاب درسی برخی از تمرینات مربوط به خواندن کد را در پایان فصل قبل از شروع تمرینات ارائه می دهند. برای کار. با این حال ، با قرار دادن این تمرینات در انتهای فصل ، دانش آموز ترغیب نمی شود که آنها را قبل از انجام مشکلات پیچیده تر که نیاز به استفاده از الگو دارند ، ابتدا انجام دهد. به طور گسترده تری شناخته شده است ، امیدوارم کتابهای درسی جدید و منابع آموزشی دیگری که از این نوع آموزش پیروی می کند ، توسعه داده شود.

اگر به تنهایی برنامه نویسی می آموزید

می توانید این دنباله های موضوعات را دنبال کنید اگر برنامه نویسی کامپیوتر را به تنهایی یاد می گیرید و نه در کلاس درس. برای کسب اطلاعات بیشتر در مورد ردیابی متغیر ، در اینجا یک سایت عالی از بخش علوم کامپیوتر دانشگاه ویسکانسین وجود دارد: http://bit.ly/2OogxOg. بسیاری از وب سایت ها برای آموزش نحوه نوشتن کد به افراد اختصاص داده شده است. بسیاری از آنها به شما امکان می دهند در محیطی تحت وب کار کنید تا بتوانید با اجرای کد خود در مرورگر ، بازخورد فوری دریافت کنید. مدتی را در w3schools.com یا tutorialspoint.com بگذرانید تا ببینید آیا آن سایت ها را دوست دارید یا فقط به سلیقه خود یکی دیگر را جستجو کنید. در مورد کار با قالب ها ، مقاله Xie ، et.al. اطلاعات مقدماتی بسیار خوبی در مورد استفاده از الگوها برای آموزش برنامه نویسی کامپیوتر ارائه می دهد. اگر بسیار شجاع هستید ، کتاب Designing Pascal Solutions: A Case Study Approach ، نوشته مایکل کلنسی و مارسیا لین ، الگوهای زیادی را برای برنامه نویسان مقدماتی ارائه می دهد. مشکل این است که این کتاب برای زبان پاسکال نوشته شده است ، بنابراین اگر سابقه برنامه نویسی نداشته باشید ، ممکن است دنبال کردن آن دشوار باشد. من در مورد استفاده از الگوها برای یادگیری برنامه نویسی کامپیوتر در وبلاگم بیشتر خواهم نوشتآینده.

یادگیری برنامه نویسی می تواند راحت تر باشد

با بیش از بیست سال تدریس برنامه نویسی کامپیوتر ، می دانم که یادگیری زبان برنامه نویسی برای بسیاری از دانش آموزان کار سختی است. با این حال ، با معرفی موضوعات برنامه نویسی به ترتیب ، در زمان مناسب و در دوز مناسب ، دانش آموزان برنامه نویسی را برای یادگیری موضوعی دلپذیر تر می یابند و امیدوارم فارغ از حرفه ای که انتخاب می کنند ، برای آنها مفید باشد.

در ابتدا در https://thelearningprogrammer.com در 4 فوریه 2020 منتشر شد.