علوم کامپیوتر
علوم کامپیوتر Computer Science به مجموعهٔ مطالبی گفته میشود که به زیر بناهای نظری، روشهای طراحی و ساخت و چگونگی استفاده از کامپیوتر میپردازند. علوم کامپیوتر رویکردی علمی و عملی برای محاسبات و کاربردهای آن است. این علم به بررسی سیستماتیک: امکانپذیری، ساختار، پیادهسازی و مکانیزمِ محاسبههای روشمند یا الگوریتم ها میپردازد؛ که مبنای آن کسب، نمایش، پردازش، ذخیرهسازی، ارتباط و دسترسی به اطلاعات است.
رشته علوم کامپیوتر را میتوان به رشتههای نظری و عملی بسیاری تقسیم کرد. بعضی از این رشتهها، مانند نظریه پیچیدگی محاسبات بسیار انتزاعی هستند، درحالی که رشتههای دیگر مانند گرافیک کامپیوتری به بررسی کاربردهای قابل لمس تر در دنیای واقعی تأکید دارند. اکثر رشتههای علوم کامپیوتر بر چالشهای موجود در اجرای محاسبات تمرکز دارند.
اگر بخواهیم به زبان ساده توضیح دهیم باید بگوییم علوم کامپیوتر، مطالعه اطلاعات و روش استفاده از آن ها (الگوریتم ها) برای حل مسائل بصورت نظری و عملی است. علوم کامپیوتر به معنی مطالعه کامپبوترها نبوده و همیشه نیازمند استفاده از کامپیوتر نیست. امکان محاسبه داده ها و الگوریتم ها با استفاده از کاغذ و خودکار هم ممکن است و این علم بیش از انکه وابسته به کامپیوتر باشد به ریاضیات وابسته است و به همین خاطر برخی ترجیح می دهند بجای علوم کامپیوتر از واژه انفورماتیک استفاده کنند.
رشته های علوم کامپیوتر
- هوش مصنوعی: توسعه ماشین هایی که دارای توانایی های شناختی مثل تفکر، صحبت کردن، استدلال و حل مسائل هستند در این زمینه قرار گرفته و موضوعاتی مثل زبانشناسی، رواشناسی و عصب شناسی را با علوم کامپیوتر ترکیب می کنند. یادگیری ماشینی نیز زیر مجموعه این شاخه است که به بررسی توانایی ماشین ها برای یادگیری، تکامل و تشخیص الگوها در داده ها می پردازد.
- بیوانفورماتیک: دانش استفاده از علوم کامپیوتر برای اندازه گیری، تجزیه و تحلیل، مدل سازی و درک پیچیدگی ها در زیست شناسی است و شامل تجزیه و تحلیل داده ها در مقیاس وسیع، محاسبات سنگین، شبیه سازی داده ها، مدل سازی مولکولی و غیره می باشد.
- نظریه محاسباتی: دانش مطالعه الگوریتم ها و شواهد ریاضیاتی است. این شاخه نه تنها به ایجاد الگوریتم های جدید و بهبود الگوریتم های موجود مربوط می شود بلکه به بهبود روش ها و اثبات نظریه ها نیزمی پردازد.
- گرافیک کامپیوتری: شامل مطالعه روش های استفاده از داده ها و تبدیل آن ها به اشکالی است که برای افراد قابل مشاهده و درک باشد. این شاخه موضوعاتی مثل تصاویر واقع گرایانه، تصاویر پویا، مدل سازی سه بعدی، انیمیشن و تصاویر تجسمی را دربرمی گیرد.
- توسعه بازی: تولید بازی های کامپیوتری، موبایلی و مبتنی بر وب در این شاخه قرار می گیرند. موتورهای بازی از نظر قیمت و کاربرد با هم تفاوت دارند و اغلب شامل الگوریتم ها و ساختارهای منحصربفردی هستند که برای تعامل بلادرنگ بهینه سازی شده اند.
- شبکه سازی: دانش مطالعه سیستم های کامپیوتری توزیع یافته و چگونگی بهبود محاسبات بین شبکه ها است.
- رباتیک: دانش تولید و توسعه الگوریتم های مورد استفاده در ماشین های رباتیک بود و شامل بهبود علم حرکت ربات ها، تعامل بین انسان و ربات، تعاملات محیطی، تعاملات بین ربات ها، واسطه های مجازی و غیره می باشد.
- ایمنی: توسعه الگوریتم ها، روش ها و نرم افزارهایی برای حفاظت از سیستم های کامپیوتری در برابر تهدیدات، بدافزارها و سواستفاده ها در این شاخه قرار می گیرند. این شاخه شامل ایمنی شبکه و محاسبات ابری، ایمنی کامپیوترهای شخصی، ایمنی گوشی ها، ایمنی ایمیل، نرم افزارهای آنتی ویروس و رمزنگاری و رمزگشایی می باشد
تفاوت علوم کامپیوتری با مهندسی کامپیوتر
علوم کامپیوتر اغلب با سه حوزه دیگر تداخل پیدا می کند اما علی رغم ارتباط زیاد بین آن ها نباید باهم اشتباه گرفته شوند :
مهندسی کامپیوتر: شامل مطالعه داده ها و الگوریتم ها در زمینه سخت افزاری است و در آن به دنبال پاسخ سوال هایی مثل چگونگی برقرای ارتباط بین اجزای الکترونیکی، چگونگی طراحی میکروپردازنده ها و راه های بهبود کارایی چیپست ها می گردند.
مهندسی نرم افزار: این شاخه را می توان بعنوان علوم کامپیوتر کاربردی در نظر گرفت. متخصصان علوم کامپیوتر بدنبال ارائه نظریات در علوم کامپیوتر هستند اما مهندسان نرم افزار برنامه های کاربردی را می نویسند که این نظریات را با الگوریتم ها یکپارچه می کند.
فناوری اطلاعات: شامل استفاده از نرم افزارها و سخت افزارهایی است که قبلا طراحی شده اند. متخصصین IT به نگهداری از شبکه ها کمک کرده و هنگام وقوع مشکلات در برنامه ها و سیستم های شبکه ای راه حل هایی را ارائه می کنند.
علی رغم تفاوت های ذکر شده بیشتر افراد برای اشاره به تمام زمینه های برنامه نویسی، تجزیه و تحلیل و استفاده از داده ها و کار با نرم افزارها و سخت افزارها از واژه علوم کامپیوتر استفاده می کنند در صورتی که علوم کامپیوتر زمینه ها و رشته های زیادی را دربرمی گیرد.