علوم رایانه

علوم رایانه یا علوم کامپیوتر به مجموعهٔ مطالعاتی گفته می‌شود که به زیربناهای نظری، روش‌های طراحی و ساخت و چگونگی استفاده از رایانه می‌پردازند.[۱][۲] علوم کامپوتر رویکردی علمی و عملی به محاسبات (computation) و کاربردهای آن است. این علم به بررسی سیستماتیک: امکان‌پذیری، ساختار، پیاده‌سازی و مکانیزمِ محاسبه‌های روشمند (یا الگوریتم) می‌پردازد؛ که مبنای آن کسب، نمایش، پردازش، ذخیره‌سازی، ارتباط و دسترسی به اطلاعات است.

بنا به نظر پیتر جی. دنینگ، پرسش اساسی در علوم رایانه این است که: چه چیزی می‌تواند (به نحوی کارآمد) خودکار انجام شود؟[۳]

رشته علوم کامپیوتر را می‌توان به زیررشته‌های نظری و عملی بسیاری تقسیم کرد. بعضی از این زیررشته‌ها، نظیر نظریه پیچیدگی محاسباتی (که خواص اساسی مشکلات محاسباتی و قابل حل بودن آن‌ها را بررسی می‌کند) بسیار انتزاعی هستند، این در حالی است که زیررشته‌های دیگر مانند گرافیک کامپیوتری به بررسی کاربردهای قابل لمس تر در دنیای واقعی تأکید دارند. اکثر زیررشته‌های علوم کامپیوتر بر چالش‌های موجود در اجرای محاسبات تمرکز دارند.

پیشینه

اگرچه آغاز ساخت رایانه‌های رقمی الکترونیک را می‌شود از اواخر دههٔ ۱۹۳۰ میلادی دانست، ریشه‌ها، مبادی و سرچشمه‌های دانش رایانه را باید در روش‌های محاسباتی کهن با تاریخ و سوابق هزاران ساله نشانه گرفت. در بسیاری از روش‌های محاسباتی بابلیان، الگوریتم‌هایی به کار می‌رفته‌اند که هم‌اکنون نیز رایجند. بطور نمونه کتاب الجبر و المقابله خوارزمی پر از روش‌های محاسباتی الگوریتمی است[۴] و بی‌دلیل نیست که نام الگوریتم از نام الخوارزمی و خوارزمی گرفته شده‌است که اشاره به روش‌ها و راهکارهای متفاوت حل یک مسئله دارد چنان‌که حتی وی برای حل مسائل جبری از هندسه نیز استفاده می‌کرده‌است. برای اولین بار در سال ۱۹۶۰ علوم رایانه به صورت یک رشتهٔ تحصیلی مستقل بوجود آمد و آن را با مدارک معتبر در دانشگاه‌ها ارائه نمودند. از زمانی که رایانه‌ها در دسترس عموم قرار گرفتند، برنامه‌های کاربردی مختلف ارائه شده برای آن‌ها، زمینه‌های جداگانه برای مطالعه گشته‌اند.

پیشرفت‌های بزرگ

با وجود عمر کم این شاخه از علوم، به عنوان یک رشتهٔ دانشگاهی، علم رایانه کمک‌های اساسی به دانش و اجتماع نموده‌است که شامل موارد زیر است:

کاربردها در علم رایانه

  • یک تعریف رسمی برای محاسبات و محاسبه‌پذیری و اثبات اینکه مسائلی غیرقابل حل یا حل آن‌ها طاقت فرساست، ارائه داد.
  • مفهوم زبان برنامه‌نویسی، به معنی ابزاری برای بیان دقیق اطلاعات تحلیل پذیر در سطوح مختلف انتزاع، را ارائه داد.

کاربردها خارج از علم رایانه

  • موجب بوجود آمدن انقلاب دیجیتال شد که به عصر اطلاعات فعلی منجر شد.
  • در رمزنگاری شکسته شدن کد انیگما کمکی اساسی برای پیروزی متّفقین در جنگ جهانی دوم شد.
  • محاسبات علمی مطالعه پیشرفت ذهن و بررسی ژنوم انسانی در' پروژه ژنوم انسانی 'را ممکن ساخت. پروژه‌های محاسبات توزیعی مانند Folding@home، امکان بررسی پروتئین‌ها را فراهم ساخت.

بخش‌هایی از علم رایانه

