تاریخ علوم رایانه

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

در آغاز محاسبات

سریع‌ترین ابزار شناخته شده در دوران باستان، برای محاسبه٬ چرتکه بوده‌است. چرتکه در حدود ۲۴۰۰ سال قبل در بابل اختراع شد. چرتکه‌های بابلی در اصل خطوطی روی خاک بودند و دانه‌های چرتکه، دانه‌های شن. چرتکه اولین رایانهٔ شناخته شده و پیشرفته‌ترین سیستم محاسباتی شناخته شده تا ۲۰۰۰ سال پیش است .
در ۱۱۱۵ سال پیش از دوران فعلی، در چین باستان ارّابهٔ بندکشی جنوبی اختراع شده بود . آن اختراع اولین سازوکار چرخ دنده شناخته شده بود که در چرخ‌های گوناگون مورد استفاده قرار می‌گرفته‌است و بعداً در کامپیوترهای قیاسی یا آنالوگ استفاده شدند . بعلاوه، در حدود دو قرن پیش از دوران فعلی چینی‌ها چرتکه ماهرتری را اختراع کردند .

در سدهٔ پنجم پیش از دوران فعلی در هند باستان، پانینی متخصص گرامر، دستور زبان سانسکریت را در ۳۹۵۹ قانون شناخته شده قاعده دار وتدوین کرده‌است . مثل آشتادهایی(Ashtadhyayi) که سیار فنی اسلوب داده شده بود . پانینی از قوانین تغییر شکل و بازگشتی‌ها استفاده کرده بود و با این قبیل مهارتی که گرامرش داشت، معادل قدرت محاسبه ماشین تیورینگ بود .

بین ۲۰۰ تا ۴۰۰ سال پیش از این، جاینا ریاضی دان هندی، لگاریتم را اختراع کرد . از قرن سیزدهم جدول لگاریتم توسط ریاضی دانان مسلمان ابداع شد .

باور بر این است که ماشین آنتیکیترا قدیمی‌ترین رایانه قیاسی شناخته شده‌است. آن ماشین برای اینکه موقعیت‌های نجومی را محاسبه کند طراحی شده بود. آن ماشین در سال ۱۹۰۱ در لاشه کشتی آنتی کیترا در جزیره یونانی آنتی کیترا بین کیترا و کرت حدود ۱۰۰ سال قبل کشف شده بود .

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

زمانی که جان نپیر در اوایل قرن هفدهم لگاریتم را برای اهداف محاسباتی کشف کرده بود به دنبال آن یک دوره پیشرفت قابل توجه توسط مخترعان و دانشمندان در ساخت ابزار محاسباتی شروع شد . حدود سال ۱۶۴۰، بلیز پاسکال یک ریاضی‌دان اهل فرانسه، اولین وسیله جمع مکانیکی را مبنی بر طراحی توصیف شده توسط قهرمان آلکساندر، ریضی دان یونان، ساخته‌است .

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

الگوریتم‌ها

در قرن هفتم، ریاضی‌دان هندی، براهماگوپتا اولین بار سیستم اعداد هندی-عربی را توضیح داد و از عدد صفر استفاده کرد. در حدود سال ۸۲۵ میلادی  ریاضی‌دان ایرانی، خوارزمی کتابی تحت عنوان «محاسبات با اعداد هندی» نوشت. کتابی که بعدها باعث انتشار سیستم اعداد هندی در خاورمیانه و اروپا گردید. 
کتاب او در حدود قرن دوازدهم میلادی تحت عنوان «Algoritmi De Numero Indorum» به لاتین ترجمه شد که البته علاوه بر مفهوم اعداد هندی شامل کاربردها و استفاده‌های محاسباتی قاعده دار در عمل جمع نیز می‌شد. نام الگوریتم در زبان‌های اروپایی از نام خوارزمی، دانشمند ایرانی مشتق شده‌است.

منطق دودویی

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

