علوم کامپیوتر یکی از کلاسیکترین رشتهها در گروه رشتههای کامپیوتر است که بر مبانی و اصول کامپیوتر تاکید بسیار دارد. علوم کامپیوتر پل ارتباطی دانش کامپیوتر و ریاضی است و مهمترین هدف آن دستیابی به بهترین الگوریتمهای موجود (روشهای حل مساله) در کمترین زمان و با کمترین خطا و بیشترین دقت است.
معرفی اجمالی رشته علوم کامپیوتر
هدف رشته علوم کامپیوتر تربیت متخصصان کامپیوتر است که با دیدی ریاضی و منطقی به حل مسائل مطرح شده در علوم کامپیوتر یا ریاضی بپردازند. یافتههای اولیه از مقولهای که بعدها علوم کامپیوتر نامیده شد مربوط به قرنها پیش از اختراع کامپیوتر و در زمان استفاده از چرتکه برای انجام محاسبات است. در حوالی دهه ۴۰ با توسعه ماشینهای محاسباتی، واژه کامپیوتر نیز اختراع شد. در دهه ۶۰ میلادی وقتی معلوم شد کاربرد کامپیوتر فقط برای انجام محاسبات نیست رشته علوم کامپیوتر در دانشگاهها تدریس و با استقبال دانشجویان مواجه شد. از آن موقع علوم کامپیوتر توانست:
- تعریفی رسمی برای محاسبات و محاسبهپذیری و اثبات مسائلی که غیرقابل حل اند ارائه دهد.
- مفهوم زبان برنامهنویسی ابزاری برای بیان دقیق اطلاعات تحلیلپذیر در سطوح مختلف را تبیین کند.
- موجب به وجود آمدن انقلاب دیجیتال و عصر اطلاعات فعلی منجر شود.
- در رمزنگاری شکسته شدن کد انیگما کمکی اساسی برای پیروزی متفقین در جنگ جهانی دوم باشد.
- محاسبات علمی مطالعه پیشرفت ذهن و بررسی ژنوم انسانی در پروژه ژنوم انسانی را ممکن کند.
تفاوت با مهندسی کامپیوتر
بسیاری از اشخاص رشته مهندسی نرمافزار را با علوم کامپیوتر یکی میدانند! اما در واقعیت مهندسی نرمافزار و علوم کامپیوتر دو مقوله گاهی مجزا و گاهی مرتبط اند. علوم کامپیوتر با مسائل تئوری و مهندسی نرمافزار با مسائل عملی مانند تعیین مشخصات، تحلیل، پیادهسازی و تولید نرمافزار سر و کار دارند. البته مهندسی نرمافزار و علوم کامپیوتر رابطه تنگاتنگی با هم دارند و پیشرفت در یکی منجر به پیشرفت در دیگری میشود. اگاهی از برخی از دانشهای علوم کامپیوتر برای مهندسان نرمافزار ضروری است (همان طور که دانش فیزیک برای مهندسان الکترونیک ضرروی است).
مهندسان نرمافزار اغلب باید از رهیافتهای ذهنی برای توسعه نرمافزار استفاده کنند و احتمالا ایدهای که تا به حال شکل نگرفته را عملی کنند. تئوریهای علوم کامپیوتر را همیشه نمیتوان به مسائل واقعی پیچیدهای که نیازمند راه حلهای نرمافزاری اند اعمال کرد. در واقع مهندسان نرمافزار باید مسائل پیچیده واقعی را با تفکر نرمافزاری مبتنی بر علم کامپیوتر حل کنند. این گونه مسائل واقعی کاملا با تئوریهای علوم کامپیوتر در تناقض است و در این میان وظیفه مهندسان نرمافزار تحلیل و رفع تناقضات مسئله با علوم کامپیوتر و ایجاد سیستم نرمافزاری مبتنی بر علوم کامپیوتر است. به طور مثال ساخت یک نرمافزار اتوماسیون اداری که قرار است همه سامانههای یک سازمان بزرگ از جمله سیستم حسابداری، تولید، فروش، انبارداری و مانند آنها را شبیهسازی کند، به مهندسان نرمافزار نیاز دارد. چنین سامانهای را نمیتوان با تئوری و منطق کامپیوتری اجرا کرد زیرا چنین سامانههایی نیاز به تحلیلهای تشریحی دارند که با علوم کامپیوتر که فقط قادر با حل مسائل منطقی است کاملا در تضاد هستند.
علوم کامپیوتر در ایران
این رشته در سال ۱۳۵۸ و در مقطع کارشناسی به عنوان رشته مادر در دانشگاه تهران تاسیس شد. اما در سال ۱۳۶۵ با راهاندازی دو شاخه مهندسی کامپیوتر، این رشته از فهرست رشتههای انتخابی دانشآموزان در کنکور حذف شد. با این حال نقش و اهمیت آن به حدی است که برنامهریزان را مجبور کرد تا دوباره در سال ۱۳۷۷ این رشته را در مقطع کارشناسی راه اندازی کنند. در همه دنیا، رشته علوم کامپیوتر به عنوان «مادر» علم کامپیوتر، یکی از ارکان غیر قابل انکار علوم و صنایع شان محسوب میشود زیرا کارشناس این رشته، با داشتن پایه تئوری قوی، میتواند با ابداع روشهای جدید، با نوشتن برنامههای جامع و مفید، کمک موثری برای مهندسان کامپیوتر باشد. این میانرشته در مقطع کارشناسی ارشد جزو رشتههای شناور به حساب میآید که داوطلبان میتوانند علاوه بر رشته خود در آزمون این رشته نیز شرکت کنند. البته دانشجویان رشتههای کامپیوتر و ریاضی متقاضیان اصلی این رشته به شمار میآیند اما این رشته با توجه به ویژگیهای خاص خود داوطلبانی را از رشتههای دیگر نظیر برق نیز جذب میکند.