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