Информатика

от Уикипедия, свободната енциклопедия
Направо към: навигация, търсене
Главна ламбда буква Графика на алгоритъм за бързо сортиране
Чайник, представящ компютърна графика Тестова мишка на Майкрософт, която представя взаимодействието между човек и компютър
Компютърната наука се занимава с теоретичните основи на информацията, изчисленията и с практическите техники за тяхното приложение.

Информатиката е наука за събирането, преобразуването, преноса и съхранението на информация с произволни, включително и автоматични, средства. Тя изучава информацията от гледна точка на структурираност, количествени характеристики, форми и начини на представяне; информационните процеси като композиция на основните информационни дейности, както и методите и средствата за автоматизирането им.

Съдържание

Терминология[редактиране | редактиране на кода]

В англоезичните страни информатиката се нарича computer science (компютърни науки) – официално термин informatics няма, въпреки че се използва, например в името на Международната олимпиада по информатика – International Olympiad in Informatics [1]. Твърди се[кой го твърди?], че Едсхер Дейкстра е казал по този повод „Информатиката е толкова за компютри, колкото астрономията е за телескопи.“ Думи със сходен корен се ползват в болшинството европейско-континентални езици. Например Informatik на немски, informatique на френски, informatica на други романски.

В практиката по света има разлика в учебните програми по информатика и компютърни науки. В университети в САЩ, които имат специалност „informatics“, тя обхваща и човешката страна в ползването на компютри. Във Факултета по математика и информатика на Софийски университет, въвеждайки класификация на ACM, създават специалност „компютърни науки“, с по-специфичен фокус върху изчислителните възможности на компютърните системи.

Компютърни науки[редактиране | редактиране на кода]

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

Компютърният учен специализира в областта на изчислението и проектирането на компютърни системи[1].

Компютърните науки могат да бъдат разделени на теоретични и практически дисциплини.

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

История[редактиране | редактиране на кода]

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

Блез Паскал проектира и изработва първия работещ механичен калкулатор наречен калкулатор на Паскал през 1642 г[2]. През 1673 г. Готфрид Лайбниц демонстрира цифров механичен калкулатор, наречен “стъпаловидният изчислител“[3]. Той може да бъде считан за първия компютърен учен и теоретик в полето на информатиката, поради факта, че документира двоичната бройна система. През 1820 Томас де Колмар стартира индустрията на механичните калкулатори когато пуска опростения аритмометър, която е първата сметачна машина, достатъчно силна и достатъчно надеждна, за да бъде използвана ежедневно и в офис среда. Чарлз Бабидж започва проектирането на първата автоматична механича сметачна машина през 1822, а впоследствие той му дава идеята за първата машина, контролирана от програма, така наречената Аналитична машина[4]. Той започва да я разработва през 1834 г. и „за по-малко от две години вече бил очертал много от характерните черти на съвременния компютър[5]“. Решителна стъпка било възприемането на системата за въвеждане на инструкции с перфокарта заимствана от жакардовия стан,[5] правейки го програмируем. През 1843 г. по време на превода на статия за Аналитичната машина Ада Лъвлейс написва в една от многото нейни съпроводителни бележки алгоритъм за изчисляване на числата на Бернули, който се счита за първата компютърна програма[6]. Около 1885 г. Херман Холерит изобретил табулатор, който използвал перфокарти за обработка на статистическа информация. Впоследствие компанията му става част от IBM. През 1937 г., 100 години след неосъществената мечта на Бабидж, Хауърд Айкен убеждава IBM, които по това време произвеждат разнообразно офис оборудване с перфокарти, да финансират създаването на програмируема електромеханична сметачна машина, Harvard Mark I, базирана на Аналитичната машина, която използва подобни карти и централен изчислителен възел. Някои я наричат „сбъднатата мечта на Бабидж“[7].

