هدف رشته علوم کامپیوتر تولید دانش و تئوری لازم برای ساخت سخت افزار و نرم افزار های کامپیوتری است. شالوده و زیربنای این رشته ریاضیات است.
  • 1395/5/13 8/3/2016 11:52:57 AM 8/3/2016 11:52:57 AM
  • 1
  • 788
هدف رشته علوم کامپیوتر تولید دانش و تئوری لازم برای ساخت سخت افزار و نرم افزار های کامپیوتری است. شالوده و زیربنای این رشته ریاضیات است. قبل از اینکه بتوانیم شروع به ساخت هر گونه سخت افزار یا نرم افزار کامپیوتری بکنیم نیاز به دانش داریم و وظیفه علوم کامپیوتر تولید این دانش است.
علوم کامپیوتر بیشتر به مباحث بنیادی مرتبط با کامپیوتر می پردازد. مباحثی مانند طراحی الگوریتم ها، طراحی ساختمان داده های کارا، برنامه نویسی، محاسبه پذیری، معماری کامپیوتر، پردازش های موازی و ... از جمله مباحث مطرح در علوم کامپیوتر است. برای روشن تر شدن موضوع اجازه دهید یک مثال خیلی ساده بزنم:
فرض کنید 10 عدد داریم و می خواهیم برنامه ای بنویسیم که این اعداد را به ترتیب صعودی مرتب کند. شاید مرتب کردن این اعداد به صورت ذهنی کار ساده ای به نظر برسد ولی چطور گام به گام به کامپیوتر بگوییم که این اعداد را مرتب کند؟ در واقع الگوریتم این کار چیست؟
طی چندین دهه الگوریتم های مختلفی برای همین مسئله ساده ارائه شده است. بعضی از آنها سریعتر و بعضی کندتر عمل می کنند. ارائه الگوریتم های کارا برای مسائلی از این قبیل وظیفه متخصصان علوم کامپیوتر (Computer Scientists) است.
البته مرتب سازی اعداد یکی از ساده ترین مسائل در حوزه علوم کامپیوتر است! شاخه های علوم کامپیوتر بسیار وسیع و متنوع هستند. امروزه بدون شک پیچیده ترین تکنولوژی های کامپیوتری حاصل پیشرفت در علوم کامپیوتر است.
اجازه دهید یک نگاه اجمالی به بعضی از مباحث مطرح در زمینه علوم کامپیوتر داشته باشیم. در آینده درباره هرکدام بیشتر خواهم نوشت.
 
  • ساختمان داده ها و الگوریتم ها (Data Structures)

در بحث ساختمان داده ها و الگوریتم ها هدف پیدا کردن الگوریتم های کارآمد برای ذخیره داده ها و همچنین بازیابی آنها از حافظه کامپیوتر است.

Data Structures
 
  • نظریه محاسبات (Theory Of Computation)

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

 

Complexity map of the world

Complexity map of the world!

 
  • هوش مصنوعی (Artificial Intelligence)

هوش مصنوعی یکی از شاخه های جذاب علوم کامپیوتر است. در هوش مصنوعی هدف ساخت کامپیوترهای هوشمند است .کامپیوترهایی که بتوانند مثل انسان فکر کنند، تصمیم بگیرند، استنتاج کنند و ... . ترکیب علم هوش مصنوعی با مهندسی روبوتیک است که Asimo را ایجاد کرده! اگر Asimo را نمی شناسید شاید بد نباشد از طریق لینک زیر به سایت شرکت Honda (سازنده Asimo) سری بزنید!

مباحث زیادی در هوش مصنوعی مطرح می شوند. مباحثی از قبیل بینایی ماشین(Machine Vision)، یادگیری ماشین (Machine Learning)، داده کاوی (Data Mining)، پردازش زبان های طبیعی (Natural Language Processing, NLP)، شبکه های عصبی مصنوعی (Artificial Neural Networks) و ... . هوش مصنوعی علمی است که تازه در ابتدای راه قرار دارد و جای پیشرفت های بسیار زیادی در این زمینه وجود دارد.

 
  • رمزنگاری (Cryptography)

شروع رمزنگاری به صدها سال قبل از میلاد مسیح بر می گردد! 500 سال قبل از میلاد مسیح یک نویسنده یهودی کتابی نوشت که کلمات آن برعکس نوشته شده بودند. تقریبا 400 سال قبل از میلاد ژولیس سزار برای مکاتبات نظامی خود اطلاعات را به صورت رمز شده به پیک خود می داد!
(منبع: www.ircrypt.com)

