FaraComp | فرا کامپیوتر: مهندسی و علوم کامپیوتر – Telegram
FaraComp | فرا کامپیوتر: مهندسی و علوم کامپیوتر
1.49K subscribers
68 photos
26 videos
304 links
فراکامپیوتر — کانال تخصصی مهندسی و علوم کامپیوتر

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

🚀 برای مشاهده تمام آموزش‌های ویدیویی، روی لینک زیر بزنید:👇
fdrs.ir/tc/ce
Download Telegram
✳️ درس هوش مصنوعی | مفاهیم پایه به زبان ساده — منابع، کتاب و فیلم آموزشی

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

══ فهرست مطالب ══

‏ ○ درس هوش مصنوعی چیست ؟
‏ ○ پیش نیاز درس هوش مصنوعی چیست ؟
‏ ○ منابع درس هوش مصنوعی چه هستند ؟
‏ ○ کتاب هوش مصنوعی راسل و نورویگ
‏ ○ هوش مصنوعی چیست ؟
‏ ○ چکیده درس هوش مصنوعی
‏ ○ معرفی فیلم آموزش درس هوش مصنوعی
‏ ○ فصل اول: معرفی هوش مصنوعی
‏ ○ فصل دوم: عامل‌های هوشمند
‏ ○ فصل سوم: حل مسائل با جستجو
‏ ○ فصل چهارم: فراتر از جستجوی سنتی
‏ ○ فصل پنجم: جستجوی خصمانه
‏ ○ فصل ششم: مسئله ارضای محدودیت
‏ ○ فصل هفتم: عامل‌های منطقی
‏ ○ معرفی فیلم های آموزش هوش مصنوعی
‏ ○ جمع‌بندی


🔸 درس هوش مصنوعی چیست ؟

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

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


🔸 پیش نیاز درس هوش مصنوعی چیست ؟

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



مطالعه ادامه مطلب 👇👇

🔗 درس هوش مصنوعی | مفاهیم پایه به زبان ساده — منابع، کتاب و فیلم آموزشی — کلیک کنید (+)


📌 کانال اختصاصی آموزشی مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزش‌های مهندسی و علوم کامپیوتر فرادرس

👍2
✳️ رشته بیوانفورماتیک |‌ دروس، گرایش ها، درآمد و بازار کار

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

══ فهرست مطالب ══

‏ ○ رشته بیوانفورماتیک مناسب چه کسانی است؟
‏ ○ گرایش های مرتبط با رشته بیوانفورماتیک چه هستند؟
‏ ○ مهم‌ترین دروس دانشگاهی رشته بیوانفورماتیک چه هستند؟
‏ ○ فارغ التحصیل رشته بیوانفورماتیک در چه کارها و صنایعی می‌تواند شاغل شود؟
‏ ○ بازار کار رشته بیوانفورماتیک به چه صورت است؟
‏ ○ امکان ادامه تحصیل در رشته بیوانفورماتیک در داخل ایران چگونه است؟
‏ ○ امکان ادامه تحصیل در رشته بیوانفورماتیک در خارج از کشور به چه صورت است؟
‏ ○ دروس دانشگاهی رشته بیوانفورماتیک تا چه میزان نیازهای بازار کار را مرتفع می‌کنند؟


🔸 رشته بیوانفورماتیک مناسب چه کسانی است؟

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

‏پس اگر

‏– نسبت به مسائل مختلف حوزه زیست‌شناسی، مثل عملکرد مولکول‌های زیستی، شبکه‌های انتقال پیام و نحوه اثر داروها، کنجکاو هستید.

‏– از کار با رایانه، کدنویسی و یادگیری نرم‌افزارهای مختلف، لذت می‌برید.

‏– تفکر خلاق دارید.

‏– از ورود به کارهای چالشی، لذت می‌برید.

‏– عاشق ریاضی و محاسبات پیچیده هستید.

‏– دارای قدرت مسئله‌یابی، منظم‌سازی اطلاعات و شناسایی الگوها هستید.

‏– از تمرکز خوبی برخوردارید.

‏– تمایل به تولید و طراحی نرم‌افزار و ورود به میدان رقابت در این حوزه را دارید.

‏– در زبان انگلیسی، مهارت کافی را دارید.

‏رشته بیوانفورماتیک، به احتمال زیاد، انتخاب مناسبی برای شماست.


🔸 گرایش های مرتبط با رشته بیوانفورماتیک چه هستند؟

‏ارتباط تنگاتنگی بین رشته بیوانفورماتیک و زیست شناسی محاسباتی (Computational Biology) وجود دارد. به طور کلی، این گرایش‌ها مجموعه‌ای از رایانه‌ها، نرم‌افزارها و پایگاه‌های اطلاعاتی را در یک ساختار منظم و هدفمند، به کار می‌گیرند تا از آن برای پاسخگویی به پرسش‌هایی در حوزه زیست شناسی، بهره بگیرند. گاهی، پاسخ‌دهی به این پرسش‌ها، نیازمند پردازش حجم انبوهی از اطلاعات است. پردازش داده‌های ژنومیکس و پروتئومیکس، نمونه‌ای از چنین داده‌کاوی‌هایی در مقیاس وسیع، به شمار می‌روند.

‏زیست شناسی سامانه‌ای (Systems Biology)، یکی از نوین‌ترین شاخه‌های زیست شناسی است که هدف آن بررسی رفتار سلول‌ها با یک نگاه کل‌نگر است. متخصصان این حوزه، به جای یک ژن، مجموعه عظیمی از ژن‌ها را به طور همزمان، مورد بررسی قرار می‌دهند و ارتباطات و چگونگی تاثیر آن‌ها را بر یکدیگر، مطالعه می‌کنند. این شاخه از علم،‌ به همراه گرایش‌های مشتق از آن، مانند بیوتکنولوژی سامانه‌ای (Systems Biotechnology) و زیست شناسی سامانه‌ای محاسباتی (Computational Systems Biology ) در تعامل نزدیکی با بیوانفورماتیک هستند.

‏داده‌کاوی پزشکی (Medical Informatics) نوعی از مهندسی اطلاعات است که در زمینه سلامتی کاربرد دارد. بخش عمده‌ای از این رشته دانشگاهی، به مدیریت و استفاده از اطلاعات پزشکی بیماران، می‌پردازد. این گرایش از علوم کامپیوتر، از فناوری اطلاعات پزشکی برای توسعه، پیشرفت و بهبود خدمات سلامتی استفاده می‌کند تا خدماتی با کیفیت بالاتر، کارایی بهتر، هزینه کمتر و فرصت‌های جدیدتر ارائه شود.



مطالعه ادامه مطلب 👇👇

🔗 رشته بیوانفورماتیک |‌ دروس، گرایش ها، درآمد و بازار کار — کلیک کنید (+)


📌 کانال اختصاصی آموزشی مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزش‌های مهندسی و علوم کامپیوتر فرادرس

✳️ ۱۱ قدم برای تبدیل شدن به مهندس نرم‌افزار



══ فهرست مطالب ══

‏ ○ سودآوری شغل یک مهندس نرم‌افزار
‏ ○ گام اول: نسبت به انتخاب هدف نهایی‌تان دقت زیادی به خرج دهید و به آن متعهد باشید
‏ ○ گام دوم: زبان موردنظرتان را انتخاب کنید.
‏ ○ گام سوم: تمرین، تمرین و تمرین …
‏ ○ گام چهارم: از ابزارهایی استفاده کنید که توسعه‌دهندگان واقعی استفاده می‌کنند
‏ ○ گام پنجم: کدهای دیگران را بخوانید
‏ ○ گام ششم: پیدا کردن یک انجمن فعال در حوزه کسب تخصص مهندس نرم‌افزار
‏ ○ گام هفتم: ساخت پروژه
‏ ○ گام هشتم: شبکه حرفه‌ای‌تان را ارتقا بدهید
‏ ○ گام نهم: قبل از مصاحبه کاری، یک مهندس نرم‌افزار حرفه‌ای شوید
‏ ○ گام دهم: مصاحبه شغلی خود را انجام دهید.
‏ ○ گام یازدهم: قبول کردن پیشنهاد شغلی به عنوان یک مهندس نرم‌افزار