С напредъка в разработването на нови и по-мощни изчислителни устройства през 1940-те години терминът „компютър“, който дотогава означавал "човек-изчислител" започнал да се използва за машините, а не за операторите[8]. Става ясно, че компютрите могат изпълняват много повече задачи от чисто математически изчисления и обхватът на компютърните науки се разширява. Те започват да се обособяват като отделна академична дисциплина през 1950-те и началото на 1960-те години. Първата в света учебна програма по компютърни науки е на Кеймбриджкия университет и започва през 1953. Първата програма в САЩ стартира в университета Пърдю през 1962 г.[9].

Въпреки че първоначално мнозина не смятат информатиката за самостоятелна наука, тя постепенно се утвърждава в края на 1950-те години[10][11]. Известната компания IBM е една от движещите сили в компютърната революция по това време. Тя произвежда модела IBM 704[12] и по-късно IBM 709[13], които са широко използвани в началния период на възприемането на подобна техника.

Въпреки това, работата с новите устройства е сложна. Ако потребителят обърка дори една буква в подадената на входа команда, цялата програма се сривала и трябвало целият процес да започне отначало[11]. Към края на 1950 г, компютърните науки са в стадий на развитие и подобни проблеми са често срещано явление.[10]

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

Принос[редактиране | редактиране на кода]

Въпреки кратката си история като официална академична дисциплина, компютърната наука е направила редица фундаментални приноси към науката и обществото. В действителност, заедно с електрониката тя е една от основните науки на сегашната епоха от човешката история, наречена Информационна ера и е водач на информационната революция, разглеждана като третия голям скок в човешкия технологичен напредък след индустриалната революция (1750 – 1850) и селскостопанската революция (8000 – 5000 пр. н. е.).

Тези приноси включват:

  • Старта на „цифровата революция“ която включва текущата Информационна епоха и Интернет[14].

  • Формалното определение за изчисление и изчислимост, и доказателството, че има нерешими изчисления и проблеми.[15]

  • Концепцията за език за програмиране, инструмент за точното изразяване на методологична информация на различни нива на абстракция[16]

  • При криптографията, разбиването на шифъра на Енигма машината е важен фактор, който допринася за победата на съюзниците през Втората световна война[17].

  • Научните изчисления разрешават практическа оценка на процеси и ситуации с голяма сложност, както и експериментиране изцяло от софтуер. Те дават възможност и за разширено изучаване на ума, и картиране на човешкия геном става възможно със Проекта за Човешкия Геном[14]. Други проекти като Folding@Home проучват сгъването на протеините.

  • Алгоритмичната търговия увеличава ефективността и ликвидността на финансовите пазари чрез използване на изкуствен интелект, машинно обучение, както и други статистически и числени методи от голям мащаб[18]. Алгоритмична търговия с висока честота можела също така да изостри нестабилността[19].

  • Компютърната графика и компютърно генерираните изображения са станали повсеместни в съвременното забавление, особено в телевизия, кино, реклама, анимация и видео игри. Дори филми, които изрично не включват CGI обикновено са „заснети“ на цифрови камери или редактирани впоследствие с помощта на цифров видео редактор.

  • ·Симулацията на различни процеси, включително изчислителна динамика на флуиди, физически електрически и електронни системи и схеми, както и общества и социални ситуации (а именно военни игри) заедно с техните местообитания. Съвременните компютри позволяват оптимизация на проекти като завършено въздухоплавателно средство. Известни в електрическия и електронният дизайн на схеми са SPICE, както и за софтуер за физическа реализация на нови дизайни. Последното включва и забележителен софтуер за интегрални схеми.

  • Изкуственият интелект става все по-важен, тъй като става все по-ефективен и сложен. Има много приложения на изкуствения интелект, някои от които могат да се видят в домакинството, като роботизирани прахосмукачки. Той присъства и във видео игри и на модерното бойно поле в дроните, противоракетни системи, както и за роботи за подпомагане на отряди.

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

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

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

