شی گرایی چیست؟ — در برنامه نویسی و به زبان ساده

«برنامه نویسی شی گرا» (Object-Oriented Programming | OOP) به عنوان یکی از اصلی‌ترین رویکردهای برنامه نویسی محسوب می‌شود. تقریباً تمامی برنامه نویسان و توسعه دهندگان با این مفهوم آشنا هستند و در توسعه پروژه‌های نرم‌افزاری خود از آن استفاده می‌کنند. بدین‌ترتیب، افرادی که قصد دارند در حوزه برنامه نویسی مشغول به کار شوند، باید به یادگیری مفاهیم این رویکرد پرداخته و روش پیاده‌سازی آن را یاد بگیرند. در مقاله حاضر، سعی بر این بوده است با ارائه مثال‌هایی از دنیای واقعی، به پرسشی کلیدی پیرامون «شی گرایی چیست» پاسخ داده شده و اجزای اصلی این رویکرد و اصول مهم آن اشاره شود.

ادامه مطلب

مرتبه اجرایی در ساختمان داده — به زبان ساده، رایگان و کامل

پیچیدگی زمانی و مرتبه اجرایی در ساختمان داده و طراحی الگوریتم از مباحث پایه و مهم در علوم کامپیوتر به حساب می‌آیند. دو مفهوم «پیچیدگی زمانی» و «مرتبه اجرایی» هر دو به محاسبه میزان افت عملکرد یک تابع یا الگوریتم در ازای رشد اندازه ورودی مربوط می‌شوند. پیچیدگی زمانی به انگلیسی «Time Complexity» خطاب می‌شود و گاهی به آن «پیچیدگی اجرایی» هم می‌گویند. در این مطلب سعی شده است تا حد امکان به طور جامع به آموزش مرتبه اجرایی در ساختمان داده پرداخته شود. همچنین برای درک بهتر، مثال‌ها و نمونه سوال‌هایی هم برای اکثر بخش‌های این نوشته ارائه شده‌اند. همچنین در این نوشتار به مرتبه اجرایی حلقه For و While، مرتبه اجرایی توابع بازگشتی، مرتبه اجرایی فاکتوریل و سایر موارد مهم پیرامون مبحث مرتبه اجرایی در ساختمان داده پرداخته شده است.

ادامه مطلب

برنامه نویسی ماژولار چیست؟ – به زبان ساده + مزایا، معایب و کاربرد

در دنیای مدرن برنامه نویسی، روش‌های مختلفی وجود دارد که یکی از آن‌ها «برنامه نویسی ماژولار» (Modular Programming) یا «برنامه نویسی پیمانه‌ای» است. این نوع برنامه نویسی پردازشی برای تقسیم‌بندی برنامه‌های کامپیوتری به زیر برنامه‌های مجزا به حساب می‌آید. اصطلاح «ماژول» (Module) در برنامه نویسی به مؤلفه یا همان کامپوننت نرم افزاری مجزایی گفته می‌شود که می‌تواند همراه با مؤلفه‌های دیگر سیستم در اپلیکیشن‌ها و توابع مورد استفاده قرار بگیرد. در برنامه نویسی ماژولار توابع مشابه با یکدیگر در یک واحد از کدهای برنامه قرار می‌گیرند و توابع مجزا نیز به عنوان واحدهای مجزایی از کدها در اپلیکیشن‌ها استفاده می‌شوند. در ادامه این مطلب سعی شده است به طور جامع به این سوال پاسخ داده شود که برنامه نویسی ماژولار چیست و سایر موضوع‌های مهم پیرامون آن نیز شرح داده شده‌اند.

ادامه مطلب

یادگیری عمیق چیست؟ — به زبان ساده + منابع یادگیری

«هوش مصنوعی» (Artificial Intelligence) و یکی از شاخه‌های مهم آن، یعنی «یادگیری ماشین» (Machine Learning)، به عنوان سنگ‌بنای حوزه جدیدی با نام «یادگیری عمیق» (Deep Learning) محسوب می‌شوند.‌ هدف این شاخه از فناوری اطلاعات، ساخت سیستم‌های هوشمندی است که بتوانند همانند انسان، درباره موضوعی خاص تصمیم‌گیری کنند و وظایف مختلفی را به شکلی هوشمند انجام دهند. در مطلب حاضر، با هدف پاسخ به پرسش یادگیری عمیق چیست، به توضیح این شاخه از علوم کامپیوتر پرداخته می‌شود و کاربردها و ویژگی‌های مدل‌های مبتنی بر یادگیری عمیق مورد بررسی قرار می‌گیرند. همچنین، در این مقاله به برخی از پرکاربردترین مدل‌های یادگیری عمیق اشاره و به معرفی تعدادی از زبان‌های برنامه نویسی رایج این حوزه پرداخته شده است.

