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