Въпреки че е предложено за първи път през 1956 г.[23]., понятието „компютърни науки“ се появява в статия през 1959 г. В съобщенията на ACM[24], в които Луис Феин пледира за създаването на училище по компютърни науки по аналогично на създаването на бизнес училището в Харвард през 1921 г.[25]. Той оправдава името като казва, че както мениджмънт науката, предметът е приложен и интердисциплинарно в природата, като едновременно притежава характеристики, типични за академична дисциплина[24]. Неговите усилия и тези на други, като например числения анализатор Джордж Форсайт, са наградени: университети създавали такива програми, като се започне от „Purdue“ през 1962 г.[26] Въпреки името си, значително количество компютърни науки не включват изучаването на самите компютри. Поради това няколко алтернативни имена са предложени.[27] Някои отдели на големи университети предпочитат термина „изчислителна наука“, за да акцентират именно тази разлика. Датският учен Питър Наур препоръчва терминът „datalogy““[28], за да се отрази фактът, че научната дисциплина се върти около данни и обработка на данни, а не непременно с участието на компютри.

Първата научна институция, в която се използва терминът, е отделът по „Datalogy“ в университета в Копенхаген основан през 1969 г. Питър Наур е първият професор в „Datalogy“. Терминът се използва главно в скандинавските страни. Един алтернативен термин, също предложен от Наур е „науката на данни“, той се използва за отделна област на анализа на данни, включително статистически данни и база данни.

Проектирането и внедряването на компютри и компютърни системи обикновено се счита за областна дисциплина, различна от компютърните науки.

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

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

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

Области на компютърните науки[редактиране | редактиране на кода]

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

Теоретична информатика[редактиране | редактиране на кода]

Областта на теоретичната информатика обхваща както класическата теория на изчисление, така и широк спектър от други теми, които се фокусират върху по-абстрактни, логически и математически аспекти.

Теория на изчисление[редактиране | редактиране на кода]

Според Питър Денинг (Peter Denning), фундаменталният въпрос в основната на компютърна наука е: „Какво може да бъде (ефективно) автоматизирано?“ [29]Теорията на изчисление е фокусирана върху отговаряне на основните въпроси за това, какво може да се изчисли и какво количество от ресурси са необходими за извършване на тези, изчисления. В опит да се отговори на първия въпрос, теорията за изчисляемост изследва кои изчислителни проблеми са решими за различни теоретични модели на изчисление.

Вторият въпрос се решава чрез сложността на изчислителната теория, която изучава разхода на време и пространство, свързани с различни подходи при решаването на множество изчислителни проблеми. Известният P = NP? Проблем е един от проблемите от наградите на хилядолетието[35]. Той е отворен проблем в теорията на изчисление.

DFAexample.svg Wang tiles.png P = NP? GNITIRW-TERCES Blochsphere.svg
Tеория на автоматизация Теория на
изчисленията
Теория на изчислителната
сложност
Криптография Квантовата
теория

Информация и теорията на кодирането[редактиране | редактиране на кода]

Теорията на информацията е свързана с количествено определяне на информацията. Тя е разработена от Клод Шанън, за да се намерят основните ограничения на операциите по обработка на сигнала, като например: компресирането на данни и надеждното съхраняване и предаване на данни.[36] Теорията за кодиране представлява изследването на свойствата на кода (системи за преобразуване на информация от една форма в друга) и тяхната приспособимост за конкретно приложение. Кодове се използват за компресиране на данни, криптография, откриване на грешки и тяхната корекция, а отскоро и за мрежово кодиране. Те се изучават и за достигане на целите при проектирането на ефективни и надеждни методи за предаване на данни.

Алгоритми и структури от данни[редактиране | редактиране на кода]

Алгоритмите и структурите от данни представлява изучаването на често използвани изчислителни методи и тяхната изчислителна ефективност.

Sorting quicksort anim.gif Singly linked list.png TSP Deutschland 3.png SimplexRangeSearching.png
Анализ
на алгоритми
Алгоритми База данни Комбинационна
оптимизация
Изчислителна

геометрия

Теория на езиците за програмиране[редактиране | редактиране на кода]

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