در سال ۱۷۰۳ گوتفرید لایبنیتس، منطق مجرد را توسعه داد. ریاضیات تحت سیستم اعداد دودویی با دست‌نوشته‌های او مفهوم پیدا کرد. در سیستم او علاوه بر صفرها و یک‌ها، صحیح و غلط (True / False) و وضعیت‌های روشن و خاموش نمایان بودند .

اما بیشتر از یک قرن قبل، در سال ۱۸۵۴ جرج بول جبر بولی را منتشر کرد. اولین بار وسایل مکانیکی تحت یک الگوی دودویی  حرکت داده می‌شد. انقلاب صنعتی، به مکانیزه کردن دستگاه‌ها سرعت بخشید از جمله دستگاه‌های بافندگی. در سال ۱۸۰۱ جوزف ماری کارگاه بافندگی‌اش را توسط کارتهای پانچ کنترل می‌کرد. یک حفره روی کارت نمایانگر عدد یک، و نقطه سوراخ نشده، نمایانگر عدد صفر بود. با اینکه دستگاه بافندگی نساجی تفاوت زیادی با رایانه دارد اما مثال خوبی برای نمایش کار یک ماشین با سیستم دودویی است.

ماشین تحلیلی

ماشین تحلیلی نبود تا چارلز بابیج (Charles Babbage)، که پدر علم محاسبه بوده‌است آغاز رایانه مدرن با کار او روی ماشین تحلیلی شکل گرفته‌است . این دستگاه به هر حال با همهٔ وظایف و کارهایی که در طراحی یک رایانه مدرن صورت گرفته‌است، هرگز با موفقیت ساخته نشد . او اولین بار آن را در سال ۱۸۳۷، توصیف و تشریح کرده‌است . بیش از ۱۰۰ سال قبل هر دستگاه مشابهی با موفقیت ساخته شده بود . تفاوت بین ماشین بابیج و ماشین‌های قبلی ساده‌است : « او برنامه‌ریزی شده طراحی کرده‌است . »
در این هنگام همکار او، ریاضی دان، آدا لاولیس (Ada Lavelace)، نخستین برنامه‌های کامپیوتری را در یک دستگاه جامع و فراگیر روی ماشین تحلیلی منتشر کرده‌است . لاولیس به خاطر این کارش محبوب هست و اولین برنامه نویس کامپیوتر لحاظ شده بود . اما تعدادی محقق ادعا کردند برنامه‌های منتشرشده تحت نام او در اصل توسط بابیج ساخته شده‌است .

تولد علم رایانه

قبل از دهه ۱۹۲۰کامپیوترها(گاهی اوقات کامپیوتورها) کارمندان از نوع انسان بوده‌اند که محاسبات را انجام می‌دادند . آن‌ها معمولاً تحت هدایت یک فیزیک دان بوده‌اند . هزاران کامپیوتر در تجارت، دولت و تشکیل یک تحقیق کار می‌کردند یا استخدام شده بودند . بیشتر این کامپیوترها خانم‌ها بوده‌اند و آن‌ها مدرکی در حسابان داشته‌اند . تعدای از آن‌ها برای سالنامه‌ها محاسبات نجومی را انجام می‌دادند . 
بعد از دههٔ ۱۹۲۰، بیان ماشین محاسبات، به ماشینی که کار یک کامپیوتر انسانی را انجام می‌داده اطلاق می‌شده‌است . مخصوصاً آن‌ها با روش‌های مؤثر قضیه جرج – تیورینگ مطابقت داشته‌اند . این قضیه که روشی است برای یک ریاضی دان، اگر توانایی تنظیم یک لیست دستورالعمل‌ها را به وسیلهٔ یک کارمند انسانی با مداد و کاغذ داشته باشد، مؤثر است . به دلیل ضرورت خیلی زیاد و بدون قوه ابتکار و نبوغ .
ماشینهایی که مقادیر متوالی را محاسبه می‌کردند به عنوان نوع آنالوگ یا قیاسی شناخته شده‌اند . آن‌ها از دستگاهی که کمیت عددی متوالی را نشان بدهد استفاده می‌کردند . مانند زاویه چرخش یک گلوله یا اختلاف در پتانسیل الکتریکی .