🔸 سودآوری شغل یک مهندس نرم‌افزار

‏اغلب پروژه‌های «Bureau of Labor Statistics» که در سال‌های ۲۰۱۴ تا ۲۰۲۴ انجام می‌شوند، با نرخ رشد ۱۷% رشد خواهند کرد، که درنهایت منجر به ایجاد ۱۸۶,۶۰۰ فرصت شغلی می‌شود. این در حالی است که نرخ رشد مشاغل دیگر رقمی برابر با ۷ درصد است. باوجود تمام دیدگاه‌های مثبت و فرصت‌های شغلی فراوان تنها ۲ درصد از دانش‌آموزان در رشته‌های علوم کامپیوتری درس می‌خوانند.

‏مهارت‌های برنامه‌نویسی می‌توانند همگام با امنیت مالی و شغلی برای شما، انعطاف‌پذیری روزافزون را هم به ارمغان آورند. اما احتمالاً از خودتان می‌پرسید: «چگونه؟ چطور می‌توان بدون حضور در کلاس و گذراندن دروس دانشگاهی همه این مهارت‌ها را یاد گرفت؟ و مهم‌تر از همه چطور می‌توان دریکی از آن‌ها متخصص شد و به‌طور مستقل کار کرد؟»

‏شما با یادگرفتن این ۱۱ مرحله می‌توانید بدون گذراندن دوره‌ها و کلاس‌های طاقت‌فرسا و وقت‌گیر دانشگاهی به یک مهندس نرم‌افزار تبدیل بشوید. پس تا انتهای این ۱۱ مرحله همراه ما باشید.


🔸 گام اول: نسبت به انتخاب هدف نهایی‌تان دقت زیادی به خرج دهید و به آن متعهد باشید

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

‏– برای اولین بار کد نویسی می‌کنند.

‏– مطمئن نیستند که می‌خواهند برنامه‌نویس شوند.

‏– می‌خواهند متخصص طراحی وب، UI و UX یا دیگر زمینه‌های مربوط به طراحی بشوند.

‏– می‌خواهند به‌طور پاره‌وقت و آزادانه کار کنند.

‏– می‌خواهند کسب‌وکار مخصوص خودشان را راه بیندازند.

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

‏– «می‌خواهم به‌عنوان یک توسعه‌دهنده نرم‌افزار در یک شرکت معتبر فن‌آوری کار کنم»

‏– «می‌خواهم به‌عنوان یک مهندس نرم‌افزار در یک تیم استارت‌آپی مشغول راه‌اندازی برندی جدید باشم. من عاشق صنعت هستم»

‏– «می‌خواهم به همراه یک تیم خوب، محصولاتی تولید کنم و از آن پول خوبی به جیب بزنم»

‏فرقی ندارد که هدف شما کدام‌یک از این سه مورد است. درهرصورت وقتی پا در این راه گذاشتید باید به‌عنوان یک مهندس نرم‌افزار عاشقانه کار کنید، و به کارتان متعهد باشید.



مطالعه ادامه مطلب 👇👇

🔗 ۱۱ قدم برای تبدیل شدن به مهندس نرم‌افزار — کلیک کنید (+)


📌 کانال اختصاصی آموزشی مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزش‌های مهندسی و علوم کامپیوتر فرادرس

✳️ کامپیوتر چطور ساخته شد؟

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

══ فهرست مطالب ══

‏ ○ جد بزرگ
‏ ○ معجزه بافندگی
‏ ○ تولد دوباره
‏ ○ عصر دودویی
‏ ○ تلاش انگلیسی
‏ ○ نخستین کامپیوتر تمام الکترونیکی
‏ ○ نخستین کامپیوتر چندکاره


🔸 جد بزرگ

‏ابزارهای محاسباتی از زمان‌های بسیار قدیم همراه بشر بوده‌اند. شاید مسحورکننده‌ترین و پیچیده‌ترین این ابزارها که از دوران کهن برجای مانده است، «دستگاه آنتیکی‌ثیرا» (Antikythera Mechanism) باشد که از بقایای کشتی شکسته‌ای یونانی به دست آمده است که در سال ۱۹۰۰ کشف شد.

‏به عقیده‌ی محققان، این ابزار بی‌نظیر و سرشار از چرخ‌دنده برای پیش‌بینی حرکت خورشید، ماه و سیاره‌ها کاربرد داشته است؛ اما بعضی نیز عقیده دارند دستگاه آنتیکی‌ثیرا در حقیقت نسخه‌ای از یک کامپیوتر اولیه است.

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


🔸 معجزه بافندگی

‏«ژوزف ماری ژاکارد» (Joseph Marie Jacquard) بافنده‌ای فرانسوی و مخترعی آماتور بود که تجربیات خود از کار با دستگاه‌های بافندگی را به خوبی در اختراعاتش به‌کار گرفت. در نمایشگاه صنعتی پاریس در سال ۱۸۰۱، ژاکارد از یک دستگاه بافندگی رونمایی کرد که با «خواندن» خودکار زنجیره‌ای از کارت‌های سوراخ شده، قادر بود الگوی بافت پارچه خود را کنترل کند.

‏دستگاه بافندگی ژاکارد انقلابی در صنعت نساجی ایجاد کرد و تنها طی یک دهه، ۱۱ هزار دستگاه از این اختراع در سراسر فرانسه مشغول کار بود. از همه مهم‌تر، این دستگاه بنیان‌گذار ایده ساخت دستگاهی شد که با تغییر چیدمان و ساختارش، انجام کارها و وظایف متفاوت امکان‌پذیر می‌شد؛ ایده‌ای که تاثیر زیادی روی فردی گذاشت که بسیاری او را پدر علم محاسبات و کامپیوتر می‌دانند.

‏سال ۱۸۲۲ و در یک جلسه سخنرانی در انجمن پادشاهی اخترشناسی انگلستان، ریاضیدان و بحرالعلوم معروف، «چارلز بابیج» (Charles Babbage) طرح و عملکرد دستگاهی را مطرح کرد که خودش آن را «موتور تفاضلی» (Difference Engine) می‌نامید؛ دستگاهی که قادر بود محاسبات پیچیده را بسیار سریع‌تر و دقیق‌تر از هر انسانی انجام دهد.



مطالعه ادامه مطلب 👇👇

🔗 کامپیوتر چطور ساخته شد؟ — کلیک کنید (+)


📌 کانال اختصاصی آموزشی مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزش‌های مهندسی و علوم کامپیوتر فرادرس

✳️ آموزش طراحی کامپایلر — مجموعه مقالات جامع وبلاگ فرادرس

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

══ فهرست مطالب ══

‏ ○ مبانی کامپایلر
‏ ○ انواع تجز‌یه
‏ ○ محیط Run-Time (زمان اجرا)


🔸 مبانی کامپایلر

‏ما در سلسله مطالب این مجموعه در ابتدا به مرور مفاهیم مقدماتی و معرفی مراحل کامپایل کردن پرداختیم که می‌توانید در مقاله زیر مطالعه کنید.

‏– کامپایلر، طراحی و معماری آن — به زبان ساده

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

‏– تحلیل واژه‌ای (Lexical Analysis) در طراحی کامپایلر — راهنمای جامع

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


🔸 انواع تجز‌یه

‏یکی از مباحث مهم در زمینه تحلیل نحوی، تجزیه کد است. از این رو در مطلب زیر به معرفی انواع روش‌های تجزیه کد در طراحی کامپایلر پرداخته‌ایم:

‏– انواع تجزیه در طراحی کامپایلر — راهنمای جامع