Compiler.svg Python add5 syntax.svg
Тип теория Дизайн
на компилатора
Програмни
езици

Формална логика[редактиране | редактиране на кода]

Формалната логика представлява определен вид математически базирана техника за спецификацията, развитието и проверката на софтуерните и хардуерните системи. Използването на формална логика за изработка на дизайн на софтуер и хардуер е мотивирана от очакването, че както и в други инженерните специалности, извършване на подходящия математически анализ може да допринесе за надеждността и устойчивостта на дизайна. Тя формира важна теоретична обосновка за софтуерно инженерство, особено когато става дума за безопасността и сигурността. Формалните методи са полезно допълнение към софтуерното тестване, тъй като те помагат да се избегнат грешки и може, също така, да се създаде фреймуърк за тестване. За промишлена употреба, се изисква поддържане на инструменти. Въпреки това, високата цена за използване на формалните методи означава, че те обикновено се използват само в развитието на високо-интегрирани и критикуващи-живота системи, където безопасността или сигурността са от първостепенно значение. Формалната логика е найдобре описана чрез прилагането на достатъчно широка гама от основите на теоретичните компютърни науки, официалните езици, теорията на автоматите, и програмната семантика. Също така и от системите за типовете и алгебрични типове данни, които създават проблеми в областта на спецификацията и проверката на софтуера и хардуера.

Приложна информатика[редактиране | редактиране на кода]

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

Изкуствен интелект[редактиране | редактиране на кода]

Изкуствен интелект (AI – Artificial intelligence) има за цел да се изисква или да синтезира целево ориентирани процеси, като решаване на проблеми, вземане на решения, адаптиране на околната среда, обучениете и комуникацията намерени както при хора, така и при животни. От произхода си в кибернетиката и в „Конференцията в Дартмоут“ (1956 г.), изследване върху изкуствения интелект е било задължително интердисциплинарно, изготвяйки експертни области като приложна математика, символична логика, семиотиката, електротехника, философия на ума, неврофизиология и социална интелигентност. AI е свързан с развитието на роботизацията. В основната сфера на приложение на практиката той е бил внедрен като компонент в области от разработката на софтуер, които изискват изчислително разбиране. Началната точка в края на 1940 била поставянето на въпросът на Алън Тюринг (Alan Turing) „Могат ли компютрите да мислят?“. Въпросът остава без отговор, въпреки че ефективния тест на Тюринг все още се използва, за да свързва компютърния изход от мащаба на човешката интелигентност. Но автоматизацията на оценъчните и предсказуеми задачи е все по-успешна като заместител на човешкото наблюдение и намесата в областите на компютърното приложение, включваща сложни реални данни.

Nicolas P. Rougier's rendering of the human brain.png Human eye, rendered from Eye.png Corner.png
Машинно учене Компютърно възприятие Обработка на изображение
KnnClassification.svg Julia iteration data.png Sky.png
Път на възприятие Извличане на данни Еволюционно изчисляване

Компютърна архитектура и инженеринг[редактиране | редактиране на кода]

Компютърната архитектура, или организацията на цифровия компютър, е идейният проект или фундаменталната оперативна структура на една компютърна система. Тя се фокусира до голяма степен от начина, по който централната единица за обработка извършва своевременно вътрешно достъп до адреси в паметта[37]. Полето често включва дисциплини на компютърната техника и електротехника, избор и съединяване на хардуерните компоненти за създаване на компютри. Те отговарят на целите на функционално-насочената, производително-насочената и на финансовите разходи.

Анализ на производителността на компютъра[редактиране | редактиране на кода]

Анализ на производителността на компютъра представлява изучаването на работата, преминаваща през компютрите с общите цели и за подобряване на пропускателната способност, контролирането на времето за реакция, ефективното използване на ресурсите, премахването на участъците с недостатъчен капацитет и прогнозиране на ефективността под очакваните върхови натоварвания.

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

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