ماشین‌های دیجیتال در تقابل با آنالوگ ٬توانایی تحویل وضعیت یک مقدار عددی و ذخیره هر تک رقم را داشتند . ماشین دیجیتال قبل از اختراع قطعات سریعتر حافظه، در ماشین‌های مختلف یا دستگاه‌های تقویت نیرو استفاده می‌شده‌است .
عبارت «Computing Machine» (ماشین محاسبه) به تدریج بعد از دهه ۱۹۴۰ از بین رفته‌است . درست بودن عبارت کامپیوتر از زمانی که ماشینهای دیجیتال الکترونیک رایج شده‌اند شروع شده‌است . این کامپیوترها توانایی انجام محاسبات را که قبلاً توسط کارمندان انسان انجام می‌شده‌است را داشته‌اند .
چون مقادیر ذخیره شده توسط ماشینهای دیجیتال مانند وسایل آنالوگ به خصوصیات فیزیکی محدود نبود، یک کامپیوتر منطقی مبتنی برتجهیزات دیجیتال، توانایی انجام هر چیزی را که می‌توانست ماشین خالص را تولید کند، داشته‌است .

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

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

اساس تئوری

اساس ریاضی علم کامپیوتر مدرن توسط کرت گدل با قضیه ناقصش در سال ۱۹۳۱ آغاز شده بود. در این قضیه او نشان داده که، جایی محدود بوده که داخل یک سیستم قراردادی چیزی را نتواند رد یا اثبات کند. این قضیه به کاری توسط Godel و بقیه راهنمایی کرده تا این سیستم‌های رسمی یا قراردادی را تشریح یا تعریف کنند. که این شامل مفاهیمی مانند توابع بازگشتی mu(μ) و توابع تعریف پذیر Lambda(λ) می‌باشد.

سال ۱۹۳۶ یک سال کلیدی برای علم کامپیوتر بوده‌است. آلن تیورینگ و آلونزو جرج، مستقلاً و همچنین با هم الگوریتم را به‌طور رسمی، با محدوده‌هایی که می‌توانست محاسبه کند و مدلی برای محاسبات مکانیکی خالص بود، معرفی کردند.

این عناوین توسط چیزی که اکنون قضیه جرج – تیورینگ نامیده می‌شود، تحت پوشش قرار می‌گیرد. که یک فرضیه در مورد طبیعت وسایل محاسباتی مکانیکی مانند کامپیوترهای الکترونیکی، می‌باشد. این قضیه ادعا کرده که هر محاسباتی که ممکن است (حل شدنی است) می‌تواند توسط اجرای الگوریتم روی کامپیوتر انجام شود. که با زمان کافی و فضای ذخیره‌سازی در دسترس فراهم می‌شود.
همچنین تیورینگ، قضیه توصیف ماشین تیورینگ را شامل می‌شود. یک ماشین تیورینگ یک نوار طولانی نا محدود و یک هد یا سوزن نوشتن یا خواندن (R/W) دارد که همراه با نوار می‌تواند حرکت کند و تنها مقادیر مسیر را می‌تواند حرکت دهد. به‌طور شفاف همانند ماشینی است که هرگز نمی‌تواند بسازد، اما با این وجود مدلی است که می‌تواند محاسبات هر الگوریتمی را که روی هر کامپیوتر مدرنی قابل اجراست، تقلید کند.

همچنین تیورینگ برای علم کامپیوتر مهم است چونکه نام او نمایانگر جایزه تیورینگ و آزمایش تیورینگ است. او در جنگ جهانی دوم همکاری موفقیت‌آمیز و بزرگی با کد شکن‌های بریتانیایی داشته‌است و طراحی کامپیوترها و نرم‌افزارها را در دهه ا۱۹۴۰ کاملاً ادامه داده‌است.
در یک نشست خیلی بزرگ ماشین‌های دیجیتال در کمبریج، تورینگ گفت: «ما در تلاشیم تا ماشینی بسازیم تا همه نوع چیزهای متفاوت را به سادگی توسط برنامه نویسی سریع تر از راه اضافه کردن دستگاه‌های اضافی انجام دهیم.»