‏به طور کلی در فرایند کامپایل کد منبع دو نوع تجزیه (Parsing) به صورت‌های تجزیه بالا به پایین و تجزیه پایین به بالا داریم که در دو نوشته زیر هر دوی آن‌ها مورد بررسی قرار گرفته‌اند:

‏– تجزیه بالا به پایین — طراحی کامپایلر

‏– تجزیه پایین به بالا — طراحی کامپایلر

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



مطالعه ادامه مطلب 👇👇

🔗 آموزش طراحی کامپایلر — مجموعه مقالات جامع وبلاگ فرادرس — کلیک کنید (+)


📌 کانال اختصاصی آموزشی مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزش‌های مهندسی و علوم کامپیوتر فرادرس

✳️ گراف در علوم کامپیوتر — راهنمای مقدماتی

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

══ فهرست مطالب ══

‏ ○ انگیزه بحث راجع به گراف در علوم کامپیوتر
‏ ○ گره‌ها، رأس‌ها و یال‌ها
‏ ○ جهت‌دار یا غیر جهت‌دار
‏ ○ گراف‌های دوری یا غیر دوری
‏ ○ یال‌های وزن‌دار
‏ ○ مسائلی که می‌توان با گراف حل کرد
‏ ○ سخن پایانی


🔸 انگیزه بحث راجع به گراف در علوم کامپیوتر

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

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