یکی از شیوه‌های رمزنگاری ابتدایی، پیچیدن یک نوار کاغذی بر روی استوانه‌ای با قطر مشخص و سپس نوشتن پیام روی کاغذ پیچیده شده بود. بدیهی است بدون اطلاع از مقدار قطر استوانه، خواندن پیام کار بسیار دشواری خواهد بود و تنها کسانی که نسخه‌های یکسانی از استوانه را داشته باشند می‌توانند پیام را بخوانند.

Cryptography
یکی از روش های رمزنگاری!

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

 
  • معماری کامپیوتر (Computer Architecture)

در مبحث معماری کامپیوتر به مطالعه سخت افزارهای سیستم های کامپیوتری پرداخته می شود. اصول طراحی سیستم های دیجیتالی، نحوه طراحی قطعات کامپیوتر مانند CPU  و RAM و نحوه ارتباط آنها با هم از جمله مباحث معماری کامپیوتر است. البته کامپیوتر هایی که امروزه می بینیم حاصل ترکیب این مباحث با رشته مهندسی برق،گرایش الکترونیک، است. در واقع رشته مهندسی کامپیوتر ،گرایش سخت افزار، حاصل ترکیب مباحث نظری معماری کامپیوتر (در رشته علوم کامپیوتر) با مهندسی برق است.
امروزه کامپیوترها فقط دیجیتالی نیستند! نسل جدیدی از کامپیوترها به نام کامپیوترهای کوانتومی در راه اند. این کامپیوتر ها به جای استفاده از جریان برق و الکترون از ذرات تشکیل دهنده نور یعنی فوتون ها استفاده می کنند. این سیستم ها معماری خاص خود را دارند و همچنین نیاز به یک سیستم جبری جدید دارند. اینگونه کامپیوترها از عملیات بولی (Boolean) برای انجام محاسبات خود استفاده نمی کنند بلکه از یک سیستم جبری جدید و منحصر به فرد استفاده می کنند. محاسبات کوانتومی (Quantum Computing) شاخه ای از علوم کامپیوتر است که به بررسی نحوه انجام محاسبات در کامپیوتر های کوانتومی می پردازد.

  • سیستم های توزیع شده و پردازش های موازی (Distributed Systems)

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

Hybrid SMP Cluster Parallel Computers

Hybrid SMP Cluster Parallel Computers

 
  • هندسه محاسباتی (Computational Geometry)

بخشی از علوم کامپیوتر که به مطالعه اشکال هندسی، الگوریتم های ترسیم آنها در کامپیوتر و همچنین محاسبات هندسی مربوط به آنها می پردازد. هندسه محاسباتی زیربنای گرافیک برداری(Vector Graphics) را تشکیل می دهد. نرم افزارهای CAD (مانند AutoCAD، Maya، 3D Studio Max) و گرافیک پیچیده بازی های 3 بعدی محصول گرافیک برداری است.

3D Objects

 
  • محاسبات علمی (Scientific Computing)

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

 

اینها بخشی از شاخه های Computer Science بودند که به اختصار معرفی شدند. مباحث Computer Science تمام نشدنی است! این رشته با وجود آنکه بسیار جوان است (با ریاضیات مقایسه کنید که هزاران سال عمر دارد!) در عین حال بسیار وسیع است. مباحث باز و حل نشده (Open Problems) زیادی در علوم کامپیوتر وجود دارد و از این رو جای مطالعه و تحقیق در این رشته بسیار است. در آینده در مورد شاخه های علوم کامپیوتر بیشتر خواهم نوشت.

در قسمت بعد درباره رشته مهندسی کامپیوتر و تفاوت آن با علوم کامپیوتر می نویسم.

مهرداد تاجدینی

مهرداد تاجدینی هستم. فوق لیسانس رشته علوم کامپیوتر و در شرکت رهیاب رایانه گستر به عنوان برنامه نویس مشغول به کار می باشم.

نظرات 1
1395/6/25 - 10:33
ممنون خیلی خوب بود
برای ارسال دیدگاه وارد حساب کاربری خود شوید.

ورود به حساب کاربری ایجاد حساب کاربری
مهرداد تاجدینی
علوم کامپیوتر چیست؟
زیگماوب