اولین کامپیوتری که قابل کنترل و برنامه‌نویسی با زبان‌های برنامه نویسی بود را کنراد زوسه (konrad Zuse) در سال ۱۹۴۱ در آلمان به نام Z3 تکمیل و ارائه کرد. وی اولین کامپیوتر خود را به نام Z1 در سال ۱۹۳۸ ساخته بود که البته قابلیت برنامه‌نویسی را نداشت.
در سال ۱۹۴۸ توسط بابی منچستر، کامپیوتر دیگری که می‌توانست برنامه‌های ذخیره شده را اجرا کند، بر مبنای مدل ماشین تیورینگ ساخته شد.

شانون و تئوری اطلاعات

تا حدود و نزدیکی‌های دهه ۱۹۳۰، مهندسین برق توانایی ساختن مدارات الکترونیکی را داشتند تا مسائل منطقی و ریاضی را حل کنند، اما بیش از همه طبق عادت عمومی، نظریه‌هایی که وقت زیادی نمی‌برده انجام می‌داده‌اند . این امر با انتشار قضیه Master در سال ۱۹۳۷ توسط الوود شانون (Elwood Shannon) تغییر کرده‌است . که یک تحلیل نمادین از ایستگاه تقویت و مدارات سوئیچینگ است . در زمان گرفتن مدرک لیسانس در کلاس فلسفه، شانون کار بولی را افشا کرده و تشخیص داده بود که آن کار می‌توان از ایستگاه‌های تقویت الکترومکانیکی مرتب استفاده کند .( سپس در سوئیچ‌هایی، در مسیر یابی تلفن استفاده شده‌است . ) تا مشکلات منطقی را حل کند . 
این عقیده یعنی استفاده از خصوصیات الکترونیکی سوئیچ‌ها تا کار منطقی را انجام دهند، پایه عقیده‌ای است که زمینه همه کامپیوترهای دیجیتال الکترونیکی است . و این قضیه شالوده طراحی مدار دیجیتالی کاربردی شده‌است . در این هنگام آن قضیه سریعاً بین جامعه مهندسین الکترونیک در طول و بعد از جنگ جهانی دوم شناخته شده‌است .

شانون رفت تا رشته تئوری اطلاعات را در سال ۱۹۴۸ پیدا کرد و نام آن را تئوری ریاضی ارتباطات قرار داده‌است . که احتمالاً در مسئله چطور بهتر رمز کردن اطلاعات یک فرستنده که می‌خواهد انتقال دهد، به کار برده می‌شود . این یک تئوری پایه برای تعدادی بخش‌های مطالعاتی از جمله فشرده سازی اطلاعات و رمزنویسی می‌باشد .

وینر و فیزیولوژی

از آزمایش‌هایی با سیستم‌های ضد هوایی که عکس‌های کشف شدهٔ هواپیمای دشمن را تفسیر می‌کرده‌است، نوربرت وینر (Norbert Wiener) اصطلاح فیزیو لوژی را از کلمه‌ای یونانی اختراع کرده‌است . او فیزیولوژی را در ۱۹۴۸ منتشر کرده‌است که تأثیر آن هوش مصنوعی بوده‌است . 
همچنین وینر، محاسبات ماشین محاسباتی، قطعات مموری یا حافظه و بقیه تشابه‌ها را با آنالیز امواج مغز خود مقایسه می‌کرده‌است .

اولین اشکال رایانه‌ای

