علوم کامپیوتر چیست؟

آقای X- دانشجویی؟
من- بله
آقای X- چه رشته‏‌ای؟
من-علوم کامپیوتر
آقای X- علوم کامپیوتر! همون مهندسی کامپیوتر؟
...
گفتگوی بالا یا مشابه آن بارها برای من اتفاق افتاده است. در کشور ما بیشتر آدم‏‌ها با مهندسی کامپیوتر آشنایی دارند، یا حداقل اسم این رشته را شنیده‏‌اند، و در بیشتر دانشگاه‏‌های کشور رشته‏‌ی مهندسی کامپیوتر گرایش نرم‌افزار و سخت‌افزار وجود دارد، اما تعداد بسیار محدودی از دانشگاه‏‌ها رشته‏‌ای به نام علوم کامپیوتر را در لیست رشته‏‌های خود دارند. برای همین من معمولاً برای این که از پاسخ دادن فرار کنم این جمله را می‏‌گفتم «همون مهندسی نرم‏‌افزار، یک کم ریاضیش بیشتر».

پاسخ به این سوال که «علوم کامپیوتر چیست؟» کار ساده‌‏ای نیست. یک راه خوب برای رسیدن به یک جواب مناسب برای سوال مورد نظرمان این است که ابتدا سوال ساده‌تری را مورد بررسی قرار دهیم. علوم کامپیوتر از چه زمانی به عنوان یک شاخه‌ی مستقل از دیگر شاخه‏‌های علم مطرح شده است؟ علوم کامپیوتر، علمی بسیار جوان است این رشته به عنوان یک شاخه‌ی مجزا برای اولین بار در دهه‌‏های ۱۹۵۰ و ۱۹۶۰ میلادی در دانشگاه‌‏های جهان مطرح شده‌است. (برای اطلاعات بیشتر این‌جا را ببینید). اما چه اتفاقاتی در آن دوره رخ داده است که باعث شده شاخه‌‏ای به نام علوم کامپیوتر تاسیس شود؟

علوم کامپیوتر

اولین عامل اصلی پاگرفتن علوم کامپیوتر، پیشرفت نظریه‌ی محاسبه در دهه‌‏های ۱۹۳۰ و ۱۹۴۰ است. در سال ۱۹۲۸ ریاضیدان آلمانی دیوید هیلبرت، ۲۳ مساله را به عنوان مسایل اصلی ریاضی در آینده مطرح کرد که ریاضیدان‏‌ها باید به آن بپردازند. سه تا از این مسایل تاثیر گسترده‌‏ای بر شکل‌گیری علوم کامپیو‌تر و تاسیس این شاخه از دانش بشری گذاشت. در سال ۱۹۳۱ منطق‏‌دانی به نام کرت گدل به دو پرسش از سه پرسش مطرح شده پاسخ داد و فردی به نام آلن تورینگ در سال ۱۹۳۶ با معرفی مدلی ریاضی از یک ماشین محاسبه‌گر، که بعد‌ها به ماشین تورینگ معروف شد، را‏ه حلی برای سومین پرسش ارایه کرد. این اتفاقات باعث انقلابی در نظریه‌ی محاسبه شد که نخستین گام‏‌های بلند در شکل‌گیری و پیشرفت علوم کامپیوتر بود. اما نکته‌‏ی مهمی که باید به آن اشاره کرد این است که، رابطه‌ی علوم کامپیوتر و ابزاری به اسم کامپیوتر مانند رابطه‏‌ی زیست‌‏شناسی با میکروسکوپ به عنوان ابزار مورد استفاده در زیست شناسی نیست. تاثیر متقابل کامپیوتر و علوم کامپیوتر بسیار گسترده است. اختراع ترانزیستور، و وقوع جنگ جهانی دوم که نیاز به ابزار محاسباتی در آن به شدت احساس می‏‌شد، سبب شد تا سرمایه‌گذاری گسترده‌ای برای ساخت ماشین‏‌های محاسبه‏‌گر انجام پذیرد. بعد از این اتفاقات بود که کامپیوتر به مفهومی که ما می‌شناسیم پا به این دنیا گذاشت. می‏‌توان ادعا کرد که اگر پیشرفت‏‌های دهه‏‌ی ۱۹۵۰ در زمینه‌ی ساخت کامپیوتر نبود، هیچ‏‌گاه علوم کامپیوتر به عنوان یک شاخه‏‌ی مستقل درمیان علوم شکل نمی‏‌گرفت. در‌واقع حضور مدل‌های ریاضی برای ماشین محاسبه‌گر از یک‌سو و پیشرفت علم الکترونیک از سوی دیگر باعث شد دانشمندها بتوانند ماشین‏‌های الکترونیکی معادل مدل‌های ریاضی موجود بسازند که می‌توانستند محاسبات ریاضی را با دقت و سرعت بالایی انجام دهند.
اما این تنها آغاز راه بود، نیاز روز افزون انسان‏‌ها به محسابه و استفاده از اطلاعات باعث سرمایه گذاری گسترده بر روی این ابزار نوپا و علوم مربوط به آن شد، در نتیجه کامپیوتر به عنوان یک ابزار محاسبه‏‌گر که هر روز توانایی بیشتری برای پاسخ‌گویی به نیاز‏های بشری پیدا می‏‌کرد با سرعت باورنکردنی وارد زندگی روزمره انسان‏‌ها شد. این گسترش باعث تعریف مسایل جدید برای علوم کامپیوتر و رشد سریع این علم نوپا در زمینه‏‌های مختلف گردید. از مسایلی چون طراحی و بررسی ویژگی‏‌های قطعات کوچک الکترونیکی برای کامپیوتر تا سیستم‏‌های ارتباطی گسترده‌‏ای در سطح جهانی مانند اینترنت، و از مسایل کاملا محض ریاضی مانند نظریه گراف و منطق تا مسایل کاملا کاربردی مانند طراحی سیستم‌‏عامل کامپیوتر شخصی شما.
با توجه به مطالب بالا اگر بخواهیم تعریفی برای علوم کامپیوتر ارایه دهیم، باید بگوییم علوم کامپیوتر دانش بررسی کامپیوتر‏ها است، که بررسی توانایی‌‏ها‏‏ و ناتوانی‌های کامپیوتر را شامل می‏‌شود؛ کار‏هایی که یک کامپیوتر قابلیت انجام آن را دارد و کارهایی که یک کامپیوتر قابلیت انجام آن را ندارد. البته منظور از کامپیوتر هر ماشین محاسبه‌گر، از یک ابزار نظری مانند ماشین تورینگ گرفته تا پردازنده یک تلفن همراه و یا یک ابرکامپیوتر، است.
به راحتی نمی‏‌توان قضاوت کرد که کدام یک از مباحث فوق اهمیت بیشتری دارد، و باید آن را به عنوان جریان اصلی علوم کامپیوتر درنظر گرفت، و کدام یک کم اهمیت‌‏تر است و درشاخه‌‏های فرعی قرار می‏‌گیرد. اما می‏‌توان ادعا کرد که تا مدت‏‌ها جریان اصلی علوم کامپیوتر بیشتر به مباحثی پرداخته که مربوط به چگونگی استفاده و ساخت کامپیوتر می‌‏شد. مباحثی چون زبان‏‌های برنامه نویسی، سیستم‏‌های عامل، الگوریتم‌‏ها، طراحی سخت‌افزار و .... سرعت پیشرفت این مباحث بسیار سریع بود‏ه است.

 

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

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

 

شاخه های علوم کامپیوتر