علم رایانه، موضوعات متنوعی از مطالعات نظری روی الگوریتم‌ها و محدودیت محاسبات گرفته تا مسائل کاربردی از جمله ساخت سخت‌افزار و نرم‌افزار رایانه‌ها را شامل می‌شود.[۵][۶]

هیئت اعتبارگذاری علم رایانه(The Computer Sciences Accreditation Board) - متشکل از انجمن محاسبات ماشینی (انجمن ماشین‌های محاسب)، جامعه علوم کامپیوتر مؤسسه مهندسین برق و الکترونیک و انجمن سیستم‌های اطلاعاتی - چهار عرصه خطیر برای علم رایانه معرفی کرده‌است: نظریه محاسبات، الگوریتم‌ها و ساختمان داده، زبان‌های برنامه سازی و معماری رایانه. علاوه بر این‌ها، این هیئت، موضوعاتی نظیر مهندسی نرم‌افزار، هوش مصنوعی، شبکه‌های کامپیوتری، سیستم‌های پایگاه داده، پردازش موازی، ارتباط انسان و کامپیوتر، گرافیک کامپیوتری، سیستم‌های عامل و محاسبات عددی را نیز موضوعاتی مهم در این علم قلمداد کرده‌است.

علم نظری رایانه

موضوع وسیع علم نظری رایانه، علاوه بر نظریات کلاسیک محاسبات، شامل طیف وسیعی از موضوعات دیگری می‌شود که بیشتر بر روی جنبه‌های منطقی و ریاضیاتی پردازش و محاسبه تمرکز دارند.

DFAexample.svg Wang tiles.png P = NP ? GNITIRW-TERCES Blochsphere.svg
نظریه اتوماتا نظریه رایانش پذیری نظریه پیچیدگی محاسباتی رمزنگاری نظریه رایانش کوانتومی

نظریه محاسبات

"نظریه محاسبات سعی دارد به این پرسش‌ها پاسخ دهد "که اساساً چه چیزی می‌تواند محاسبه شود و محاسبهٔ آن چقدر توان و منابع نیاز دارد. در تلاشی برای پاسخ گویی به پرسش اول، نظریه محاسبه‌پذیری ([computability theory]) بررسی می‌کند که چه مسائلی قابل حل هستند (از طریق نظریات مدل‌های پردازش). پاسخ دومین پرسش به نظریه پیچیدگی محاسباتی مرتبط می‌شود. این نظریه به زمان و فضای مورد نیاز برای رسیدن به پاسخ مطلوب در روش‌های مختلف پاسخگویی، می‌پردازد.

مسئله مشهور [["P=NP?"]]یکی مسائل حل نشده نظریه محاسبات است.

الگوریتم‌ها و ساختمان‌های داده

Sorting quicksort anim.gif Singly-linked-list.svg
آنالیز الگوریتم‌ها الگوریتم ساختمان داده

زبان‌های برنامه سازی

Ideal compiler.png Python add5 syntax.svg
کامپایلرها زبان‌های برنامه‌نویسی

معماری رایانه

NOR ANSI.svg Fivestagespipeline.png SIMD.svg
منطق دیجیتال ریزمعماری چند پردازی

محاسبات عددی

1u04-argonaute.png User-FastFission-brain.gif Naphthalene-3D-balls.png Neuron-no labels.png X-43A (Hyper - X) Mach 7 computational fluid dynamic (CFD).jpg
بیوانفورماتیک علوم شناختی شیمی محاسباتی عصب‌شناسی محاسباتی فیزیک محاسباتی آنالیز عددی محاسبات نمادین

برنامه‌ها

فهرست زیر، موضوعاتی است که هم از جنبه نظری و هم عملی، به آن‌ها پرداخته می‌شود.

Operating system placement.svg NETWORK-Library-LAN.png Utah teapot.png
Emp Tables (Database).PNG
سیستم‌عامل شبکه‌های رایانه‌ای گرافیک رایانه بینایی کامپیوتری پایگاه داده
Padlock.svg ArtificialFictionBrain.png Roomba original.jpg Wacom Pen-tablet.jpg
امنیت رایانه‌ای هوش مصنوعی روباتیک رابط انسان و رایانه رایانش فراگیر

ارتباط با سایر رشته‌ها

