رئوس مطالب علوم رایانه

**[[علوم رایانه]]** (همچنین **علم محاسبات** نامیده می‌شود) مطالعه پایه‌های نظری اطلاعات و محاسبات و اجرای و کاربرد آنها در سیستم‌های کامپیوتری است. یک سیستم طبقه‌بندی موضوعی شناخته شده برای علوم رایانه، سیستم محاسبه طبقه‌بندی ACM است که توسط انجمن ماشینهای رایانه طراحی شده‌است. 

## علوم کامپیوتر چه نوع چیزی است؟
علم کامپیوتر را می‌توان به عنوان همه موارد زیر توصیف کرد:
* رشته تحصیلی
* علوم پایه
** علوم کاربردی

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

### الگوریتم‌ها و ساختارهای داده
* الگوریتم - روش‌های محاسباتی متوالی و موازی برای حل طیف وسیعی از مشکلات.
* ساختار داده‌ها - سازماندهی و دستکاری داده‌ها.

### هوش مصنوعی
طرح کلی هوش مصنوعی
* هوش مصنوعی - پیاده‌سازی و مطالعه سیستم‌هایی که هوش خودمختار یا رفتار خود را نشان می‌دهند.
* استدلال خودکار - موتورهای حل کننده مانند آنچه در پرولگ استفاده شده، که گام‌هایی تا پاسخ را با استفاده از داده‌ها بر اساس یک پایگاه داده قانون و نتیجه و نتایج پیش‌بینی کننده‌های قضیه اتوماتیک ایجاد می‌کند که هدف آنها ثابت کردن برخی از قواعد ریاضی با کمک یک برنامه‌نویس است.
* بینایی ماشین - الگوریتم برای شناسایی اشیاء سه بعدی از یک تصویر دو بعدی.
* محاسبات نرم، استفاده از راه حل‌های غیر دقیق برای مشکلات بسیار دشوار:
** یادگیری ماشین - ایجاد خودکار مجموعه ای از قواعد و اصطلاحات مبتنی بر ورودی.
** محاسبات تکاملی - الگوریتم‌های الهام گرفته از زیست‌شناسی.
* پردازش زبان طبیعی - تولید سیستم‌های ساختمان و الگوریتم‌هایی که زبان‌های طبیعی (انسان) را تجزیه و تحلیل و درک می‌کنند.
* رباتیک - الگوریتمهای کنترل رفتار روباتها.

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

### معماری کامپیوتر
* معماری کامپیوتر - طراحی، سازماندهی، بهینه‌سازی و تأیید یک سیستم کامپیوتری، بیشتر در مورد پردازنده‌ها و زیر سیستم حافظه (و اتوبوس متصل می کننده آنها).
* سیستم عامل - سیستم‌هایی برای مدیریت برنامه‌های کامپیوتری و ارائه پایه ای از یک سیستم قابل استفاده.

### گرافیک کامپیوتری
* گرافیک کامپیوتری - الگوریتم‌های هم برای تولید تصاویر بصری مصنوعی و همچنین برای ادغام یا تغییر اطلاعات بصری و فضایی بر اساس نمونه‌هایی از دنیای واقعی.
* پردازش تصویر - تعیین اطلاعات از یک تصویر از طریق محاسبات.
* تجسم اطلاعات - روش‌های ارائه و نمایش داده‌های انتزاعی برای تسهیل تعامل انسان برای اکتشاف و درک.

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