Тя е приложима най-вече в областта на специалните ефекти и видео игри.

Компютърна сигурност и криптография[редактиране | редактиране на кода]

Компютърна сигурност е клон на компютърните технологии, чиято цел включва защитата на информацията от неоторизиран достъп, прекъсване на доставките или модификация при запазване на достъпността и използваемостта на системата за своите предвидени потребители. Криптографията представлява практикуването и изучаването на скриване на данните (криптиране), следователно и дешифриране (декриптиране) на информацията. Модерната криптография е, до голяма степен, свързана с компютърните науки, тъй като много екриптиращи и декриптиращи алгоритми са базирани на тяхната изчислителна сложност.

Изчислителна наука[редактиране | редактиране на кода]

Изчислителната наука (или научни изчисления) е в областта на занимаване с конструиране на математически модели и количествени методи за анализ и използване на компютри, за да анализират и решават научни проблеми. В практическо приложение се прилага компютърна симулация и се прилагат други допълнителни форми на изчисляване на проблеми в различни научни дисциплини.

Компютърни мрежи[редактиране | редактиране на кода]

Този клон на компютърната наука има за цел да управлява мрежи между компютри в световен мащаб.

Съгласувани, паралелни и разпределени системи[редактиране | редактиране на кода]

Concurrency (съгласуване) е свойство на системи, в което няколко изчисления се изпълняват едновременно и потенциално взаимодействат помежду си. Броят на математическите модели е разработен за общо изчисление на данни, включително мрежи на Петри.

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

Базите от данни[редактиране | редактиране на кода]

Базата данни е предназначена за организиране, съхранение и извличане на големи количества данни в улеснен вариант. Цифровите бази данни се управляват с помощта на системи за управление на базата данни. За съхранение, създаване, поддържане, и търсене на данни, се използват модели на бази данни и езикови заявки.

Софтуерно инженерство[редактиране | редактиране на кода]

Софтуерното инженерство е подготовката на разработване, прилагане и промяна на софтуер, за да се гарантира високо качество. Намира се на достъпни цени и се поддържа лесно. Това е систематичен подход за дизайн на софтуер, който предполага прилагане на инженерните практики за софтуера. Софтуерното инженерство се занимава не само с организирането и анализирането на програмите и тяхното създаването и производство, но и с вътрешната им поддръжка и тяхното подреждане. Професиите софтуерен инженер на компютърни приложения и софтуерен инженер на компютърни системи се очаква да бъдат сред най-бързо развиващите се между 2008 – 2018.

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

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

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

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

Конференциите са важни събития за компютърните научни изследвания. По време на тези конференции, изследователи от публичния и частния сектор представят новите си проучвания. За разлика от повечето други академични области, при компютърните науки престижът на доклади от конференции е по-голям от този на публикации в списания[39][40]. Обяснение за това е бързото развитие на тази сравнително нова област. Тя изисква бързо разглеждане и разпределение на резултатите.[41]

Свързани теми[редактиране | редактиране на кода]

Математически основи[редактиране | редактиране на кода]

Подобласти на информатиката[редактиране | редактиране на кода]

