Основи на информатиката

1.1. Информатика и компютърни науки

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

Информатиката  е наука, която изучава структурата и свойствата на информацията, систематизира и развива методите и средствата, свързани с основните информационни дейности и тяхната автоматизация.

Компютърните науки са обобщено понятие за всички науки, свързани с изследването на структурата и реализацията на алгоритми за придобиване, представяне, обработка, съхранение, комуникация и достъп до информация. Те включват в себе си различни теоретични и практически области. Някои от тях са по-абстрактни, а други – по-приложни.
В англоезичните страни информатиката се нарича Computer Science (компютърни науки) или Computing. Но въпреки различията в наименованието информатиката все повече се налага като наука със специфична терминология, цели и задачи, която изучава различните начини за събиране, представяне и обработка на информация.

      Задача 1

Създайте диаграма на основните направления в компютърните науки, като използвате класификацията на ACM (Association for Computer Machinery www.acm.org).

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

 

Какви характеристики на носителите на информация познавате?

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

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

 

С какво са свързани дигиталните общности и умните градове?

Днес живеем в информационно общество. Неотменими права на всеки член в него са:
правото за достъп до информация;
неприкосновеността на личната информация.

Информацията може да се класифицира по различни критерии.
● Според начина на получаване тя е:
отразена информация – информация, която хората събират чрез сетивата си, съхраняват и обработват в съзнанието си. Тази информация не е достъпна за останалите.
материализирана информация – информация, представена върху физически носители. Може да се използва от всеки човек. Именно тя е предмет за изучаване от информатиката. За краткост ще я наричаме само информация.

Според обекта на изследване информацията може да се опише като:
първична – информация за различни обекти, основана на наблюдение;
вторична – информация за самата информация. Вместо да помним дадена информация, трябва да знаем къде и как да я намерим с малко усилия и средства.

Информацията има няколко основни свойства:
● достоверност – точно и вярно представяне на първообраза;
● значимост – важност за описвания обект;
● пълнота – включване на всички съществени характеристики на обекта;
● съдържателност – липса на несъществени сведения;
● актуалност – навременност при получаването;
● достъпност – възможност за получаване от всички заинтересовани.
Развитието на компютърните науки е взаимносвързано с развитието на компютърната техника.

 

 

Какво представлява и къде се съхранява розетският камък (Rosetta Stone)?

ЛЮБОПИТНО

