مقدمه
رشته علوم کامپیوتر یکی از کلاسیکترین رشتهها در گروه رشتههای کامپیوتر است که بر مبانی و اصول کامپیوتر تاکید بسیار دارد. رشته علوم کامپیوتر پل ارتباطی دانش کامپیوتر و ریاضی است و مهمترین هدف رشته علوم کامپیوتر دستیابی به بهترین الگوریتمهای موجود (روشهای حل مسأله) در کمترین زمان و با کمترین خطا و بیشترین دقت است. به عبارت دیگر هدف رشته علوم کامپیوتر تربیت گروهی متخصص کامپیوتر است که با دید ریاضیتر و منطقیتر به حل مسائل مطرح شده در رشته علوم کامپیوتر یا ریاضی بپردازند.
آینده شغلی، بازار کار، درآمد
تاریخچه: یافتههای اولیه از چیزی که بعدها رشته علوم کامپیوتر نامیده شد مربوط به قبل از اختراع کامپیوتر است، زمانی که ماشینهایی مانند چرتکه برای محاسبه کارهای عددی قرنها قبل اختراع شد.
در حوالی دهه 40 همچنان که ماشینهای محاسباتی توسعه داده میشد، واژهی کامپیوتر اختراع شد. وقتی معلوم شد که کامپیوتر تنها برای محاسابات کارایی ندارد رشته علوم کامپیوتر به صورت رشتهای دانشگاهی در دهه 60 میلادی گسترش یافت که با استقبال دانشآموزان روبرو شد.
کاربرد و زیر شاخهها
کاربردها در علم رایانه:
- یک تعریف رسمی برای محاسبات و محاسبهپذیری و اثبات مسائلی که غیرقابل حل و سخت است.
- مفهوم زبان برنامه نویسی ابزاری برای بیان دقیق اطلاعات تحلیلپذیر در سطوح مختلف انتزاع است.
کاربردها خارج از علم رایانه
- موجب بوجود آمدن انقلاب دیجیتال شد که به عصر اطلاعات فعلی منجر شد.
- در رمزنگاری شکسته شدن کد انیگما کمکی اساسی برای پیروزی متفقین در جنگ جهانی دوم شده است.
- محاسبات علمی مطالعه پیشرفت ذهن و بررسی ژنوم انسانی در پروژهی ژنوم انسانی را ممکن ساخت.
زیر شاخهها
رشته علوم کامپیوتر دارای چهار حیطهی محاسبات علمی، نظریهی الگوریتمها، سختافزار و سیستمهای اطلاعاتی است. محاسبات علمی در زمینهی برنامهریزی خطی، غیرخطی، آنالیز عددی و نرمافزار در ریاضی است؛ یعنی در این گرایش کاربرد ریاضیات در کامپیوتر مطالعه میشود.
نظریهی الگوریتمها به بررسی راههای مختلف حل مسئله به یاری روشهای بهینهتر، سریعتر و بهتر میپردازد. به عبارت دیگر هدف این گرایش پیادهسازی و بهینه کردن الگوریتم است.
معماری یا ساختار کامپیوتر نیز در حیطه سختافزار مطالعه میشوند و سیستمهای اطلاعاتی هم به مدیریت پروژههای نرمافزاری و سیستمهای اطلاعاتی پرداخته است.
تسلط و علاقه به ریاضیات شرط اول موفقیت در رشته علوم کامپیوتر است و دانشجوی رشته علوم کامپیوتر باید بتواند با استدلال ریاضی با مسائل برخورد نماید. در ضمن باید اطلاعات عمومی خوبی داشته و حتی پس از فارغالتحصیلی به مطالعه و تحقیق پشت نکند چون در طی تحصیل تنها اطلاعات پایهای و کلی را فرا میگیرد و برای حضور در بازار کار باید خود تلاش کند و اهل مطالعه و تحقیق باشد.
موقعیتهای شغلی فارغالتحصیل رشته علوم کامپیوتر شباهت بسیاری با مهندسی کامپیوتر گرایش نرمافزار دارد اما در کل نقش فارغالتحصیل این رشته به عنوان مدیر و هماهنگ کننده بسیار مهم و قابل توجه است. فردی که مسئول انتخاب راهحل مسائل و حل آنها همچنین تقسیم الگوریتمها در بین مهندسین نرمافزار و در انتها جمع کردن قسمتهای توزیع شده میباشد.
تفاوت با مهندسی کامپیوتر
بسیاری از اشخاص مهندسی نرم افزار را با رشته علوم کامپیوتر یکی میدانند. این دید بسیار محدودکننده و غلط است. در واقع مهندسی نرم افزار را میتوان مستقل از علم کامپیوتر دانست.
هر چند پیشنیاز کاری مهندسین نرمافزار آشنایی با علوم کامپیوتری است اما اساساً، علم کامپیوتر با تئوریها و روشهایی سروکار دارد که به کامپیوترها و سیستمهای نرمافزاری مربوط میشود، در حالیکه مهندسی نرمافزار با مسائل عملی تعیین مشخصات، تحلیل، پیادهسازی و تولید نرمافزار سر و کار دارد. البته بدیهی است که مهندسی نرمافزار و علم کامپیوتر رابطه تنگاتنگی با هم دارند و پیشرفت در علم کامپیوتر نیاز به پیشرفت علم نرمافزار را میطلبد. داشتن برخی از علوم کامپیوتر برای مهندسین نرمافزار ضروری است (همانطور که دانش فیزیک برای مهندسین الکترونیک ضروری است).
در حالت ایدهآل، کل مهندسی نرمافزار از تئوریهای علم کامپیوتر ساخته میشود، اما واقعیت چیز دیگری است. مهندسین نرمافزار اغلب باید از رهیافتهای ذهنی برای توسعه نرمافزار استفاده کنند و احتمالاً ایدهای که تا به حال شکل نگرفته را عملی کنند. تئوریهای علم کامپیوتر را همیشه نمیتوان به مسائل واقعی پیچیدهای اعمال کرد که نیازمند راه حلهای نرمافزاریاند.
در واقع مهندسین نرمافزار باید مسائل پیچیده واقعی را با تفکر نرمافزاری مبتنی بر علم کامپیوتر حل کنند. اینگونه مسائل واقعی کاملاً با تئوریهای علم کامپیوتر در تناقض است و در این میان وظیفه مهندسین نرمافزار تحلیل و رفع تناقضات مسئله با علوم کامپیوتری و ایجاد سیستم نرمافزاری مبتنی بر علم کامپیوتر میباشد.
بطور مثال ساخت یک نرمافزار اتوماسیون اداری که قرار است تمامی سیستمهای یک سازمان بزرگ از جمله سیستم حسابداری، تولید، فروش، انبارداری و غیره را پیادهسازی نماید، نیاز به داشتن دانش مهندسی نرمافزار دارد. چنین سیستمی را نمیتوان با تئوری و منطق کامپیوتری پیادهسازی نمود چون اینگونه سیستمها نیاز به تحلیلهای تشریحی دارند که با علوم کامپیوتر که فقط قادر به حل مسائل منطقی است کاملا در تضاد میباشد.
علوم کامپیوتر در ایران
رشته علوم کامپیوتر در سال 1358 و در مقطع کارشناسی به عنوان یک رشتهی مادر، وارد دانشگاه تهران شد. اما در سال1365 با راه اندازی دو شاخه مهندسی کامپیوتر، رشته علوم کامپیوتر از لیست رشتههای انتخابی دانشآموزان در کنکور حذف شد. با این حال نقش و اهمیت رشته علوم کامپیوتر به حدی است که برنامهریزان ما را مجبور کردند تا دوباره در سال 1377 رشته علوم کامپیوتر را در مقطع کارشناسی راهاندازی نمایند.
در تمام دنیا، رشته علوم کامپیوتر به عنوان «مادر» علم کامپیوتر، یکی از ارکان غیرقابل انکار علوم و صنایع محسوب میشود. چرا که کارشناس رشته علوم کامپیوتر با داشتن پایه تئوری قوی، میتواند با ابداع روشهای جدید، با نوشتن برنامههای جامع و مفید، کمک مؤثری برای مهندسان کامپیوتر باشد.
رشته علوم کامپیوتر که در واقع یک رشتهی میان رشتهای است در مقطع کارشناسی ارشد جزء رشتههای شناور به حساب میآید که داوطلبان میتوانند علاوه بر رشتهی خود در آزمون این رشته نیز شرکت نمایند. البته دانشجویان رشتههای کامپیوتر و ریاضی مشتریهای اصلی این رشته به شمار میآیند ولی رشته علوم کامپیوتر توانسته است با توجه به ویژگیهای خاص خود داوطلبانی را از رشتههای دیگر نظیر برق نیز جذب نماید.
تواناییهای لازم
تسلّط و علاقه به ریاضیات شرط اوّل موفّقیّت در رشته علوم کامپیوتر است و دانشجوی رشته علوم کامپیوتر باید بتواند با استدلال ریاضی با مسائل برخورد نماید. در ضمن باید اطّلاعات عمومی خوبی داشته و حتّی پس از فارغالتّحصیلی به مطالعه و تحقیق پشت نکند، چون در طی تحصیل تنها اطّلاعات پایهای و کلّی را فرا میگیرد و برای حضور در بازار کار باید خود تلاش کند و اهل مطالعه و تحقیق باشد.
موقعیت شغلی در ایران
موقعیتهای شغلی فارغالتّحصیل رشته علوم کامپیوتر شباهت بسیاری با مهندسی کامپیوتر گرایش نرمافزار دارد، امّا در کل نقش فارغالتّحصیل رشته علوم کامپیوتر به عنوان مدیر و هماهنگ کننده، بسیار مهم و قابل توجّه است. فردی که مسئول انتخاب راهحل مسائل و حلّ آنها، همچنین تقسیم الگوریتمها در بین مهندسین نرمافزار و در انتها جمع کردن قسمتهای توزیع شده میباشد.
درسهای این رشته در طول تحصیل
دروس اصلی و تخصّصی مشترک در گرایشهای مختلف علوم کامپیوتر: ریاضی عمومی، فیزیک پایه، آمار و احتمال، اصول کامپیوتر، اصول سیستمهای کامپیوتری، جبر خطی عددی، ریاضیات گسسته، آنالیز عددی، ساختمان دادهها و الگوریتمها، نظریه اتوماتا و زبانها، کامپایلر، نظریهی محاسبات، اصول طراحی نرمافزار، منطق، ذخیره و بازیابی اطلاعات، پایگاه دادهها، اصول سیستمهای عامل، شبیهسازی کامپیوتری، زبانهای برنامهسازی، اصول مدیریت، مبانی اقتصاد.
دروس تخصصی گرایش محاسبات علمی
برنامهریزی خطی، برنامهریزی غیرخطی، نرمافزار ریاضی، آنالیز عددی، طراحی هندسی کامپیوتری. دروس تخصصی گرایش نظریهی الگوریتمها، برنامهریزی پویا، نظریهی گراف، بهینهسازی ترکیبی و آنالیز شبکهها، نظریهی کدگذاری، سیستمهای صفی و مدلهای کارآیی.
دروس تخصصی گرایش سختافزار
مدارهای منطقی، معماری کامپیوتر، ریزپردازنده.
دروس تخصصی گرایش سیستمهای اطّلاعاتی
تحلیل و طرّاحی سیستمهای اطّلاعاتی، متدولوژی ساخت سیستمهای اطّلاعاتی، مدیریت پروژههای نرمافزاری، سیستمهای اطّلاعاتی مدیریت.
انتخاب رشته فرآیند پیچیدهای است که نیاز به تخصص بالایی دارد. جهت انجام انتخاب رشتهی دانشگاهی توسط مهندس علی قاسمی با ما تماس بگیرید.