Основи на информатиката
Софтуер
Хардуер
Данни
Приложения

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

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

  1. „WordNet Search—3.1“. Wordnetweb.princeton.edu. Retrieved 2012-05-14
  2. „Blaise Pascal“. School of Mathematics and Statistics University of St Andrews, Scotland.
  3. „A Brief History of Computing“.
  4. Science Museum—Introduction to Babbage"
  5. а б Anthony Hyman (1982). Charles Babbage, pioneer of the computer.
  6. „A Selection and Adaptation From Ada's Notes found in Ada, The Enchantress of Numbers,“ by Betty Alexandra Toole Ed.D. Strawberry Press, Mill Valley, CA"
  7. Brian Randell, p. 187, 1975
  8. Асоциацията на изчислителната техника (Association for Computing Machinery, ACM) е основана през 1947
  9. „Computer science pioneer Samuel D. Conte dies at 85“. Purdue Computer Science. July 1, 2002. Retrieved December 12, 2014.
  10. а б Tedre, Matti (2014). The Science of Computing: Shaping a Discipline. Taylor and Francis / CRC Press.
  11. а б Levy, Steven (1984). Hackers: Heroes of the Computer Revolution. Doubleday. ISBN 0-385-19195-2|0-385-19195-2]].
  12. „IBM 704 Electronic Data Processing System—CHM Revolution“. Computerhistory.org. Retrieved 2013-07-07.
  13. „IBM 709: a powerful new data processing system“ (PDF). Computer History Museum. Retrieved December 12, 2014.
  14. а б http://www.cis.cornell.edu/Dean/Presentations/Slides/bgu.pdf[dead link]
  15. Constable, R. L. (March 2000). „Computer Science: Achievements and Challenges circa 2000“ (PDF).
  16. Abelson, H.; G.J. Sussman with J. Sussman (1996). Structure and Interpretation of Computer Programs (2nd ed.). MIT Press. ISBN 0-262-01153-0. The computer revolution is a revolution in the way we think and in the way we express what we think. The essence of this change is the emergence of what might best be called procedural epistemology – the study of the structure of knowledge from an imperative point of view, as opposed to the more declarative point of view taken by classical mathematical subjects.
  17. David Kahn, The Codebreakers, 1967, ISBN 0-684-83130-9.
  18. „Black box traders are on the march“. The Telegraph. August 26, 2006. Archived fromthe original on 8 October 2014.
  19. „The Impact of High Frequency Trading on an Electronic Market“. Papers.ssrn.com.doi:10.2139/ssrn.1686004. Retrieved 2012-05-14.
  20. 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.
  21. 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
  22. Eden, A. H. (2007). „Three Paradigms of Computer Science“ (PDF). Minds and Machines 17 (2): 135 – 167. doi:10.1007/s11023-007-9060-8.
  23. Tedre, Matti (2014). The Science of Computing: Shaping a Discipline. Taylor and Francis / CRC Press.
  24. а б 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
  25. „Stanford University Oral History“. Stanford University. Retrieved May 30, 2013.
  26. Donald Knuth (1972). „George Forsythe and the Development of Computer Science“.Comms. ACM. Archived August 12, 2014 at the Wayback Machine
  27. Matti Tedre (2006). „The Development of Computer Science: A Sociocultural Perspective“ (PDF). p. 260. Retrieved December 12, 2014.
  28. Peter Naur (1966). „The science of datalogy“. Communications of the ACM 9 (7): 485.doi:10.1145/365719.366510.
  29. а б Denning, Peter J. (2000). „Computer Science: The Discipline“ (PDF).Encyclopedia of Computer Science.
  30. 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.
  31. 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, […]"
  32. 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.
  33. а б Computing Sciences Accreditation Board (May 28, 1997). „Computer Science as a Profession“.
  34. „CSAB Leading Computer Education“. CSAB. 2011-08-03. Retrieved 2011-11-19.
  35. Clay Mathematics Institute P = NP Archived October 14, 2013 at the Wayback Machine
  36. P. Collins, Graham (October 14, 2002). „Claude E. Shannon: Founder of Information Theory“. Scientific American. Retrieved December 12, 2014.
  37. A. Thisted, Ronald (April 7, 1997). „Computer Architecture“ (PDF). The University of Chicago.
  38. „What Is Computation?“. buffalo.edu.
  39. Meyer, Bertrand (April 2009). „Viewpoint: Research evaluation for computer science“.Communications of the ACM 25 (4): 31 – 34. doi:10.1145/1498765.1498780.
  40. Patterson, David (August 1999). „Evaluating Computer Scientists and Engineers For Promotion and Tenure“. Computing Research Association.
  41. Fortnow, Lance (August 2009). „Viewpoint: Time for Computer Science to Grow Up“.Communications of the ACM 52 (8): 33 – 35. doi:10.1145/1536616.1536631.