Съществуват няколко интересни съвременни проекта, вдъхновени от розетския камък. Един от тях е проектът Rosetta Code, в сайта на който (http://rosettacode.org) са описани известни алгоритми на различни програмни езици.

1.2. Числата и техните представяния

1.3. Информационни дейности и процеси

Информационните дейности са в основата на развитието на човешкото общество.
Съществуват четири основни вида информационни дейности:
събиране на информация – търсене на източници на информация, подбирането ѝ по дадени критерии и първичната ѝ регистрация;
съхраняване на информация – за пренасянето на информация във времето е необходимо тя да се запази, за да се осъществи лесен достъп до нея;
преработване на информация – чрез анализ и синтез се извлича нова информация;
разпространение на информация – привеждане на информацията в подходяща форма и предоставянето ѝ на заинтересованите получатели.

Информационният процес  е съвкупност от информационни дейности.

Основните етапи в него са: дефиниране, локализиране, избиране, организиране, презентиране  и  оценяване.

      Задача 15

Във файла IP.docx разполагате с таблично описание на етапите на информационен процес и основните въпроси, на които намираме отговор във всеки етап. Подредете ги правилно, така че да си съответстват. С кои видове информационни дейности ги свързвате?

Според вида на представянето си информацията може да бъде дискретна  и  аналогова.

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

Аналоговата  (или непрекъснатата) информация се изменя с времето и приема непрекъснати стойности. Такава информация е музиката, кардиограмата, картината на всеки художник.

Дискретната информация има следните важни свойства:
● тя е устойчива на външни влияния;
● може да се предава на разстояние;
● може да се съхранява без изменение;
● удобна е за автоматична обработка.

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

 

Проучете какво означава и как се обработва информация в реално време.

      Задача 16

Посочете кой от часовниците е дигитален и кой е аналогов и обяснете защо.

 

Кой от процесите за обработка на информация е процес на дигитализация и защо?

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

Данните се формират в зависимост от следните основни правила:
● изградени са от знаците на предварително определена азбука;
● спазени са правила за тяхното съчетаване (синтактични правила); 
● съществуват правила за обработване и извличане на информация (семантични правила).
Изборът на начин за представянето и обработването на информацията е свързан с нейния вид.

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

Начини на кодиране на информацията

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

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

      Задача 17

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

1.4. Алгоритми и езици за програмиране

1.5. Езици за програмиране

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

Асемблерните езици  се появяват, за да решат до голяма степен проблемите при програмирането на машинен език. В програмите, написани на асемблерен език, може да се използват освен цифри и символни записи за записване на операциите. Например за извършване на основните аритметични действия се използват ADD, SUB, MULT и DIV като съкращения от английските наименования add, subtract, multiply и divide. „Преводът“ от асемблерен на машинен език се извършва от специална програма – асемблер, която замества имената на инструкциите и имената на аргументите със съответните кодове и адреси. Програмирането на асемблерен език е доста по-лесно от програмирането на машинен език, но програмистите били принудени да помнят дълги кодове и да използват обемисти справочници, за да успеят да напишат работеща програма. Освен това асемблерите също оставали зависими от вида на компютърния процесор.
Недостатъците на асемблерните езици и бързото развитие на компютърната техника довели до създаването на програмни езици, които да използват разбираеми за човека фрази (обикновено от английския език). Например if… then... (ако… тогава ...), или while… do… (докато... прави…). Първоначално тези езици са създадени за обмен на алгоритми между програмистите, поради което се наричат алгоритмични. Програмите, написани на алгоритмичен език, са много по-разбираеми, пишат се по-бързо и не зависят от вида на компютъра, на който се изпълняват. Постепенно тези езици изместват асемблерните и започват да се наричат  езици за програмиране от високо ниво.

ЛЮБОПИТНО

Транслатори

През 1954 – 1957 г. под ръководството на Джон Бекъс в IBM е разработен езикът FORTRAN, който бързо се налага като универсален език и оказва голямо влияние върху развитието на езиците за програмиране независимо от някои свои несъвършенства. Нуждата от създаването на специализирани езици за обработка на икономическа информация води до създаването на езика COBOL (COmmercial and Business Oriented Language) от колектив под ръководството на Грейс Хопър. По същото време специален научен комитет разработва универсалния алгоритмичен език Alg (АLGOrithmic Language), който оказва голямо влияние върху развитието на съвременните езици за програмиране. Езикът С, който е създаден в началото на 70-те години от Брайън Кернигън и Денис Ричи, става основа на много от най-използваните днес езици – C++, Java, Perl, PHP, C# и др.

 

 

На кой известен в програмирането термин е автор Грейс Хопър?

Транслаторът  е програма, която превежда написания код от някакъв език за програмиране на друг език (машинен или друг програмен език).

Компилаторът  превежда написаната на някакъв език за програмиране програма напълно до изпълнима програма на машинен език. Така не се налага превеждане на програмата всеки път, когато потребителят пожелае да я изпълни.
Интерпретаторът  също използва подходяща последователност от машинни команди за всеки от операторите на езика, но тя се изпълнява (интерпретира) веднага, след което се преминава към интерпретиране на следващия оператор в програмата. Ако по време на изпълнение на програмата съответният оператор се достигне още веднъж, ще бъде преведен отново.
Интерпретирането на програмата е много по-бавно от изпълнението на компилирана програма.

 

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

Компилатори и интерпретатори в чист вид се срещат все по-рядко. Интересна е употребата на динамични компилатори като JIT (Just in Time) компилатори. Това са компилатори в реално време, при които компилирането се извършва при стартиране на програмата.

 

Какво е декомпилатор?


РЕФЛЕКСИЯ

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

РЕЧНИК

 binary  двоичен  octal  осмичен
 flow-chart  блок-схема  radix   основа (на бройна система)
 hex (hexadecimal)  шестнадесетичен  compiler  компилатор
 number system  бройна система  interpreter  интерпретатор