برنامه نویسی روشی برای فکر کردن

چهارشنبه 2 مرداد 1398

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

 برنامه نویسی روشی  برای  فکر کردن

امروزه برنامه نویسی تغییر کرده است، در زبان های برنامه نویسی سطح اول مانند FORTRAN و c مشکل اصلی برنامه نویسان این بود که بتوانند مفاهیم سطح بالا را به زبان ماشین ترجمه کنند. با استفاده از زبان های برنامه نویسی مدرن که به عنوان مثال می توان به پایتون اشاره کرد ما از توابع، اشیا، ماژول ها و کتابخانه ها استفاده می کنیم تا زبان را گسترش دهیم، این موضوع نه تنها برنامه ها را بهتر کرده است بلکه در خود برنامه نویسی نیز تغییرات زیادی را ایجاد کرده است.

زبان های برنامه نویسی قدیمی

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

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

 زبان های برنامه نویسی


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

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

 زبان های برنامه نویسی

به عنوان مثال تصویر شماره دو یک الگوریتم جست و جوی سطح اول( BFS) را نشان می دهد که در pseudocode یک کتاب بسیار محبوب استفاده شده است. نویسندگان این زبان را در سال 1989 میلادی طراحی کردند که بسیار کوتاه تر و دقیق تر می باشد و در زبان های برنامه نویسی کاربرد بیشتری دارد.

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

 زبان های برنامه نویسی


اجرای برنامه ها مهمترین بخش برنامه نویسی

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

زبان های برنامه نویسی مانند پایتون ایده آل برای تدریس و یادگیری هستند، به عنوان مثال اخیرا درباره پردازش سیگنال دیجیتال یا همان DSP یک کتاب نوشتم که در آن از پایتون برای نوشتن یک کتابخانه ساده و Jupyter( که یک محیط توسعه نرم افزار است) برای نوشتن یک دفترچه یادداشت آنلاین که متن، کد و نتایج را ترکیب می کند و شامل صوت ها، عکس ها و فیلم ها می باشد استفاده کردم.

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


توضیحاتی درباره پروژه بالا

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

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

برای نشان دادن موضوعات مختلف به آنها من یک دفترچه Jupyter نوشتم که آن را Cacophony for the whole family نامگذاری کردم که اگر شما به آن علاقه داشته باشید می توانید با کمی جست و جو آن را یافته و مثال های خود را بر روی آن اجرا کنید. در این کد من از کتابخانه خود استفاده کرده ام که باندهای یک مدرسه را شبیه سازی کرده ام و شما می توانید در آن تن صدا را به خوبی تشخیص دهید و می تواند مثالی کاربردی برای شما باشد.

 زبان های برنامه نویسی


جمع بندی پایانی

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

زبان های برنامه نویسی مدرن معمولا به صورت کیفی از predecessors خود جدا هستند اما با این وجود شما تنها کافی است که یادگیری برنامه نویسی را شروع کنید بلافاصله می توانید مفاهیم متفاوت را در زبان های برنامه نویسی به راحتی هر چه تمام درک کنید.

 زبان های برنامه نویسی

ایمان مدائنی

نویسنده 1299 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

تاکنون هیچ کاربری از این پست تشکر نکرده است

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید