Компютърни науки

от Уикипедия, свободната енциклопедия
Jump to navigation Jump to search

Компютърните науки изучават теорията, провеждат експерименти и използват инженерни познания с цел проектирането и използването на компютри. Те съчетават научен и практически подход към изчисленията (на английски: computation) и изучават системно принципите и методическите процедури (алгоритмите) за придобиване, представяне, обработка, съхранение, предаване на и достъп до информация. Алтернативна дефиниция е „изучават автоматизирани алгоритмични процеси, подлежащи на мащабиране“. Компютърният специалист (учен) специализира в областта на теорията на изчисленията и проектирането на компютърни системи.[1]

Компютърните науки могат да бъдат разделени на теоретични и практически дисциплини. Някои области, като теория на изчислителната сложност, са силно абстрактни, докато области като компютърната графика са насочени към практически приложения. Други области се фокусират върху предизвикателствата при прилагането на изчисления. Например теорията на езиците за програмиране разглежда различните подходи към описанието на въпросите на проектиране, анализ, определяне на характеристиките и класификация на езиците за програмиране, докато програмирането прилага на практика самите програмни езици. Разглеждането на взаимодействието човек-компютър има за цел да направи компютрите по-полезни, използваеми и универсално достъпни за хората.

Философия[редактиране | редактиране на кода]

Няколко учени посочват три различни отделни парадигми в компютърните науки. Питър Вагнер твърди, че тези парадигми са наука, технология и математика[2]. Питър Денинг твърди, че те са теория, абстракция (моделиране) и дизайн[3]. Амнон H. Eден ги описва като „рационална парадигма“ (която третира компютърните науки, като клон на математиката, която е широко разпространена в теоретичната част на компютърните науки и най-вече дедуктивното мислене), като „технократска парадигма“ (която може да бъде намерена в инженерните подходи, най-вече в софтуерното инженерство) и като „научна парадигма“ (чиито подходи, свързани с компютри артефакти от емпирична гледна точка на природните науки, разпознаваме в някои клонове на изкуствения интелект)[4]

Наименование[редактиране | редактиране на кода]

Въпреки че е предложено за първи път през 1956 г.[5]., понятието „компютърни науки“ се появява в статия през 1959 г. В съобщенията на ACM[6], в които Луис Феин пледира за създаването на училище по компютърни науки аналогично на бизнес училището в Харвард през 1921 г.[7]. Той оправдава името като казва, че както мениджмънт науката, предметът е приложен и интердисциплинарно в природата, като едновременно притежава характеристики, типични за академична дисциплина[6]. В резултат на неговите усилия и на други, като например числения анализатор Джордж Форсайт, университетите създават такива програми, като се започне от „Purdue“ през 1962 г.[8] Въпреки името си, значителен брой компютърни науки не включват изучаването на самите компютри. Поради това са предложени няколко алтернативни имена.[9] Някои отдели на големи университети предпочитат термина „изчислителна наука“, за да акцентират именно тази разлика. Датският учен Питър Наур препоръчва термина „datalogy““[10], за да се отрази фактът, че научната дисциплина се върти около данни и обработка на данни, а не непременно с участието на компютри. Първата научна институция, в която се използва терминът, е отделът по „Datalogy“ в университета в Копенхаген, основан през 1969 г.

Проектирането и внедряването на компютри и компютърни системи обикновено се счита за дисциплина, различна от информатиката. Например, изучаването на компютърен хардуер обикновено се счита за част от компютърното инженерство, а изучаването на търговски компютърни системи и тяхното внедряване често се наричат информационни технологии или информационни системи. Въпреки това е налице взаимно обогатяване чрез обмен на идеи между различните дисциплини, свързани с компютри. Компютърните науки имат пресечни точки с други научни дисциплини като философия, наука за познанието, лингвистика, математика, физика, биология, статистика и логика.

Смята се, че компютърните науки имат много по-тясна връзка с математиката, отколкото много други научни дисциплини, дори според някои наблюдатели работата с компютър е математическа наука[11]. Компютърните науки силно се повлияват от работата на математици като Курт Гьодел и Алан Тюринг.

Връзката между компютърните науки и софтуерното инженерство е спорен въпрос, който е допълнително размътен от спорове за това, какво означава терминът „софтуерно инженерство“ и как е дефиниран[12]. Като дискутира двете дисциплини, Давид Парнас заявява, че основната цел на компютърните науки е изучаване на свойствата на изчисленията като цяло, докато основната цел на софтуерното инженерство е проектирането на конкретни изчисления, за да се постигнат практически цели, така че те са две отделни, но допълващи се дисциплини[13].

Области[редактиране | редактиране на кода]

Информатика, Компютърни архитектури, Компютърно инженерство

Като дисциплина, компютърните науки обхващат редица теми от теоретични изследвания на алгоритми и граници за изчисляване на практическите проблеми при прилагането на изчислителни системи в хардуер и софтуер[14][15]. CSAB, или „Съвет за Акредитация на Компютърните Науки“ (Computing Sciences Accreditation Board) – съставен от представители на „Асоциацията за Изчислителна Техника“ (ACM – Association for Computing Machinery) и IEEE „Компютърното Общество“(IEEE CS – IEEE Computer Society) [16] – намира четири области от решаващо значение за компютърните науки: Теория на изчисленията, алгоритми и структури от данни, методология и програмни езици, и компютърни елементи, и архитектура. В допълнение към тези четири области, CSAB също добавя като важни области на компютърните науки: софтуерно инженерство, изкуствения интелект, компютърните мрежи и комуникации, системи за бази данни, паралелно изчисление, разпределени изчисления, взаимодействието между човек и компютър, компютърна графика, операционни системи и числено и символично изчисляване.[15]

Велики прозрения в компютърната наука[редактиране | редактиране на кода]

Философът Бил Рапапорт отбелязва три „велики прозрения на коммпютърната наука “ на:[17]

  1. Готфрид Лайбниц, Джордж Бул, Алън Тюринг, Клод Шанън, Самуел Морз: има само два обекта, с които компютърът трябва да се справи, за да възпроизведе „нещо“ – цялата информация за всеки изчислим проблем може да бъде представена само с 0 и 1.
  2. Алън Тюринг: има само пет действия, които трябва да се извършат с компютър, за да се направи „нещо“. Всеки алгоритъм може да се изрази на компютърен език, състояща се от пет основни инструкции: • движение наляво; • движение надясно; • чете символа на сегашното място; • печата 0 на текущото местоположение; • печата 1 на текущото местоположение.
  3. Корадо Бом и Джузепе Якопини • има само три възможности за съчетаване на тези действия (в по-сложни такива), които са необходими, за да може един компютър да направи „нещо“. Необходими са само три правила, които да комбинирате: • последователност: първо направи това, а след това направи онова; • избор: IF (ако) случаят е такъв и такъв, THEN (тогава) направете това, ELSE направете друго; • повторение: WHILE (докато) това и това DO (направите) това.

Източници[редактиране | редактиране на кода]

  1. WordNet Search—3.1. // Wordnetweb.princeton.edu. Посетен на 14 May 2012.
  2. Wegner, P. (October 13 – 15, 1976). Research paradigms in computer science—Proceedings of the 2nd international Conference on Software Engineering. San Francisco, California, United States: IEEE Computer Society Press, Los Alamitos, CA.
  3. Denning, P. J.; Comer, D. E.; Gries, D.; Mulder, M. C.; Tucker, A.; Turner, A. J.; Young, P. R. (Jan 1989). „Computing as a discipline“. Communications of the ACM 32: 9 – 23. doi:10.1145/63238.63239
  4. Eden, A. H. (2007). „Three Paradigms of Computer Science“ (PDF). Minds and Machines 17 (2): 135 – 167. doi:10.1007/s11023-007-9060-8.
  5. Tedre, Matti (2014). The Science of Computing: Shaping a Discipline. Taylor and Francis / CRC Press.
  6. а б Louis Fine (1959). „The Role of the University in Computers, Data Processing, and Related Fields“. Communications of the ACM 2 (9): 7 – 14. doi:10.1145/368424.368427
  7. „Stanford University Oral History“. Stanford University. Retrieved May 30, 2013.
  8. Donald Knuth(1972). „George Forsythe and the Development of Computer Science“.Comms. ACM. Archived August 12, 2014 at the Wayback Machine
  9. Matti Tedre (2006). „The Development of Computer Science: A Sociocultural Perspective“ (PDF). p. 260. Retrieved December 12, 2014.
  10. Peter Naur (1966). „The science of datalogy“. Communications of the ACM 9 (7): 485.10.1145/365719.366510.
  11. Denning, Peter J. (2000). „Computer Science: The Discipline“ (PDF).Encyclopedia of Computer Science.
  12. Tedre, M. (2011). „Computing as a Science: A Survey of Competing Viewpoints“. Minds and Machines 21 (3): 361 – 387. doi:10.1007/s11023-011-9240-4.
  13. Parnas, D. L. (1998). „Software engineering programmes are not computer science programmes“. Annals of Software Engineering 6: 19 – 37. doi:10.1023/A:1018949113292, p. 19: "Rather than treat software engineering as a subfield of computer science, I treat it as an element of the set, Civil Engineering, Mechanical Engineering, Chemical Engineering, Electrical Engineering, […]"
  14. Committee on the Fundamentals of Computer Science: Challenges and Opportunities, National Research Council (2004). Computer Science: Reflections on the Field, Reflections from the Field. National Academies Press. ISBN 978-0-309-09301-9.
  15. а б Computing Sciences Accreditation Board (May 28, 1997). „Computer Science as a Profession“.
  16. „CSAB Leading Computer Education“. CSAB. 2011-08-03. Retrieved 2011-11-19.
  17. „What Is Computation?“. buffalo.edu.
Криейтив Комънс - Признание - Споделяне на споделеното Лиценз за свободна документация на ГНУ Тази страница частично или изцяло представлява превод на страницата „Computer science“ в Уикипедия на английски. Оригиналният текст, както и този превод, са защитени от Лиценза „Криейтив Комънс - Признание - Споделяне на споделеното“, а за съдържание, създадено преди юни 2009 година — от Лиценза за свободна документация на ГНУ. Прегледайте историята на редакциите на оригиналната страница, както и на преводната страница. Вижте източниците на оригиналната статия, състоянието ѝ при превода, и списъка на съавторите.