علی‌رغم نام آن، علم رایانه بیشتر در زمینه‌هایی غیر از رایانه به بررسی می‌پردازد. بدین دلیل نام‌های جایگزین دیگری برای آن پیشنهاد شده‌است. دانشمند دانمارکی پیتر ناور عبارت داده‌شناسی (Datalogy) را پیشنهاد نمود تا این حقیقت را که این رشته علمی بیشتر به داده‌ها و پردازش آن‌ها توجه دارد نه لزوماً رایانه‌ها، روشن سازد. اولین مؤسسهٔ علمی که عبارت داده‌شناسی را بکار برد DIKU گروه داده‌شناسی در دانشگاه کپنهاگ بوده‌است که توسط پیتر ناور در سال ۱۹۶۹ به عنوان اولین گروه داده‌شناسی بنا گذاشته شد. این عبارت بیشتر در کشور اسکاندیناوی مورد استفاده قرار گرفته‌است. در اولین روزهای این علم در ارتباطات ACM نام‌های دیگری نیز برای دانشمندان این زمینه پیشنهاد شده بود مانند ((Turingineer و Turologist و Flowcharts-Man و Applied-Metamathematition و Applied Epistomologist)). سه ماه بعد در این مجله عبارت "Comptologist "پیشنهاد شد و سال بعد عبارت" Hypologist". اخیراً عبارت Computics نیز پیشنهاد شده‌است.

عبارت زیر از دانشمند معروف علم رایانه ادسخر دیکسترا نقل قول شده‌است: "علم رایانه به همان اندازه در مورد رایانه است که نجوم در مورد تلسکوپ."
طراحی و بکارگیری رایانه و سیستم‌های رایانه‌ای معمولاً در محل بکارگیری رشته‌های دیگر است. برای مثال سخت‌افزار رایانه؛ توسط مهندسین رایانه مورد بررسی قرار می‌گیرد، و مطالعهٔ سیستم‌های رایانه‌ای تجاری و بکارگیری آن‌ها در رشته فناوری اطلاعات و سیستم‌های اطلاعاتی است. گاهی علوم رایانه را به دلیل این که به اندازه کافی علمی نیست مورد انتقاد قرار می‌دهند که در این عبارت بیان شده‌است: "دانش به علم رایانه مانند هیدرودینامیک است به لوله‌کشی". این عبارت توسط استن کلی بوتل و دیگران بیان شده‌است. مطالعات در علم رایانه به سایر رشته‌ها نیز وارد شده‌است مانند هوش مصنوعی.

آموزش علوم رایانه در ایران

در بسیاری از کشورهای پیشرو در زمینهٔ علوم کامپیوتر، مثل ایالات متحده آمریکا و کشورهای اروپایی، رشتهٔ علوم کامپیوتر رشتهٔ اصلی در زمینهٔ علوم و مهندسی کامپیوتر و سیستم‌های اطلاعاتی است. در کنار این رشته، رشته‌هایی مانند مهندسی کامپیوتر — که بسیار مرتبط با مهندسی برق است — و سیستم‌های اطلاعاتی برای علاقه‌مندان وجود دارد.

در این کشورها، معمولاً مهندسی نرم‌افزار زمینه‌ای در علوم کامپیوتر است؛ حال آن‌که مهندسی کامپیوتر، که راجع به سخت‌افزار و معماری کامپیوتر است به‌صورت مستقل و معمولاً در دانشکده‌هایی در کنار مهندسی برق ارائه می‌شوند.

اما در ایران، رشتهٔ اصلی کامپیوتر، رشتهٔ مهندسی کامپیوتر است که شامل رشته‌های مهندسی نرم‌افزار، مهندسی سخت‌افزار و فناوری اطلاعات است. در کنار آن علوم کامپیوتر که متأسفانه آشنایی کمی با آن وجود دارد، بیشتر روی مسائل نظری متمرکز است و در واقع چیزی شبیه علوم کامپیوتر نظری در کشورهایی نظیر ایالات متحده است.

در رتبه‌بندی شانگهای، دانشگاه‌های تهران، صنعتی امیرکبیر و شریف هر کدام برای مدّت یک سال در بین' ۲۰۰ دانشگاه برتر جهان' در زمینهٔ علوم کامپیوتر بوده‌اند، که این رده‌بندی بیشتر بر اساس میزان مقاله‌های منتشر شده در این زمینه می‌باشد(.[۷])