‏این همان تصوری است که باید در ذهن خود داشته باشید. همه مفاهیم پیچیده‌ای مانند (G(V, E که در کتب درسی ارائه می‌شوند صرفاً روشی برای بیان همان مفهوم انتزاعی اتصال نقطه‌ها به هم با استفاده از خطوط است.


🔸 گره‌ها، رأس‌ها و یال‌ها

‏زمانی که دانشمندان رایانه در مورد گراف صحبت می‌کنند، از واژه‌های نقطه و خط استفاده نمی‌کنند. به جای آن به هر نقطه، یک گره یا رأس و به هر خط، یک یال یا کمان گفته می‌شود. متداول‌ترین اصطلاح‌ها رأس و یال هستند. زمانی که می‌بیند فردی برای نمایش گراف از نماد (G(V, E استفاده می‌کند، در واقع منظور وی این است که گراف G دارای مجموعه رأس V و مجموعه یال E است.



مطالعه ادامه مطلب 👇👇

🔗 گراف در علوم کامپیوتر — راهنمای مقدماتی — کلیک کنید (+)


📌 کانال اختصاصی آموزشی مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزش‌های مهندسی و علوم کامپیوتر فرادرس

✳️ CCNA چیست ؟ — آزمون، مدرک، گرایش‌ها، بازار کار و درآمد

‏CCNA یک مدرک معتبر برای افرادی است که قصد فعالیت در زمینه شبکه‌های کامپیوتری و فناوری اطلاعات (IT)، خصوصا کار با تجهیزات شرکت سیسکو را دارند. در این مطلب، به سوالات رایجی از قبیل «سیسکو چیست؟»، «مدرک سیسکو چیست؟»، «CCNA چیست؟»، «منابع CCNA چیست؟» «سرفصل‌های CCNA چیست؟» و سایر نکات و مسائل مربوط به CCNA پرداخته شده است. اما، قبل از ورود به بحث CCNA، لازم است ارائه دهنده و خالق این مدرک، به عنوان برجسته‌ترین شرکت در زمینه سخت‌افزار و نرم‌افزار شبکه،‌ معرفی شود.

══ فهرست مطالب ══

‏ ○ سیسکو چیست ؟
‏ ○ مدارک سیسکو چیست ؟
‏ ○ CCNA چیست ؟
‏ ○ معرفی فیلم آموزش سی سی ان ای
‏ ○ سرفصل های CCNA
‏ ○ چطور برای آزمون CCNA‌ آماده شویم ؟
‏ ○ تجدید مجوز CCNA
‏ ○ مشاغل CCNA
‏ ○ بازار کار CCNA
‏ ○ درآمد CCNA چقدر است ؟
‏ ○ فیلم آموزش CCNA فرادرس
‏ ○ جمع بندی


🔸 سیسکو چیست ؟

‏اتحادیه کسب و کار سیسکو سیستم (.Cisco Systems Inc)‌ از شرکت‌های پیشتاز در زمینه شبکه‌های کامپیوتری است. شرکت سیسکو همواره به عنوان مشهورترین تولید کننده و فروشنده تجهیزات شبکه شناخته شده است. همچنین، این شرکت یک ارائه کننده نرم‌افزار و خدمات مربوط به آن است.

‏سیسکو در طول حیاتش روی فناوری‌های شبکه مبتنی بر پروتکل اینترنت (فناوری‌های شبکه مبتنی بر آی‌پی |‌ IP-Based Networking Technologies)،‌ محصولات مسیریابی و سوئیچینگ برای شبکه خانگی (Routing and Switching Products for Home Networking)،‌ تلفن مبتنی بر آی‌پی (IP Telephony | VoIP)، شبکه فیبر نوری (Optical Networking)،‌ امنیت (Security)،‌ ذخیره‌سازی تحت شبکه (Storage Area Networking) و فناوری وایرلس (Wireless Technology) تمرکز داشته است.

‏سندی لِرنِر (Sandy Lerner) و همسرش لِن بوساک (Len Bosack)‌ شرکت سیسکو را در اوایل دهه ۶۰ شمسی تأسیس کردند. در آن زمان،‌ بوساک مسئول رایانه در واحد علوم کامپیوتر دانشگاه استنفورد بود و خانم لرنر همین مسئولیت را در دانشکده تحصیلات تکمیلی رشته اقتصاد دانشگاه برعهده داشت. بوساک و کرک لاکهید (Kirk Logheed)‌ اولین محصول سیسکو را با نام مسیریاب AGS در حالی توسعه دادند که هنوز در استنفورد مشغول به کار بودند. در ادامه و قبل از پرداختن به چیستی CCNA،‌ معرفی مدارک سیسکو و بررسی دلیل ارائه این مدارک توسط این شرکت، ضروری به نظر می‌رسد.


🔸 مدارک سیسکو چیست ؟

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

‏بنابراین، برای اطمینان از این که افراد فعال در حرفه آی‌تی، مهارت و دانش لازم برای پشتیبانی از محصولات سیسکو و رفع مشکلات مشتریان در بسیاری از جنبه‌‌ها را داشته باشند،‌ ارائه برنامه صدور گواهینامه شغلی سیسکو (Cisco Career Certification program) بسیار ضروری و منطقی به نظر می‌رسد.

‏برنامه صدور گواهینامه شغلی سیسکو،‌ به صورت یک نقشه راه از سطح مبتدی آغاز شده و سپس در سطوح کاردان (Associate)، کارشناس (professional) و متخصص (Expert)‌ ادامه می‌یابد. البته، در برخی از گرایش‌ها،‌ ارائه گواهی در سطح معمار (Architect) نیز انجام می‌شود. سطح معمار، پس از سطح متخصص و بالاتر از آن قرار دارد.



مطالعه ادامه مطلب 👇👇

🔗 CCNA چیست ؟ — آزمون، مدرک، گرایش‌ها، بازار کار و درآمد — کلیک کنید (+)


📌 کانال اختصاصی آموزشی مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزش‌های مهندسی و علوم کامپیوتر فرادرس

✳️ تعمیر هارد درایو با هدف بازیابی اطلاعات آن — راهنمای کاربردی

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

══ فهرست مطالب ══

‏ ○ داستان یک فرد نادم
‏ ○ قاب و کابل‌های هارد اکسترنال را بررسی کنید
‏ ○ همه اتصال‌های کابلی هارد درایو اینترنال را بررسی کنید
‏ ○ آیا هارد درایو شما سر و صدا تولید می‌کند؟
‏ ○ آیا ویندوز درایو شما را شناسایی می‌کند؟
‏ ○ آیا PCB شکسته است؟
‏ ○ جادو و جمبل
‏ ○ توصیه‌ای برای راهبرد پشتیبان‌گیری
‏ ○ با یک متخصص در زمینه بازیابی داده‌ها مشورت کنید
‏ ○ احیای درایو


🔸 داستان یک فرد نادم

‏در این بخش داستانی را برای شما تعریف می‌کنیم که ممکن است برای هر کدام از ما اتفاق بیفتد. قهرمان داستان ما چند سال پیش با یک خرابی هارد دیسک مواجه شده است. ابتدای قضیه از عملکرد عجیب لپ‌تاپ آغاز می‌شود. زمانی که این عملکرد عجیب پس از ریبوت لپ‌تاپ همچنان تداوم می‌یابد، وی متوجه می‌شود که مشکل چیزی بیش از پر شدن ظرفیت RAM است. درنتیجه بی‌درنگ اقدام به پشتیبانی‌گیری از فایل‌های جدید خود می‌کند. نیم ساعت بعد هارددیسک با سر و صدا از کار می‌افتد و لپ‌تاپ دیگر بوت نمی‌شود.

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

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


🔸 قاب و کابل‌های هارد اکسترنال را بررسی کنید

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

‏پیش از باز کردن سخت‌افزار باید مطمئن شوید که الکتریسیته ساکن بدن خود را تخلیه کرده‌اید. هارد درایو را از قاب آن جدا کنید و از یک کابل دیتا IDE/SATA و کانکتورهای برق برای نصب درایو به صورت اینترنال به رایانه رومیزی خود استفاده کنید. به طور جایگزین می‌توانید یک آداپتر IDE/SATA به USB و یا یک قالب USB جدید بگیرید و بدین ترتیب درایو خود را به صورت اکسترنال و از طریق یو‌اس‌بی به سیستم وصل کنید.

‏زمانی که درایو اکسترنال را مجدداً به رایانه خود وصل کردید، در صورتی که اشکال از قاب آن باشد، ویندوز باید آن را شناسایی کرده و یک حرف درایو به آن اختصاص دهد. در این حالت درایو در بخش File Explorer > This PC ظاهر می‌شود. همچنین می‌توانید بخش Disk Drives در Device Manager را نیز بررسی کنید. برای رفتن به Device Manager کلیدهای میانبر Win + X را بزنید تا گزینه مربوطه را مشاهده کنید.



مطالعه ادامه مطلب 👇👇

🔗 تعمیر هارد درایو با هدف بازیابی اطلاعات آن — راهنمای کاربردی — کلیک کنید (+)


📌 کانال اختصاصی آموزشی مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزش‌های مهندسی و علوم کامپیوتر فرادرس

✳️ مفهوم فناوری ۷ نانومتری و ۱۰ نانومتری در CPU — به زبان ساده

‏CPU-ها از میلیاردها ترانزیستور بسیار کوچک تشکیل یافته‌اند. ترانزیستورها دروازه‌های الکتریکی هستند که برای اجرای محاسبات، روشن یا خاموش می‌شوند. ترانزیستور برای این کار به برق نیاز دارد و هر چه ترانزیستور کوچک‌تر باشد، توان کمتری مصرف می‌کند. فناوری ۷ نانومتری و یا ۱۰ نانومتری در واقع مقیاسی برای اندازه این ترانزیستورها هستند. نانومتر یک واحد طول بسیار کوچک و در عین حال معیاری مفید برای اندازه‌گیری قدرت محاسباتی یک CPU است.

══ فهرست مطالب ══

‏ ○ دلیل اهمیت فناوری ۷ نانومتری و ۱۰ نانومتری چیست؟
‏ ○ نانومتر واقعاً به چه معنا است؟
‏ ○ تراشه‌های موبایل بیشترین بهبود را شاهد خواهند بود


🔸 دلیل اهمیت فناوری ۷ نانومتری و ۱۰ نانومتری چیست؟

‏«قانون مور» (Moore’s Law) یک قانون قدیمی در صنعت سخت‌افزار است که بیان می‌کند تعداد ترانزیستورهای روی یک تراشه هر سال دو برابر و هزینه تولید آن نصف می‌شود. مدت مدیدی است که این قانون پابرجا بوده است؛ اما اخیراً روند آن کندتر شده است. در اواخر دهه ۱۹۹۰ و اوایل ۲۰۰۰، اندازه ترانزیستورها هر ساله نصف می‌شد و منجر به بهبود زیادی در طی یک زمان‌بندی منظم شد. اما اینک فشرده‌سازی بیشتر ترانزیستورها دشوار شده است و ما از سال ۲۰۱۴ به بعد دیگر شاهد فشرده‌سازی ترانزیستورها از سوی اینتل نبوده‌ایم. این فرایندهای تولید جدید یعنی فناوری‌های ۱۰ و ۷ نانومتری، در واقع نخستین فشرده‌سازی ترانزیستورها پس از مدتی طولانی به خصوص از سوی شرکت اینتل محسوب می‌شوند و بدین ترتیب شاهد احیای نسبی قانون مور خواهیم بود.

‏علی‌رغم این تأخیر اینتل، امروزه حتی دستگاه‌های موبایل نیز به لطف تراشه‌های A۱۲X اپل شانس بهره‌مندی از فناوری نانومتری TSMC را یافته‌اند و سامسونگ نیز فناوری خاص ۱۰ نانومتری خود را ابداع کرده است. با توجه به نسل بعدی فناوری ۷ نانومتری TSMC این فرصت برای تولیدکنندگان دیگر وجود دارد که عملکرد اینتل را پشت سر بگذارند و رقابتی سالم با انحصار اینتل، دست‌کم تا زمانی که هنوز تراشه‌های ۱۰ نانومتری Sunny Cove را به بازار عرضه نکرده است، به راه بیندازند.


🔸 نانومتر واقعاً به چه معنا است؟

‏CPU-ها با استفاده از تکنیک «لیتوگرافی نوری» (photolithography) ساخته می‌شوند. در این تکنیک، تصویری از CPU روی یک ورقه سیلیکونی حک می‌شود. شیوه دقیق انجام این کار غالباً به نام «process node» شناخته می‌شود و بر اساس میزان توانایی سازنده در کوچک ساختن ترانزیستورها اندازه‌گیری می‌شود.

‏از آنجا که ترانزیستورهای کوچک‌تر کارایی بیشتری دارند، می‌توانند محاسبات بیشتری را بدون این که بیش از حد داغ شوند، انجام دهند. این وضعیت بسیار مناسب است، زیرا داغ شدن در اغلب موارد یک عامل محدودکننده برای عملکرد CPU است. بدین ترتیب امکان ساخت تراشه‌هایی با اندازه کوچک‌تر نیز فراهم می‌شود که موجب کاهش هزینه و افزایش چگالی در اندازه‌های یکسان می‌شود و این بدان معنی است که تعداد هسته‌های بیشتری می‌توان روی یک تراشه داشت. فناوری ۷ نانومتری عملاً دو برابر فشرده‌تر از فناوری ۱۴ نانومتری است و به شرکت‌هایی مانند AMD امکان می‌دهد که تراشه‌های سرور ۶۴ هسته‌ای ارائه کنند. این تراشه‌ها نسبت به تراشه‌های قبلی که ۳۲ هسته‌ای بودند، بهبود عملکرد زیادی دارند.



مطالعه ادامه مطلب 👇👇

🔗 مفهوم فناوری ۷ نانومتری و ۱۰ نانومتری در CPU — به زبان ساده — کلیک کنید (+)


📌 کانال اختصاصی آموزشی مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزش‌های مهندسی و علوم کامپیوتر فرادرس

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

‏الگوریتم کلمه‌ای است که بسیار با آن مواجه می‌شویم. اما وقتی در مورد الگوریتم‌های یوتیوب یا فیسبوک صحبت می‌کنیم، منظورمان دقیقاً چیست؟ الگوریتم‌ها چه هستند و چرا افراد تا این حد از آن‌ها در هراس هستند؟

══ فهرست مطالب ══

‏ ○ الگوریتم‌ها، دستورالعمل حل مسئله هستند
‏ ○ اغلب افراد از «الگوریتم» و «یادگیری ماشین» به جای هم استفاده می‌کنند
‏ ○ چرا الگوریتم‌ها بحث‌ برانگیز هستند؟
‏ ○ چطور می‌توانیم از واژه الگوریتم استفاده کنیم؟


🔸 الگوریتم‌ها، دستورالعمل حل مسئله هستند

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

‏برنامه‌نویسی صرفاً یک عنوان شغلی جذاب محسوب نمی‌شود؛ بلکه مبنای همه نرم‌افزارهای رایانه‌ای از آفیس مایکروسافت تا نرم‌افزارهای سخنگوی تلفنی است. حتی اگر دانش شما از برنامه‌نویسی تنها منحصر به فیلم‌های خیلی قدیمی و گزارش‌های خبری زرد باشد، احتمالاً متوجه هستید که کار یک برنامه‌نویس چیست. برنامه‌نویس کدی را برای رایانه می‌نویسد و رایانه با استفاده از دستورالعمل‌های تعریف شده آن کد وظایفی را برای حل مسائل اجرا می‌کند.

‏اینک باید گفت که در دنیای دانش رایانه، الگوریتم در واقع عنوانی جذاب برای نامیدن کد است. هر مجموعه دستورالعمل که به یک رایانه اعلام کند مسائل را چگونه حل کند یک الگوریتم محسوب می‌شود؛ حتی اگر آن وظیفه بسیار آسان باشد. زمانی که رایانه خود را روشن می‌کنید، یک مجموعه از دستورالعمل‌های «شیوه روشن شدن» اجرا می‌شوند. زمانی که رایانه NASA از داده‌های موج رادیویی خام برای رندر کردن یک عکس فضایی استفاده می‌کند، همچنان یک الگوریتم اجرا شده است.


🔸 اغلب افراد از «الگوریتم» و «یادگیری ماشین» به جای هم استفاده می‌کنند

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

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

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



مطالعه ادامه مطلب 👇👇

🔗 الگوریتم چیست؟ — به زبان ساده — کلیک کنید (+)


📌 کانال اختصاصی آموزشی مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزش‌های مهندسی و علوم کامپیوتر فرادرس

✳️ درس الگوریتم های پیشرفته | مفاهیم پایه به زبان ساده

‏درس الگوریتم های پیشرفته از جمله مفاد درسی مقطع کارشناسی ارشد رشته‌های مهندسی کامپیوتر – نرم‌افزار، مهندسی کامپیوتر – الگوریتم‌ها و محاسبات و مهندسی کامپیوتر- هوش مصنوعی است. همچنین، درس الگوریتم های پیشرفته یکی از دروس اختیاری مقطع کارشناسی ارشد رشته مهندس فناوری اطلاعات نیز محسوب می‌شود. علاوه بر آنکه درس الگوریتم های پیشرفته یکی از مباحث درسی رشته‌های مهندسی کامپیوتر و فناوری اطلاعات است، یک مبحث پایه‌ای برای فعالیت در حوزه‌های «هوش مصنوعی» (Artificial Intelligence)، «یادگیری ماشین» (Machine Learning) و «علم داده» (Data Science) نیز به شمار می‌آید. تسلط بر مبحث تحلیل و طراحی الگوریتم ها و نظریه الگوریتم های پیشرفته به برنامه‌نویس‌ها نیز در حل بهتر مسائل برنامه‌نویسی و نوشتن کدهایی با کارایی و سرعت اجرای بالاتر و مصرف حافظه کم‌تر، کمک شایان توجهی می‌کند.

══ فهرست مطالب ══

‏ ○ الگوریتم چیست؟
‏ ○ فلوچارت
‏ ○ ساختارهای داده
‏ ○ ساختارهای داده پیشرفته
‏ ○ تحلیل الگوریتم‌ها
‏ ○ تحلیل پیشرفته الگوریتم‌ها و آنالیز استهلاکی
‏ ○ رده‌بندی مسائل محاسباتی
‏ ○ الگوریتم‌های مرتب‌سازی
‏ ○ روش‌های طراحی الگوریتم‌ها
‏ ○ روش‌های تکرار شونده
‏ ○ روش‌های بازگشتی
‏ ○ روش‌های تقسیم و حل
‏ ○ روش شاخه و حد
‏ ○ روش حریصانه
‏ ○ برنامه‌نویسی خطی
‏ ○ برنامه‌نویسی پویا
‏ ○ روش‌های پَس‌گَرد
‏ ○ تحلیل احتمالی الگوریتم‌ها
‏ ○ روش‌های چند ریسمانی
‏ ○ چند جمله‌ای و تبدیل فوریه سریع
‏ ○ روش‌های نظریه اعداد
‏ ○ روش‌های تقریبی
‏ ○ الگوریتم‌های گراف
‏ ○ تطبیق رشته
‏ ○ هندسه محاسباتی
‏ ○
‏ ○ کتب مرجع برای درس تحلیل و طراحی الگوریتم ها و درس الگوریتم های پیشرفته
‏ ○ منابع آموزشی ویدئویی برای درس تحلیل و طراحی الگوریتم ها و درس الگوریتم های پیشرفته


🔸 الگوریتم چیست؟

‏در درس تحلیل و طراحی الگوریتم ها، ابتدا به مفهوم الگوریتم‌ها پرداخته می‌شود. بنابراین، در اینجا نیز ابتدا واژه‌شناسی کلمه «الگوریتم» (Algorithm)، تعریف الگوریتم، مثالی از یک الگوریتم، کاربردهای الگوریتم‌ها و آینده الگوریتم‌ها مورد بررسی قرار می‌گیرد. کلمه الگوریتم بر خلاف تصویر بسیاری از افراد که فکر می‌کنند این کلمه از ریشه کلمه‌های یونانی Arithmos (به یونانی αριθμός) به معنای «عدد» و «Algos» (به یونانی άλγος) به معنای «درد» است، از این دو کلمه گرفته نشده است.

‏بلکه، این کلمه از نام دانشمند ایرانی قرن نهم میلادی، «محمد بن موسی خوارزمی» (Muhammad ibn Musa al-Khwarizmi) گرفته شده است. خوارزمی، بیشتر به خاطر نوشتن رساله «المختصر فی حساب الجبر والمقابله» (The Compendious Book on Calculation by Completion and Balancing) معروف است؛ کتابی که کلمه «جبر» (Algebra) از آن آمده است. خوارزمی در رساله دیگری نیز سیستم ده‌دهی نوین را برای نوشتن و دستکاری اعداد معرفی کرد.

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


🔸 فلوچارت

‏«فلوچارت» (Flowchart) نوعی نمودار است که جریان کاری یا فرایند را نشان می‌دهد. می‌توان گفت که یک فلوچارت در واقع نمایش نموداری یک الگوریتم و یک رویکرد مرحله به مرحله برای حل مسئله است. فلوچارت از اشکال هندسی تشکیل شده است که هر یک نماد نوع خاصی از عملیات هستند. این فلوچارت‌ها با استفاده از جهت‌نماها به یکدیگر متصل شده‌اند. این نمایش بصری در واقع مدل راهکار برای یک مسئله داده شده را نشان می‌دهد.



مطالعه ادامه مطلب 👇👇

🔗 درس الگوریتم های پیشرفته | مفاهیم پایه به زبان ساده — کلیک کنید (+)


📌 کانال اختصاصی آموزشی مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزش‌های مهندسی و علوم کامپیوتر فرادرس

2
✳️ ساختمان داده (Data Structure) — راهنمای جامع و کاربردی

‏آشنایی با «ساختمان داده‌ها» (Data Structures) از جمله نیازهای دانشمندان داده، مهندسان داده، داده‌کاوها، کارشناسان یادگیری ماشین و برنامه‌نویس‌ها محسوب می‌شود. مهندسین نرم‌افزار بیش از ۴۰ سال است که با انواع ساختارهای داده سر و کار دارند، از این رو در اغلب مسائل موجود در داده‌کاوی، یادگیری ماشین و برنامه‌نویسی نیاز به داشتن درک عمیقی از ساختمان داده‌ها وجود دارد. اهمیت این مبحث تا حدی است که در بسیاری از مصاحبه‌های استخدام پرسش‌هایی پیرامون آن مطرح می‌شود. بنابراین در این مطلب، به موضوع ساختمان داده‌ها پرداخته شده است. سرفصل‌های مورد بررسی در این مطلب در ادامه آمده‌اند.

══ فهرست مطالب ══

‏ ○ ساختمان داده چیست؟
‏ ○ چرا به ساختمان داده نیاز است؟
‏ ○ ساختارهای داده متداول کدامند؟


🔸 ساختمان داده چیست؟

‏به بیان ساده، «ساختمان داده» (Data Structure) ظرفی است که داده‌ها در آن در یک قالب خاص ذخیره‌سازی می‌شوند. این «قالب» به ساختمان داده‌ها این امکان را می‌دهد که در برخی از عملیات کارآمد و در برخی دیگر ناکارآمد باشند. در یک مساله جاری باید ساختمان داده‌ای انتخاب شود که بهینه‌ترین حالت ممکن است.


🔸 چرا به ساختمان داده نیاز است؟

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



مطالعه ادامه مطلب 👇👇

🔗 ساختمان داده (Data Structure) — راهنمای جامع و کاربردی — کلیک کنید (+)


📌 کانال اختصاصی آموزشی مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزش‌های مهندسی و علوم کامپیوتر فرادرس

✳️ آموزش ساختمان داده — مجموعه مقالات جامع وبلاگ فرادرس

‏ساختمان داده (ساختار داده) روش برنامه‌نویسی شده برای ذخیره‌سازی داده است تا بتوان به طرز کارآمدی از آن بهره جست. تقریباً همه اپلیکیشن‌ها از انواع مختلفی از ساختمان داده به روش‌های متفاوت استفاده می‌کنند. ما در سلسله مباحث آموزش ساختمان داده در بلاگ فرادرس به معرفی مفاهیمی پرداخته‌ایم که برای درک ساختارها و الگوریتم‌های مختلف مورد استفاده در کاربردهای گوناگون کمک می‌کنند. مطالبی که در این سلسله مقالات ارائه شده‌اند، به صورت زیر دسته‌بندی می‌شوند.

══ فهرست مطالب ══

‏ ○ مبانی ساختمان داده
‏ ○ الگوریتم‌های داده
‏ ○ الگوریتم‌های جستجوی داده
‏ ○ مرتب‌سازی داده
‏ ○ گراف و درخت
‏ ○ بازگشت


🔸 مبانی ساختمان داده

‏مفاهیم مقدماتی ساختمان‌ها و الگوریتم‌های داده در مقاله‌ زیر ارائه شده است. در این مقاله برخی مفاهیم ابتدایی و همچنین مواردی که در زمان اجرا مورد نیاز هستند به همراه روش راه‌اندازی محیط برنامه‌نویسی زبان C برای بررسی عملی مسائل مطرح شده در مقاله آموزش داده شده است:

‏– ساختار داده و الگوریتم‌ها — راهنمای مقدماتی

‏در ادامه در مطلب زیر به تعریف داده، انواع آن و برخی عملیات‌های ابتدایی که روی داده‌ها صورت می‌گیرد، پرداخته‌ایم. همچنین با ساختمان داده‌ای به نام آرایه شیوه نمایش و عملیات‌های آن آشنا می‌شوید:

‏– معرفی مبانی ساختار داده و آرایه‌های داده‌ای

‏همچنین، جهت مطالعه بیشتر پیرامون ارتباط ساختمان داده و درس تحلیل و طراحی الگوریتم ها و درس الگوریتم های پیشرفته (درس نظریه الگوریتم پیشرفته)، مطالعه مطلب «درس الگوریتم های پیشرفته | مفاهیم پایه به زبان ساده» پیشنهاد می‌شود.


🔸 الگوریتم‌های داده

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

‏– معرفی الگوریتم‌های مجانبی، حریصانه و برنامه‌نویسی دینامیک

‏پشته و صف دو مورد از ساختارهای داده‌ای هستند که بیشترین استفاده را در کاربردهای مختلف دارند. این دو ساختار داده در مطلب زیر به تفصیل مورد بحث و بررسی قرار گرفته‌اند:

‏– پشته (Stack)، صف (Queue) و تجزیه عبارت



مطالعه ادامه مطلب 👇👇

🔗 آموزش ساختمان داده — مجموعه مقالات جامع وبلاگ فرادرس — کلیک کنید (+)


📌 کانال اختصاصی آموزشی مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزش‌های مهندسی و علوم کامپیوتر فرادرس

✳️ مفاهیم سیستم عامل — راهنمای جامع

‏سیستم عامل (OS) رابط بین کاربر رایانه و سخت‌افزار آن است. یک سیستم عامل در واقع نرم‌افزاری است که همه وظایف پایه‌ای مانند مدیریت فایل، مدیریت حافظه، مدیریت پروسه‌ها، مدیریت ورودی‌ها و خروجی‌ها و کنترل دستگاه‌هایی مانند درایوهای دیسک و پرینترها را بر عهده دارد. در این سری از نوشته‌های بلاگ فرادرس که این نوشته اولین بخش آن محسوب می‌شود، به بررسی جامع مفاهیم، کارکردها و نقش سیستم عامل می‌پردازیم. برخی سیستم‌های عامل محبوب شامل لینوکس، OS X، VMS، OS/۴۰۰، AIX، Z/OS و غیره هستند.

══ فهرست مطالب ══

‏ ○ تعریف سیستم عامل
‏ ○ مدیریت حافظه
‏ ○ مدیریت پردازنده
‏ ○ مدیریت دستگاه‌ها
‏ ○ مدیریت فایل
‏ ○ فعالیت‌های مهم دیگر


🔸 تعریف سیستم عامل

‏سیستم عامل برنامه‌ای است که به عنوان یک رابط بین کاربر و سخت‌افزار کامپیوتر عمل می‌کند و اجرای عملی انواع برنامه‌ها را کنترل می‌کند.

‏در ادامه برخی از ویژگی‌های مهم یک سیستم عامل ارائه شده است:

‏– مدیریت حافظه

‏– مدیریت پروسه‌ها

‏– مدیریت لوازم رایانه

‏– مدیریت فایل

‏– امنیت

‏– کنترل روی عملکرد سیستم

‏– محاسبه کارها

‏– کمک به تشخیص خطاها

‏– هماهنگی بین نرم‌افزارهای دیگر و کاربران


🔸 مدیریت حافظه

‏منظور از مدیریت حافظه در واقع مدیریت حافظه اصلی رایانه است. حافظه اصلی آرایه بزرگی از کلمه (word) ها و بایت‌ها است که در آن هر کلمه یا بایت آدرس خاص خود را دارد.

‏حافظه اصلی یک روش ذخیره‌سازی سریع است که می‌تواند به طور مستقیم از سوی CPU مورد دسترسی قرار گیرد. برای این که یک برنامه اجرا شود، باید در حافظه اصلی قرار داشته باشد. یک سیستم عامل فعالیت‌های زیر را برای مدیریت حافظه انجام می‌دهد:

‏– رد فعالیت‌هایی که در حافظه اصلی صورت می‌پذیرد را نگه‌داری می‌کند، یعنی بررسی می‌کند که کدام بخش‌های حافظه از سوی کدام برنامه‌ها اشغال شده‌اند و کدام بخش‌ها مورد استفاده قرار نگرفته‌اند.

‏– در زمان اجرای برنامه‌های چندگانه، سیستم عامل تصمیم می‌گیرد که کدام پروسه چه مقدار حافظه و از کدام موقعیت دریافت می‌کند.

‏– زمانی که برنامه‌ای درخواست حافظه می‌کند، آن را تخصیص می‌دهد.

‏– زمانی که پروسه‌ای دیگر به حافظه نیاز نداشته باشد، آن را تخصیص زدایی کرده و خاتمه می‌دهد.



مطالعه ادامه مطلب 👇👇

🔗 مفاهیم سیستم عامل — راهنمای جامع — کلیک کنید (+)


📌 کانال اختصاصی آموزشی مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزش‌های مهندسی و علوم کامپیوتر فرادرس

✳️ رشته علوم کامپیوتر | معرفی گرایش ها، حقوق و درآمد و بازار کار + فیلم آموزش رایگان

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

══ فهرست مطالب ══

‏ ○ رشته علوم کامپیوتر مناسب چه کسانی است؟
‏ ○ کدام دروس دوره دبیرستان در رشته علوم کامپیوتر بیشتر کاربرد دارند؟
‏ ○ گرایش‌های رشته علوم کامپیوتر برای ادامه تحصیل چه هستند؟
‏ ○ مهم‌ترین دروس دانشگاهی رشته علوم کامپیوتر چه هستند؟
‏ ○ فارغ التحصیل رشته علوم کامپیوتر در چه کارها و صنایعی می‌تواند شاغل شود؟
‏ ○ بازار کار رشته علوم کامپیوتر به چه صورت است؟
‏ ○ امکان ادامه تحصیل در رشته علوم کامپیوتر در داخل ایران چگونه است؟
‏ ○ امکان ادامه تحصیل در رشته علوم کامپیوتر در خارج از کشور به چه صورت است؟
‏ ○ دروس دانشگاهی رشته علوم کامپیوتر تا چه میزان نیازهای بازار کار را پاسخگو هستند؟


🔸 رشته علوم کامپیوتر مناسب چه کسانی است؟

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

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

‏پایه و اساس رشته‌ علوم کامپیوتر علاقه به ریاضیات است. دانشجوی این رشته باید علاوه بر مباحث ریاضی به ساخت استدلال و اثبات موضوعات مختلف با دید منطقی و عددی اشتیاق داشته باشد (حتی مسائل روزمره‌ جهان پیرامون). واژگان علوم کامپیوتر و گرایش‌های مربوطه بر خلاف معنا‌شناسی، برای انجام محاسبات، بیشتر نیازمند قلم و کاغذ هستند تا کامپیوتر.


🔸 کدام دروس دوره دبیرستان در رشته علوم کامپیوتر بیشتر کاربرد دارند؟

‏با توجه به وابستگی زیاد رشته‌ علوم کامپیوتر به ریاضیات، افرادی که فارغ‌ التحصیل رشته ریاضی‌ و فیزیک در دوره‌ متوسطه هستند، شرایط بهتری از نظر پیش‌نیازهای لازم نسبت به فارغ‌التحصیلان سایر رشته‌ها دارند.

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

‏فارغ التحصیلان رشته‌ فنی و حرفه‌ای گرایش کامپیوتر هم شرایط مناسبی برای ورود به دنیای علوم کامپیوتر خواهند داشت؛ زیرا این قشر پیش از این با مقدمات لازم برای برنامه‌نویسی آشنا شده‌اند و تا حدی به دید منطقی در حل مسئله و ارائه راهکارهای الگوریتم‌وار برای آن دست یافته‌اند. از همین رو افراد مذکور با ورود به رشته علوم کامپیوتر برای بسیاری از مباحث پایه در این حوزه آمادگی ذهنی دارند.



مطالعه ادامه مطلب 👇👇

🔗 رشته علوم کامپیوتر | معرفی گرایش ها، حقوق و درآمد و بازار کار + فیلم آموزش رایگان — کلیک کنید (+)


📌 کانال اختصاصی آموزشی مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزش‌های مهندسی و علوم کامپیوتر فرادرس

✳️ گراف در علوم کامپیوتر — راهنمای مقدماتی

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

══ فهرست مطالب ══

‏ ○ انگیزه بحث راجع به گراف در علوم کامپیوتر
‏ ○ گره‌ها، رأس‌ها و یال‌ها
‏ ○ جهت‌دار یا غیر جهت‌دار
‏ ○ گراف‌های دوری یا غیر دوری
‏ ○ یال‌های وزن‌دار
‏ ○ مسائلی که می‌توان با گراف حل کرد
‏ ○ سخن پایانی


🔸 انگیزه بحث راجع به گراف در علوم کامپیوتر

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

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

‏این همان تصوری است که باید در ذهن خود داشته باشید. همه مفاهیم پیچیده‌ای مانند (G(V, E که در کتب درسی ارائه می‌شوند صرفاً روشی برای بیان همان مفهوم انتزاعی اتصال نقطه‌ها به هم با استفاده از خطوط است.


🔸 گره‌ها، رأس‌ها و یال‌ها

‏زمانی که دانشمندان رایانه در مورد گراف صحبت می‌کنند، از واژه‌های نقطه و خط استفاده نمی‌کنند. به جای آن به هر نقطه، یک گره یا رأس و به هر خط، یک یال یا کمان گفته می‌شود. متداول‌ترین اصطلاح‌ها رأس و یال هستند. زمانی که می‌بیند فردی برای نمایش گراف از نماد (G(V, E استفاده می‌کند، در واقع منظور وی این است که گراف G دارای مجموعه رأس V و مجموعه یال E است.



مطالعه ادامه مطلب 👇👇

🔗 گراف در علوم کامپیوتر — راهنمای مقدماتی — کلیک کنید (+)


📌 کانال اختصاصی آموزشی مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزش‌های مهندسی و علوم کامپیوتر فرادرس

✳️ انواع شبکه های کامپیوتری — راهنمای جامع

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

══ فهرست مطالب ══

‏ ○ شبکه شخصی (Personal Area Network)
‏ ○ شبکه محلی (Local Area Network)
‏ ○ شبکه شهری (Metropolitan Area Network)
‏ ○ شبکه گسترده (Wide Area Network)
‏ ○ اینترنتورک (Internetwork)


🔸 شبکه شخصی (Personal Area Network)

‏یک شبکه شخصی (PAN) کوچک‌ترین نوع شبکه‌ای است که به یک کاربر اختصاص دارد. این نوع شبکه می‌تواند شامل دستگاه‌های دارای بلوتوث یا دستگاه‌های فروسرخ (اینفرارد) باشد. PAN گستره اتصال‌پذیری در حدود ۱۰ متر دارد. این نوع شبکه می‌تواند شامل کیبورد و ماوس بی‌سیم رایانه، هدفون‌های با قابلیت بلوتوث، پرینترهای بی‌سیم و ریموت‌های تلویزیون باشد.

‏برای نمونه پیکونت (Piconet) یک شبکه شخصی مجهز به بلوتوث است که می‌تواند شامل حداکثر ۸ دستگاه متصل به هم به روش master-slave باشد.


🔸 شبکه محلی (Local Area Network)

‏شبکه محلی (LAN) در محدوده داخل یک ساختمان گسترش یافته و زیر نظر یک مدیر سیستم منفرد کار می‌کند. LAN به طور معمول شامل اتاق‌های یک سازمان، مدرسه یا کالج‌ها و دانشگاه‌ها می‌شود. تعداد سیستم‌های متصل به یک LAN از دست‌کم دو سیستم تا ۱۶ میلیون دستگاه متفاوت است.

‏LAN روشی مفید بری اشتراک منابع بین کاربران نهایی فراهم می‌کند. منابعی مانند پرینترها، سرورهای فایل، اسکنرها و اینترنت از طریق رایانه‌های متصل به چنین شبکه‌ای به سهولت قابل اشتراک هستند.

‏LAN-ها از شبکه‌بندی و تجهیزات مسیریابی ساده‌ای تشکیل می‌یابند. یک چنین معماری می‌تواند شامل سرورهای محلی باشد که دارای کارکردهای ذخیره‌سازی فایل و دیگر کاربردهای مشترک محلی هستند. چنین شبکه‌هایی به طور معمول روی آدرس‌های IP خصوصی کار می‌کنند و مسیریابی چندان سنگینی ندارند. LAN تحت دامنه اختصاصی خود کار می‌کند و اتصال آن به صورت متمرکز است.



مطالعه ادامه مطلب 👇👇

🔗 انواع شبکه های کامپیوتری — راهنمای جامع — کلیک کنید (+)


📌 کانال اختصاصی آموزشی مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزش‌های مهندسی و علوم کامپیوتر فرادرس

👍1
✳️ رشته علوم کامپیوتر | معرفی گرایش ها، حقوق و درآمد و بازار کار + فیلم آموزش رایگان

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

══ فهرست مطالب ══

‏ ○ رشته علوم کامپیوتر مناسب چه کسانی است؟
‏ ○ کدام دروس دوره دبیرستان در رشته علوم کامپیوتر بیشتر کاربرد دارند؟
‏ ○ گرایش‌های رشته علوم کامپیوتر برای ادامه تحصیل چه هستند؟
‏ ○ مهم‌ترین دروس دانشگاهی رشته علوم کامپیوتر چه هستند؟
‏ ○ فارغ التحصیل رشته علوم کامپیوتر در چه کارها و صنایعی می‌تواند شاغل شود؟
‏ ○ بازار کار رشته علوم کامپیوتر به چه صورت است؟
‏ ○ امکان ادامه تحصیل در رشته علوم کامپیوتر در داخل ایران چگونه است؟
‏ ○ امکان ادامه تحصیل در رشته علوم کامپیوتر در خارج از کشور به چه صورت است؟
‏ ○ دروس دانشگاهی رشته علوم کامپیوتر تا چه میزان نیازهای بازار کار را پاسخگو هستند؟


🔸 رشته علوم کامپیوتر مناسب چه کسانی است؟

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

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

‏پایه و اساس رشته‌ علوم کامپیوتر علاقه به ریاضیات است. دانشجوی این رشته باید علاوه بر مباحث ریاضی به ساخت استدلال و اثبات موضوعات مختلف با دید منطقی و عددی اشتیاق داشته باشد (حتی مسائل روزمره‌ جهان پیرامون). واژگان علوم کامپیوتر و گرایش‌های مربوطه بر خلاف معنا‌شناسی، برای انجام محاسبات، بیشتر نیازمند قلم و کاغذ هستند تا کامپیوتر.


🔸 کدام دروس دوره دبیرستان در رشته علوم کامپیوتر بیشتر کاربرد دارند؟

‏با توجه به وابستگی زیاد رشته‌ علوم کامپیوتر به ریاضیات، افرادی که فارغ‌ التحصیل رشته ریاضی‌ و فیزیک در دوره‌ متوسطه هستند، شرایط بهتری از نظر پیش‌نیازهای لازم نسبت به فارغ‌التحصیلان سایر رشته‌ها دارند.

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

‏فارغ التحصیلان رشته‌ فنی و حرفه‌ای گرایش کامپیوتر هم شرایط مناسبی برای ورود به دنیای علوم کامپیوتر خواهند داشت؛ زیرا این قشر پیش از این با مقدمات لازم برای برنامه‌نویسی آشنا شده‌اند و تا حدی به دید منطقی در حل مسئله و ارائه راهکارهای الگوریتم‌وار برای آن دست یافته‌اند. از همین رو افراد مذکور با ورود به رشته علوم کامپیوتر برای بسیاری از مباحث پایه در این حوزه آمادگی ذهنی دارند.



مطالعه ادامه مطلب 👇👇

🔗 رشته علوم کامپیوتر | معرفی گرایش ها، حقوق و درآمد و بازار کار + فیلم آموزش رایگان — کلیک کنید (+)


📌 کانال اختصاصی آموزشی مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزش‌های مهندسی و علوم کامپیوتر فرادرس

✳️ درس معماری کامپیوتر | به زبان ساده

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

══ فهرست مطالب ══

‏ ○ معماری کامپیوتر چیست ؟
‏ ○ درس معماری کامپیوتر
‏ ○ معرفی فیلم آموزش درس معماری کامپیوتر
‏ ○ مدارهای منطقی چیست ؟
‏ ○ قطعات دیجیتال
‏ ○ نمایش داده ها
‏ ○ انتقال ثبات‌ها و ریزعملیات
‏ ○ معماری و سازمان کامپیوتر پایه
‏ ○ برنامه‌ نویسی کامپیوتر پایه
‏ ○ کنترل ریز برنامه نویسی شده
‏ ○ واحد مرکزی پردازش
‏ ○ پردازش خط لوله ای و برداری
‏ ○ محاسبات در کامپیوتر
‏ ○ سازمان ورودی-خروجی
‏ ○ سازمان حافظه
‏ ○ چند پردازنده ها
‏ ○ منابع و فیلم آموزشی معماری کامپیوتر
‏ ○ جمع بندی


🔸 معماری کامپیوتر چیست ؟

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

‏معماری کامپیوتر شامل سه بخش اصلی است: طراحی سیستم (System Design)، مجموعه دستورالعمل (Instruction Set Architecture) و ریزمعماری (Microarchitecture). تمام این بخش‌ها با ترتیب خاصی با هم در ارتباط هستند و باید در یک الگوی مشخص توسعه داده شوند تا عملکرد صحیحی داشته باشند. در ادامه به شرح مختصری از هر یک از این سه بخش پرداخته شده است.

‏– طراحی سیستم:‌ این بخش شامل تمام قطعات سخت‌افزاری از جمله واحد پردازنده مرکزی (سی‌پی‌یو | CPU)،‌ پردازنده‌های داده (Data Processors)، چندپردازنده‌ها (Multiprocessors)، کنترل‌گرهای حافظه (Memory Controllers) و دسترسی مستقیم حافظه (Direct Memory Access) است.

‏– مجموعه دستورالعمل: این بخش، تمام توانایی‌ها و قابلیت‌های سی‌پی‌یو را دربر می‌گیرد. زبان برنامه‌نویسی CPU، انواع و فرمت‌های داده، انواع ثبات (رجیستر | Register) و دستورالعمل‌هایی که توسط برنامه‌نویسان کامپیوتری به کار برده می‌شوند.

‏– ریزمعماری:‌ این بخش، شامل موارد ذخیره‌سازی، مسیر ذخیره داده‌ها و چگونگی پیاده‌سازی آن در قالب مجموعه دستورالعمل‌ها است.

‏یک نمونه مناسب از معماری کامپیوتر،‌ معماری فون نویمان (معماری وُن نویمان | Von Neumann Architecture) است که همچنان در بسیاری از انواع کامپیوترهای امروزی مورد استفاده قرار می‌گیرد. این معماری توسط جان ون نویمان در اوایل دهه ۱۳۲۰ شمسی ارائه شد. او طراحی یک رایانه الکترونیکی را به همراه سی‌پی‌یو معرفی کرد که این طراحی شامل واحد منطق ریاضی (Arithmetic Logic unit)، واحد کنترل، ثبات‌ها، واحد حافظه برای داده‌ها و دستورالعمل‌ها، یک رابط ورودی/خروجی و قابلیت‌های ذخیره‌سازی خارجی است.


🔸 درس معماری کامپیوتر

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



مطالعه ادامه مطلب 👇👇

🔗 درس معماری کامپیوتر | به زبان ساده — کلیک کنید (+)


📌 کانال اختصاصی آموزشی مهندسی و علوم کامپیوتر

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی مهندسی و علوم کامپیوتر را در کانال اختصاصی [@FaraCompEng] دنبال کنید. 👇

@FaraCompEng — مطالب و آموزش‌های مهندسی و علوم کامپیوتر فرادرس