در آفتابگردان، یکی از افتخارات ما ارائه جزوات ناب از دروس مختلف رشته کامپیوتر است. تا این لحظه این جزوات را با کمک دانشجویان باسلیقهام در دانشگاه آماده و به رایگان برای دانلود ارائه کردهایم و خوشحالیم که این جزوات به مرجع تدریس بسیاری از مدرسین کشور تبدیل شده است:
- - جزوه برنامهنویسی شیئگرا (سی.شارپ #C) برای دانلود
- - جزوه شبکههای کامپیوتری
- - جزوه درس «محیطهای چند رسانهای» (مالتی مدیا = Multimedia)
- - دانلود جزوه درس مهندسی نرم افزار (یا تجزیه و تحلیل سیستمها)
- - جزوه اصول کابل کشی ساخت یافته و آزمایشگاه شبکه
- - دانلود جزوه آزمایشگاه پایگاه داده (SQL Server)
- - جزوه درس سیستم عامل
- - جزوه کارگاه لینوکس و آزمایشگاه سیستم عامل
- - دانلود جزوه طراحی وب
- - دانلود جزوه خدمات الکترونیک (و مهندسی اینترنت)
- - جزوه تجارت الکترونیک
- - جزوه درس نمایه سازی
- - جزوه درس سخت افزار کامپیوتر و یا دوره A+
- - جزوه برنامه نویسی وب با زبان PHP
- - جزوه پایگاه داده
- - جزوه نرم افزارهای کاربردی شبکه های کامپیوتری
آنها که با جزوات ما آشنا هستند، معتقدند بیان سادهی مفاهیم پیچیده و همینطور رعایت اصول تایپ و تهیه جزوه، مهمترین ویژگی مثبت جزوات و مطالب ماست. (برای اینکه یک مفهوم را طوری بیان کنم که دانشجو بفهمد که چه میگویم گاهی ده بیان مختلف از مراجع مختلف را مرور میکنم و بیانی که قابلفهمتر باشد را برای دانشجو میگویم)
و اما امروز هفدهمین جزوه ما برای دانلود ارائه میشود:
دانلود جزوه طراحی الگوریتم
اگر فقط یک گشت ساده در جزوه بزنید متوجه میشوید که چه زحمتی برای تهیه آن کشیده شده است... (گذشته از زحمات دانشجویان، بیش از بیست ساعت فقط اصلاحات بنده و ترکیب جزوات آنها با هم زمان برده است)
بخش اعظم این جزوه از روی کتابی که مرجع دانشگاههای کشور و دنیا است به طور مستقیم برای دانشجوها ترجمه شده.
الگوریتم مهم است
اگر ویدئویی که در مطلب «ویدئوی جلسه اول دوره آموزش زبان C++ (ویدئویی که خلاصه چندین مطلب در آفتابگردان است)» قرار داده بودم را تماشا کرده باشید متوجه شدهاید که چقدر روی «الگوریتم» و «ذهن الگوریتمیک داشتن» تأکید کردهام.
مشکل اصلی دانشجویان ما در رشته کامپیوتر، کدنویسی نیست بلکه حل مسأله است. خیلیها کدنویسان ماهری هستند اما نمیتوانند برای مسائل پیچیده، راه حل مناسبی ارائه کنند. آنها از بس مسائل پیچیده حل نکردهاند نمیتوانند جوانب مختلف یک مسأله را در نظر بگیرند. بنابراین برنامههایی تولید میشود که میبینید به زور میتوان آنها را روی یک بستر خاص اجرا کرد، چرا؟ چون آن طراح حواسش به بسترها و شرایط مختلف اجرای برنامه نبوده یعنی مسأله را با همان الگوریتمی که اولین بار به ذهنش رسیده حل کرده و به این فکر نکرده که باید مسأله را در شرایط مختلف قرار داد و بعد بررسی کرد که الگوریتم من در آن شرایط هم جواب میدهد؟
به هر حال، اگر شما یک کدنویس هستید، باید تا میتوانید «الگوریتم» یاد بگیرید و یاد بگیرید که چطور الگوریتمهای مختلف را با هم مقایسه کنید و بهترین الگوریتم را با توجه به شرایط مسأله انتخاب کنید. درس «طراحی الگوریتم» که شاید در کنار درس «مهندسی نرمافزار»، مهمترین درس در رشتههای کامپیوتر (به ویژه رشته نرمافزار) باشد، به شما کمک میکند که این کار را به بهترین شکل انجام دهید.
همانطور که در مطلب «خطر شغلی برای برنامهنویسان: به زودی آموزش برنامهنویسی در مدارس ابتدایی اجباری میشود! (+ ده مهارت برتر سال)» گفته یودم، دنیا به این نتیجه رسیده است که برنامهنویسی باید در همه رشتهها قرار داده شود و همه انسانهای روی کره زمین برنامهنویسی بلد باشند (بعید نیست که یکی از پارامترهای باسوادی در یونسکو بشود) به قول استیو جابز: همه باید برنامهنویسی کامپیوتری را یاد بگیرند چون برنامهنویسی به آنها یاد میدهد که چطور فکر کنند!
واقعاً همینطور است. کسی که برنامهنویسی میداند، درک بهتری نسبت به همه مسائل، حتی خدا پیدا میکند. (مگر میشود شما برنامهنویس حرفهای باشید و برنامه دقیق و برنامهنویس خبره این عالَمِ منظم توجه شما را به خودش جلب نکند!؟)
پیشنهاد میکنم کلمه «برنامهنویسی» و «الگوریتم» را در آفتابگردان جستجو کنید و مروری بر مطالب ما در این زمینه داشته باشید؛ ما یک خروار مطلب جالب در این زمینه داشتهایم.
موفق باشید؛
حمید رضا نیرومند