### پایگاه‌های داده
* پایگاه داده‌های ارتباطی - پایه نظری مجموعه ای و الگوریتمی پایگاه‌های داده.
* ذخیره‌سازی سازمانی - پایگاه‌های داده‌های غیر مرتبط مانند پایگاه‌های داده NoSQL.
* داده کاوی - مطالعه الگوریتم‌ها برای جستجو و پردازش اطلاعات در اسناد و پایگاه‌های داده؛ نزدیک به بازیابی اطلاعات است.
* تئوری کامپایلر - تئوری طراحی کامپایلر، بر اساس نظریه Automata.
* پراگماتیک زبان برنامه‌نویسی - طبقه‌بندی زبان‌های برنامه‌نویسی، قدرت و ضعف آنها. پارادایم‌های مختلف برنامه‌نویسی، مانند برنامه‌نویسی شی گرا.
* نظریه زبان برنامه‌نویسی
* معانی رسمی - مطالعه دقیق ریاضی معنی برنامه‌ها.
* تئوری نوع - تجزیه و تحلیل رسمی انواع داده‌ها و استفاده از این انواع برای درک خواص برنامه‌ها - به ویژه امنیت برنامه.

### محاسبات علمی
* علم محاسباتی &#x2013; ساخت مدل‌های ریاضی و تکنیک‌های تجزیه و تحلیل کمی و استفاده از کامپیوتر برای تجزیه و تحلیل و حل مشکلات علمی.
* تجزیه و تحلیل عددی - راه حل عددی تقریبی از مشکلات ریاضی مانند ریشهابی، ادغام، حل معادلات دیفرانسیل معمولی؛ تقریبی از توابع خاص.
* محاسبات نمادین - دستکاری و حل عبارات در شکل نمادین، همچنین به عنوان جبر کامپیوتر شناخته شده‌است.
* فیزیک محاسباتی - شبیه‌سازی عددی از سیستم‌های غیر تحلیلی بزرگ
* شیمی محاسباتی - مدلسازی محاسباتی از شیمی تئوری برای تعیین ساختار و خواص شیمیایی
* بیوانفورماتیک و زیست‌شناسی محاسباتی - استفاده از علوم رایانه برای حفظ، تجزیه و تحلیل، ذخیره داده‌های بیولوژیکی و کمک به حل مشکلات بیولوژیکی مانند پوشیدگی پروتئین، پیش‌بینی عملکرد و فیلوژنی.
* علوم اعصاب محاسباتی - مدلسازی محاسباتی نوروفیزیولوژی.

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

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

## تاریخ
* تاریخ علوم رایانه
* فهرست پیشگامان علوم رایانه

## حرفه‌ها
* برنامه‌نویس
* معلم / استاد
* مهندس نرم‌افزار
* معمار نرم‌افزار
* توسعه دهنده نرم‌افزار
* تستر نرم‌افزار
* مهندس سخت‌افزار
* تحلیلگر داده
* طراح تعامل
* مدیر شبکه

## داده‌ها و ساختارهای داده
* ساختار داده‌ها
* نوع داده
* آرایه انجمنی و جدول هش
* آرایه
* فهرست
* درخت
* رشته
* ماتریکس (علوم کامپیوتری)
* بانک اطلاعاتی

## پارادایم‌های برنامه‌نویسی
* برنامه‌نویسی اجباری / برنامه‌ریزی رویه ای
* برنامه‌نویسی کاربردی
* برنامه‌ریزی منطقی
* برنامه‌نویسی شی گرا
** کلاس
** وراثت
** هدف - شی

## جستارهای وابسته

* انتزاع - مفهوم - برداشت
* علامت بزرگ O
* بسته
* کامپایلر
* علوم شناختی

## پیوند به بیرون
* 
* http://www.acm.org//education/curricula/ComputerScience2008.pdf ACM گزارش یک برنامه درسی علوم رایانه توصیه شده (2008)
* فهرست سخنرانی‌های دانشگاه آزاد در علوم کامپیوتر
* مجموعه کتابشناسی علوم رایانه
* عکسهای دانشمندان کامپیوتر (گالری برتری میر)

رده:فهرست‌های مرتبط با رایانش
رده:علوم رایانه
رده:رئوس مطالب
رده:صفحات با ترجمه بازبینی‌نشده
رده:رئوس مطالب علوم