ادامه مطلب

ساخت ماشین حساب با جاوا اسکریپت – از صفر تا صد + کد

با جاوا اسکریپت می‌شود کارهای خارق‌العاده‌ای انجام داد، به‌خصوص اگر جاوا اسکریپت با HTML و CSS دست به دست هم دهند، آنجاست که شاهکار اصلی اتفاق می‌افتد. ساخت ماشین حساب با جاوا اسکریپت، پروژه‌ای کوچک و نسبتاً ساده است. در این مطلب آموزشی با عناصر مختلف HTML و CSS همراه با جاوا اسکریپت و شیوه‌های مدرن ES6، ماشین حسابی ساده، کد نویسی و طراحی خواهد شد.

ادامه مطلب

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

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

ادامه مطلب

Logging در پایتون — آموزش لاگ کردن یا ثبت وقایع

از آنجا که «پایتون» (Python) یکی از زبان‌های برنامه نویسی همه‌منظوره و بسیار محبوب به حساب می‌آید، دارای انواع ابزارهای سودمند برای پیشبرد برنامه نویسی است. «لاگ کردن»، ثبت وقایع یا همان Logging در پایتون از روش‌های بسیار کاربردی پایتون به شمار می‌رود که ابزاری با همین نام نیز در زبان پایتون وجود دارد. این ابزار می‌تواند به برنامه نویسان کمک کند تا درک بهتری از برنامه نویسی داشته باشند و به وسیله آن سناریوهایی ارائه می‌شوند که ممکن است برنامه نویس در حین توسعه تا به حال به آن‌ها فکر نکرده باشد. در این مطلب سعی شده به طور جامع به بررسی Logging در پایتون و آموزش ثبت وقایع به همراه ابزارهای آن‌ها پرداخته شود.

ادامه مطلب

حذف نویز از تصاویر با شبکه های عصبی خودرمزگذار یا Autoencoder

در مطلب گذشته، به پیاده‌سازی شبکه عصبی پرسپترون یک لایه (Sigle Layer Perceptron یا SLP) پرداختیم. در این مطلب قصد داریم یک شبکه عصبی خودرمزگذار (Autoencoder) پیاده‌سازی کنیم، سپس با استفاده از آن، حذف نویز از تصاویر با شبکه های عصبی خودرمزگذار را داشته باشیم.

ادامه مطلب

کاتلین یا فلاتر — کدامیک بهتر است؟

برای‌ توسعه اپلیکیشن موبایل ابزار‌ها و انتخاب‌های متعددی پیش‌ روی برنامه‌نویسان قرار دارد. انتخاب میان کاتلین (Kotlin) یا فلاتر (Flutter) یکی از دو راهی‌های موجود در مسیر توسعه اپلیکیشن موبایل است. در ابتدا باید این نکته را ذکر کرد که کاتلین زبان برنامه‌نویسی و فلاتر فریمورک برنامه‌نویسی است. در این نوشته بدون جهت‌گیری خاصی برای انتخاب بین کاتلین یا فلاتر به سوالاتی پیرامون ويژگی‌های این دو پاسخ داده می‌شود.

ادامه مطلب

آموزش Fetch در جاوا اسکریپت — توضیح تابع و دستور + نمونه کد

یکی از ویژگی‌های مهم جاوا اسکریپت ایجاد درخواست از API-های گوناگون است که این API-ها می‌توانند کاربردهای بسیار جذابی در پروژه‌های مختلف داشته باشند. Fetch در جاوا اسکریپت متدی است که برای این هدف به کار می‌رود. قبلاً در جاوا اسکریپت از روش XMLHttpRequest برای ایجاد درخواست‌های API استفاده می‌شد. این روش درخواست از API شامل Promise نبود و کد آن بسیار پیچیده و ناخوانا بود.

ادامه مطلب