در تاریخ ۹ سپتامبر ۱۹۴۵ میلادی حشره‌ای وارد رایانه هاوارد مارک ۲ شده و بین دستگاه‌های تقویت این رایانه چسبید و باعث اختلال در عملکرد آن شد. از آن زمان به بعد اصطلاح "BUG" (اشکال) وارد فرهنگ لغات رایانه‌ای شد. رواج این اصطلاح اغلب به گریس هوپر، افسر نیروی دریایی آمریکا نسبت داده می‌شود، که در حقیقت این چنین نیست. البته در مورد تاریخ دقیق این رویداد بحث‌هایی وجود دارد و برخی تاریخ این رویداد را سال ۱۹۴۷ می‌دانند.

علم رایانه

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

خلاصه تاریخچه

قبل از اختراع کامپیوتر دیجیتال پایه اصلی علم رایانه ایجاد شد . ماشینهایی برای محاسبه وظایف عددی ثابت، مانند چرتکه که در روزگار باستان وجود داشته‌است . ویلیام اشیکارد اولین محاسبه گر الکتریکی را در سال ۱۶۲۳ ساخت . در زمان ملکه ویکتوریا، چارلز بابیج ماشین متفاوتی را ( بین سال‌های ۱۸۳۷ و ۱۹۰۱ ) به کمک آدا لاولکا طراحی کرد . حدود سال ۱۹۰۰ شرکت IBM ماشین‌های کارت پانچ را فروخته‌است . هر چند که همه این ماشین‌ها برای انجام یک وظیفه یا بهترین تعداد زیر مجموعهٔ همه وظایف ممکن، تحمیل شده‌اند .

در طول دهه ۱۹۴۰، ماشین‌های محاسباتی قوی تر و جدید تری توسعه داده شد، کلمه Computer به ماشین‌های سریع تر از پردازش گرهای بشری آن‌ها بر می‌گردد . چنانکه آن روشن و واضح است که کامپیوترها می‌توانند برای بیشتر از فقط محاسبات ریاضی استفاده شوند . رشته علم کامپیوتر منتشر شده تا محاسبات را در کل مطالعه کند . علم کامپیوتر آغاز شده‌است تا برتری نظم آکادمی را در دهه ۱۹۶۰ با ساخت اولین دپارتمان علم کامپیوتر و مدرک برنامه‌ها برقرار کند . زمانی که کامپیوترهای کاربردی در دسترس شدند تعدادی کاربردهای محاسبات در حق خودشان در نواحی مورد مطالعه برتری داده شدند .
اگر چه تعدادی در ابتدا اعتقاد داشتند که آن غیرممکن است که خودشان واقعاً یک رشته مطالعاتی باشند، در پنجاه سال اخیر آن به تدریج بین بزرگترین جمعیت علمی و دانشگاهی مقبول واقع شد .
آن الان توسط مارک IBM خوب شناخته شده که قسمت انقلاب علم کامپیوتر در طول این مدت را شکل داده‌است . IBM (کوتاه شده ماشین تجاری بین‌المللی یا International Business Machine ) کامپیونرهای IBM۷۰۴ و بعد از آن IBM۷۰۹ را منتشر کرد، که در طول کشف چنین قطعاتی طولانی‌تر استفاده می‌شدند . همیشه کار با کامپیوترهای IBM نا امیدکننده بود ...اگر شما هر قدر یک کاراکتر را در یک دستورالعمل گم کردید، برنامه ریزریز شده و شما باید پردازش کامل را دوباره شروع کنید. در جریان اواخر دههٔ ۱۹۵۰ نظم علم کامپیوتر خیلی در حال توسعه یافتن مراحلش بود و چنین مسئله‌ای پیش پا افتاده و معمولی بود .

زمان در بهبودی قابلیت استفاده و مؤثر بودن تکنولوژی علم کامپیوتر مهم دیده می‌شده‌است . انجمن یا گروه پیشرفته به نظر می‌رسیده که برای آن‌ها مهم بوده که استفاده کنندگان کامپیوتر را از متخصصین و حرفه‌ای‌ها به کار بران رایج تر تغییر دهند .