Програмистът
Какво прави програмистът, какво са алгоритъм, цикъл и бъг, и откъде идва думата бъг.
Здравей, приятелю, аз съм Мечо Добрин. Знаеш ли, че компютърът е много бърз, но сам не знае нищо? Някой трябва да му каже всяка стъпка. Този някой се казва програмист и може би един ден ще бъдеш ти.
История от живота
През 1947 г. учени в Харвард работели с огромен компютър, голям колкото стая. Изведнъж той започнал да греши. Търсили дълго и накрая намерили вътре истински молец, заклещен между частите! Залепили го в дневника си с надпис, че това е първият истински намерен бъг (на английски bug значи буболечка). Компютърната учена Грейс Хопър обичала да разказва тази история и думата се разпространила. Оттогава грешките в програмите се наричат бъгове, а търсенето им дебъгване.
Разбери го стъпка по стъпка
- Какво прави програмистът
Програмистът пише програми: точни инструкции, които компютърът изпълнява. Така се правят приложения, сайтове, игри, роботи и дори програмите в пералнята и колата.
- Алгоритъм
Алгоритъмът е план стъпка по стъпка за решаване на задача. Рецептата за палачинки също е алгоритъм. Програмистът първо измисля алгоритъма, после го записва на език, който компютърът разбира.
- Езици за програмиране
Компютрите разбират специални езици: Python, JavaScript, C++ и много други. За деца има Scratch, където вместо да пишеш, нареждаш цветни блокчета като пъзел.
- Първите програмисти
През 1843 г. Ада Лъвлейс написала план за изчисления за машина, която още не била построена. Затова я наричат първия програмист. Джон Атанасов, син на българин, създал един от първите електронни компютри в края на 30-те години на XX век.
- Какво трябва на един програмист
Търпение, логика и любопитство. Програмистите рядко пишат перфектен код от първия път. Те тестват, откриват бъгове и поправят, отново и отново, и често работят в екип.
Представи си така: Да програмираш е като да обясняваш на извънземен как да си направи сандвич: ако пропуснеш да кажеш Отвори буркана, той ще маже ножа по капака. Компютърът прави точно това, което му кажеш, не това, което си мислиш.
- Програма
- Инструкции, които компютърът изпълнява
- Алгоритъм
- План стъпка по стъпка за решаване на задача
- Код
- Програмата, записана на език за програмиране
- Цикъл
- Повтаряне на действие няколко пъти
- Условие
- Ако... тогава... иначе: програмата избира
- Бъг
- Грешка в програмата
- Дебъгване
- Търсене и поправяне на грешки
Решени примери
Роботът трябва да отиде 3 квадратчета напред. Как да го напишем кратко?
Вместо Напред, Напред, Напред пишем Повтори 3 пъти: Напред. Това се казва цикъл и спестява много писане.
Игра трябва да каже Браво само ако отговорът е верен. Как?
Използваме условие: Ако отговорът е верен, покажи Браво, иначе покажи Опитай пак. Така програмата взима решения.
Програмата казва, че 2 + 2 = 5. Какво прави програмистът?
Дебъгва: проверява ред по ред, намира грешката (бъга) и я поправя. После тества отново.
Внимавай с тези грешки
- Програмистите по цял ден играят игри.Те мислят, пишат код, тестват и поправят грешки. Някои правят игри, но повечето правят сайтове, приложения и системи.
- Компютърът е умен и сам разбира какво искаш.Компютърът изпълнява точно инструкциите, дори да са грешни.
- Програмирането е само за гении по математика.Най-важни са логиката, търпението и желанието да учиш. Много деца започват със Scratch още в началното училище.
Задачи
Лесни
Напиши алгоритъм от 5 стъпки за миене на зъбите.
Подсказка
Мисли за всяка стъпка в правилния ред.
Отговор
Например: 1. Вземи четката. 2. Сложи паста. 3. Мий 2 минути. 4. Изплакни устата. 5. Измий четката.
Какво е бъг в програмирането и откъде идва името?
Подсказка
Спомни си историята от Харвард.
Отговор
Грешка в програма. Името идва от английската дума за буболечка, заради молеца, намерен в компютър през 1947 г.
Средни
Роботът е в ъгъла на поле 4 на 4. Трябва да стигне до срещуположния ъгъл. Напиши инструкциите с думите Напред, Наляво, Надясно. Можеш ли да ги съкратиш с цикъл?
Подсказка
Колко квадратчета трябва да мине по всяка страна?
Отговор
Например: Повтори 3 пъти: Напред. Надясно. Повтори 3 пъти: Напред.
Намери бъга: 1. Сложи хляба в чинията. 2. Намажи масло. 3. Извади хляба от пакета. 4. Изяж сандвича.
Подсказка
Може ли да сложиш хляба в чинията, преди да го извадиш?
Отговор
Стъпка 3 трябва да е първа: първо вадим хляба, после го слагаме в чинията.
Трудни
Напиши условие за игра на гатанки: какво казва програмата, ако отговорът е верен, и какво, ако не е? Добави точки.
Подсказка
Ползвай Ако... тогава... иначе.
Отговор
Например: Ако отговорът е верен, кажи Браво и добави 1 точка. Иначе кажи Опитай пак и не добавяй точки.
Цикъл повтаря 5 пъти: добави 2 точки. В началото имаш 10 точки. Колко точки имаш накрая? А ако цикълът се повтори 10 пъти?
Подсказка
Пресметни колко точки добавя целият цикъл.
Отговор
20 точки (10 + 5 x 2). При 10 повторения: 30 точки.
Програмирай съученик робот
Цел: Да разбереш колко точни трябва да са инструкциите за компютъра.
- Разделете се по двойки: единият е програмист, другият е робот.
- На пода или на масата направете поле с лепенки или нарисувано на хартия.
- Програмистът написва на лист стрелки (напред, наляво, надясно) до избрана цел, например до кутия с моливи.
- Роботът изпълнява само написаното, без да мисли сам.
- Ако роботът не стигне целта, двамата дебъгват: намират грешната стрелка и поправят.
Накрая: Работеща програма от стрелки и история за намерения бъг, разказана пред класа.
Тест с точки
10 въпроса, 18 точки, оценка накрая и разбор какво да преговориш.