Skip to content
От: Божидар Маринов Дата: Последна промяна:

Урок 0, Какво значи "програмиране"?

Допълнителни линкове към този урок:

Този урок като текст

Какво значи програмиране?

Термина "програма" идва от гръцките думите "pro" и "grama", "да напишеш публично" и е използван в това си значение от 17-ти век. В последствие термина започва се използва за програма на концерт, а по-късно започва и за какъвто и да е план или поредица от инструкции. - Но това е преди да се появят компютрите.

В смисъла на компютърно програмиране, термина "програма" е чак от 1945-ти, и означава поредица от инструкции, които позволяват на една машина да извърши някаква операция. Съответно, програмиране означава създаването на такива програми.

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

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

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

Има няколко начина по които мога да постигна това:

  1. Мога да използвам хронометър и да се опитам да засека точно 1.5 секунди. Но, тук се сблъсквам с малък проблем: видеото не съм го предвидил за това да го спирам и пускам на ръка, и лесно мога да изпусна момента, в който трябва да спре.
  2. Мога да използвам софтуер за редактиране на видеа и да отрежа видеото така че да свърши след три секунди. Това като цяло е доста удачно решение и в много случаи такива по-прости решения работят.
  3. Мога да напиша програма която пуска видеото, изчаква малко, и след това спира видеото – точно това което искаме да направи компютъра, но обяснено като програма, а не като 2 натискания на мишката. Например:
    document.querySelector('video').play()
    setTimeout(() => document.querySelector('video').pause(), 3000)
    Сега няма да разглеждаме как точно работи тази програма, тъй като ще ми трябват още няколко урока за да обясня какво се случва, но резултата е че с натискането на един единствен бутон (Enter), който изпълнява тази програма, може да видим как видеото се пуска и малко по-късно спира. Като пример, това показва някои от силните страни на това да използваме компютър вместо да правим нещо на ръка, тъй като компютъра го прави по-точно от нас, с по-малко работа от наша страна след като сме написали програмата, и работи всеки път еднакво добре.

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

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

Задача (по желание)

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

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

Пробвайте да направите списък от 4-5 дейности, които бихте могли на теория да автоматизирате с компютър. Може би някоя от тях би могла да е идея за бъдещ проект!