Трудно намирате учебни пособия по програмиране?
Искате децата да разбират компютрите в дълбочина?
Да използват бързо развиващите се технологии в целия им потенциал?
Ако е така, заповядайте в курса по:
Програмиране с Божидар
"Програмиране с Божидар" е онлайн курс по програмиране на JavaScript за деца и юноши между 12 и 18 години. В него се стремя да предам не само умението за писане на код, но и да представя в дълбочина как работи компютъра и как програмирането се е развило досега. По този начин, учениците получават хоризонт за IT сферата, който може да възбуди любопитството им и да им е полезен в редица професии.
Същевременно, в процеса на курса децата работят върху множество различни проекти, които остават като доказателство за наученото.
Този курс се организира и провежда със съдействието на "Асоциация за Домашно Образование".
Организация на курса
Курсът се състои от две основни части:
Затворена група, където се чуваме поне един или два пъти седмично. В нея децата общуват и завързват приятелства, а аз активно помагам в учебния процес и разработката на техните проекти. Достъпа до групата е ограничен само до участниците в курса, които са се записали.
Поредица от видеа/лекции със свободен достъп, обясняващи различи теми от програмирането – от основите като променливи и функции, до по-сложните неща като работа с класове/обекти, четене на документация, разработка на сайтове и разбиране на чужд код. Можете да достъпите тези видеа тук.
Двете части на курса работят в синхрон. Лекциите са отправна точка за това, което учим в групата, а децата имат възможност да питат въпроси за всяко нещо, което не им е било ясно. Същевременно, интересите и нивото на участниците в групата са отправна точка за това, какви да бъдат следващите лекции и уроци.
Предимства
Учене в дълбочина (чрез "потапяне")
Програмирането е много повече от решаване на проблеми по формула. Затова се стремя да предам основополагащите принципи и теория залегнали в програмирането. По този начин, има повече неща, които да предизвикат любопитството и интереса на децата, а веднъж събудено, то би ги тласкало далеч отвъд който и да е курс.
Множество практични проекти
Програмирането далеч не се случва единствено в класната стая. Затова упражненията, задачите, проектите и примерите, които разглеждаме, са базирани на реални проблеми. По този начин, децата имат по-ясна представа, как и къде могат да приложат знанията си.
Индивидуално внимание
Не всеки научава програмирането по един и същ начин. Затова отделям внимание на всяко дете от групата и третирам лекциите, дискусиите, а пък дори и самата група единствено като помощни инструменти по пътя на усвояването на нови умения. Така, материалът е достъпен за участници с различени стилове на учене.
И освен това:
- Покрай разработката на проекти упражняваме полезни умения, като работа в екип, презентиране пред публика, планиране и организация на работа.
- В групата се стремим да се отнасяме приятелски и с уважение към всички (както подобава) и да се насърчаваме и в успехите, и в предизвикателствата.
Записвания
Участието в курса струва 170 лева на месец1 (на семейство). В тази цена са включени:
- 90-минутни дискусии на живо, два пъти седмично, в малки групи (6-10 човека). Към момента планирам дискусии във вторник и петък от 16:30 ч. и сряда и събота от 11:00 ч., като всеки е добре дошъл да участва в удобното за него/нея време.
- Поддържане на затворена група, където участниците в курса могат да общуват, работят по групови проекти и завързват приятелства.
- Отговаряне на писмени въпроси свързани със задачите или с учебния материал до няколко часа.
- Развиване на лекционната страна от курса, съобразявайки се с общите интереси на участниците.
За да станете част от курса е достатъчно да се свържете с мен или да попълните следния формуляр:
След като попълните формуляра, ще се свържа с вас до 2-3 дни, за да уточним детайлите свързани с включването, заплащането и прочие.
Не сте сигурни, че курса е за вас? Ако в който и да е момент останете недоволни от това, което предлагам, съм готов да върна сумата, която сте платили за последния месец от вашето участие – включително, ако това е първият ви месец.
А дори и да не сте записани в курса, винаги може да използвате видео материалите самостоятелно! 😃
Отзиви
Ако имате дете на възраст между 11 и 15 години с интерес към програмирането, много силно препоръчвам курса на Божидар Маринов! Той самият пише код от 7 годишен и както често казвам, отдавна е превъртял играта като програмист. Нещо повече - има търпението и подхода да обясни дори най-сложната материя по лесен и разбираем начин. Тодор Колев
Курсът бе интензивен и предостави добро запознаване с JavaScript дори за деца, които не са запалени за програмирането само по себе си. На [моя син] допадна възможността да общува с други деца и заедно да правят задачи. Ти беше доста всеотдаен и абсолютно достъпен за децата, така че който искаше помощ, получи. Цветимира, майка на участник в курса
Всичко беше много добре организирано в курса по [JavaScript]. Имаме отлични впечатления от начина на преподаване и от провеждането на курса. Галина, майка на участник в курса
Въпроси
Кога започва курса? Ще трябва ли да чакам за да се запиша?
Курса няма конкретно начало! Той е вече започнал и ще продължава докато има достатъчно интерес да бъде поддържан. 😃
Начина, по който това работи е, че родителите на участника се свързват с мен, след което се разбираме за удобно време за включване и начин за плащане (например банков превод), обикновено в рамките на седмица, след което създавам профил на участника и готово: вече сте участник в курса! 🎉 След това, всеки месец ще напомням за плащането, докато или решите да спрете (или да си вземете почивка), или решите, че не ви е харесало и искате да се възползвате от офертата да върна сумата, която сте платили за последния месец участие.
Нужно ли е да имам опит от програмиране преди да се запиша? Проблем ли е ако вече имам опит?
Няма никакъв проблем!
Децата в курса са на различни нива, почти както в едновремешните възрожденски училища. 😃 Това за децата не е проблем, а единствено възможност за това те да се насърчават едни други и да затвърждават знанията си като си помагат – а ако не се намери помощник за някой начинаещ (или напреднал), винаги наоколо съм и аз. Поради това, няма изисквания за предварителен опит, нито пък проблем да се присъедини някой към курса в който и да е момент.
Конкретно, ако нямате никакъв предварителен опит, началните видеа от курса ще ви преведат през основите на програмирането. А пък ако имате богат предварителен опит, ще можем да се фокусираме не толкова върху видеата, а директно да дискутираме проекти и текущи практични проблеми.
От какво трябва да разбирам преди да се запиша?
Няма строги изисквания за уменията и опита на потенциалните участници.
Въпреки това, за да може курса да ви е възможно най-полезен, има три основни умения, които биха ви били полезни:
- Математика. Повечето процеси на хардуерно и софтуерно равнище имат нещо общо с физиката или логиката. Следователно, доброто разбиране на математиката спомага за разбирането на компютрите, а от там и на програмирането. Разбира се, в курса не се задълбочаваме в сложни математически обяснения – има си време за всичко това – но дори математиката и да не е задължителна, тя остава силно препоръчителна.
- Английски език. Въпреки че всички лекции и дискусии в курса са на български, повечето документация и външни ресурси прикачени към тези лекции са на английски, поради което би било полезно, ако участниците поне бегло владеят английски.
- Използване на компютър и писане на клавиатура. Бързото и точно писане на клавиатура2 е от голяма полза за всеки програмист, тъй като програмирането е свързано с въвеждане на код като текст. Подобно, уменията за ефективно използване на компютър, включително запомнянето на различни "бързи клавиши", помагат за всяка следваща компютърна дейност.
Колко време продължава курса?
Тъй като групата не се движи заедно, курса продължава точно толкова, колкото желаете! 😉
Ако имате конкретни цели, нива или умения, които искате да постигнете в рамките на курса, ще се радвам да ги обсъдим и може би да изготвим план, по който може да се ръководите.
За ориентир, първата част от курса, която започва от напълно начинаещи и стига до базовите елементи на JavaScript, е предвидена да отнеме около 2-3 месеца—2 месеца за учебния материал и 1 месец за планиране, изработване и представяне на не-голям добре-завършен проект.
Последващите части на курса все още не са готови, но всяка една от тях би трябвало да отнема отново около 2-4 месеца.
Какъв хардуер / софтуер ни е нужен, за да участваме курса?
За да участвате в първите части на курса, не е нужен специализиран софтуер. Единствено ви трябват:
- Компютър (или лаптоп). Евентуално може и да успеете да се свържете през телефон или таблет за дискусиите (но не гарантирам, че ще работи), но за упражненията и проектите ще ви трябва да пишете код, което вероятно няма да ви е удобно без физическа клавиатура.
- Стабилна интернет връзка, за да можете да участвате пълноценно в разговорите и дискусиите. Няма нужда да е особено бърза, по-важно е да не прекъсва. В частност, WiFi връзката, ако сте далеч от рутера, е възможно да накъсва леко.
- Модерен уеб браузър – например някоя от последните версии на Firefox, Chrome, Edge или Safari. Трябва да поддържа Jitsi за разговорите в групата и да може да отвори P5.js редактора за началните упражнения и проекти.
Предлагате ли сертификати след края на курса?
Разбира се! Ако сте настоящ или бивш участник в този курс, с удоволствие ще ви изпратя сертификат описващ това, което сте научили в курса! А всички проекти, които сте разработили по време на курса, спокойно може да използвате като от портфолио, с което да защитите този сертификат.
Имайте предвид, че към момента този курс не е част от лицензиран образователен център. Така че, ако е важно за вас този сертификат да ви бъде призат от конкретно училище или университет, препоръчвам да се свържете с тях, за да потвърдите дали биха го признали.
Мога ли да се запиша ако съм възрастен?
Към момента, не организирам курс за възрастни. Но ако имате интерес, моля, свържете се с мен! Ще се радвам да организирам нещо за вас, стига да се съберат достатъчно хора и да се намери време удобно за всички.
Моят син/дъщеря е на 9/10/11 години, може ли да се включат в курса?
Към момента, в курса се занимавам основно с малко по-големи деца в диапазона между 12 и 18 години. Въпреки това, ако вашето дете успява да разбере лекциите, вероятно би могло да се впише в групата дори и да няма навършени 12 г. – свържете се с мен и нека да го обсъдим.
Преподавате ли Scratch? Особено за по-малките?
Не. Личното ми убеждение е, че основната полза от Scratch или Blockly е това, че са малко по-разбираеми за най-малките и най-начинаещите и спомагат за запалването на началния им интерес. За всички малко по-големи деца, не смятам, че графичното програмиране помага за развитието им като програмисти дългосрочно, а по-скоро ги ограничава до това, което готовите блокчета им предлагат.
Вместо Scratch, бих препоръчал Лого, като подходящ програмен език за по-малки деца и начинаещи. Лого ги подготвя за това да пишат кода си като текст, да използват REPL интерфейси подобни на професионално използвани програмни езици и благодарение на "костенурката" рисуваща на екрана, да разсъждават за състоянието на компютъра в процеса на изпълнение на техния код, което е основна част от програмирането по принцип.
(Към момента не преподавам Лого, но някой ден може и да се насоча натам. Пишете ми ако ви звучи интересно, за да мога да преценя дали има интерес към това!)
Лекциите не ми харесват. Има ли други ресурси, по които мога да уча програмиране?
Свободни ресурси по програмиране има много в целия интернет и където е удачно, допълвам лекциите си с линкове към тях. Така например:
- MIT OpenCourseWare е съвкупност от лекции от високо реномирания университет "MIT", публикувани свободно за целия свят. Така например, имат лекции за програмиране на Java, създаване на видеоигри, или историята на компютърното изчисление
- Khan Academy предлагат безплатни материали по програмиране с JavaScript, HTML, CSS, или SQL.
- Уча.се предлагат уроци по програмиране на Java и C#, които, към момента (2024-02-23), изглеждат достъпни и без нужда от регистрация.
- W3Schools и javascript.info са широко-харесвани сайтове обясняващи основите на JavaScript, стига да нямате против четенето на текст на английски.
- Structure and Interpretation of Computer Programs е класическа книга за основите на програмирането, релевантна и до днес, за тези, които предпочитат да прочетат добре структурирана книга вместо поредица от интернет страници; книгата е достъпна свободно, като, в момента, съществува в две издания: оригиналното, обясняващо Common Lisp и преработеното, обясняващо JavaScript.
- GDQuest / Натан Ловато има голям списък от безплатни уроци за Godot (и Krita) на английски, ако желаете да се занимавате с разработката на игри.
- В интернет има и много други безплатни ресурси, особено на английски, стига да потърсите.
Като участник в курса, освен видеа (които може и да не са тези които предлагам, ако предпочитате друг ресурс), получавате достъп до група, в която може да задавате въпросите си на опитен ментор/преподавател и да получавате подкрепа за проектите и целите, които си поставяте. Този тип помощ и подкрепа може да са ценни за вас, ако има риск да се обезсърчите учейки сами.
Как така видеата са свободно достъпни? Не би ли трябвало да са платени?
Всички видеа разработени в рамките на този курс са налични под лиценза CC BY-SA 4.0. Това значи, че всеки е свободен да ги изтегли, използва, споделя, променя, или продава – стига да ги публикува под същия лиценз и да упомене от къде са взети.
Причината да ги публикувам свободно е най-вече от лични съображения – вярвам, че авторското право не е задължително за бизнес успеха на един креативен проект и се надявам с това да го покажа. Същевременно, лиценз ограничаващи свободното използването би направило целия курс по-малко полезен за всички участващи в него и следователно това, че видеата са свободно достъпни, прави цялата услуга по-добра.
Ще се радвам ако използвате тези видеа дори и да не сте записани в курса. Всъщност, бихте могли дори да започнете собствена група подобна на моята, в която помагате на ученици, а като лекции използвате видеата от този курс – няма никакъв проблем.
Само имайте предвид, че извън курса не предоставям каква да е гаранция или поддръжка; може да ми пишете ако се сблъскате с проблем или неяснота във лекциите и евентуално може и да ви отговоря, но качеството и отделеното време не са гарантирани.
Какъв софтуер използвате за създаването на курса?
Създаването на този курс е възможно единствено и само благодарение на големия набор от наличен софтуер с отворен код (open-source software), който ми позволява да правя редица неща без да трябва да ги изграждам от нулата. Затова се стремя да финансирам и подкрепям софтуера, който използвам. Конкретно, използвам:
- P5.js - за да могат учениците да създават програми рисуващи на екрана от самото начало на курса.
- Zulip - за да направя затворената чат група.
- Jitsi - за да имаме конферентни разговори в затворената чат група.
- docker-mailserver — за да правя нотификации за съобщенията в тази чат група.
- OBS Studio - за да правя записи на това, което показвам.
- Kdenlive, MLT и Unsilence - за да редактирам записите и да подготвя крайните видеа.
- FFmpeg - за да кодирам крайните видеа.
- Firefox - като основен браузър използван по време на лекциите.
- Pandoc, Tup и други, за организацията и управлението на този сайт, повече за което можете да прочетете тук (на английски).
- KDE, Arch Linux, Linux - като графичен интерфейс и операционна система използвани по време на лекциите (и не само).
За лектора
Казвам се Божидар Маринов. Аз съм завършил домашен ученик3. Започнах да програмирам когато бях на 7, в курс подобен на този, организиран от майка ми. В последствие се насочих към състезателното програмиране, където спечелих първо място на Зимните състезания по математика, 2013 г., последвано от второ и първо място на състезанието "Аз мога тук и сега" през 2014 г. и 2015 г., съответно. След това започнах работа по реални проекти, първо на стаж, паралелно по проекти с отворен код, а впоследствие и като старши софтуерен разработчик в българска фирма.
С преподаване съм се занимавал и преди. Отпърво преподавах на група от домашни ученици и отделно на група ученици от близката гимназия. След това, през 2017-2018 г. преподавах Programming Basics курса на SoftUni в Смолян. В началото на 2023 г., организирах и първата версия на този курс по JavaScript. Някои от учениците, на които преподавах вече се занимават професионално с програмиране. Повечето отзиви за обучението, което правя, са били положителни.
Доколкото мога да преценя, ако имам мисия в живота си, то тя е да направя потенциала на компютрите по-достъпен за повече хора. Точно затова организирам този курс: с надежда да запаля и други в това да правят света около тях по-организиран, по-развит и по-осмислен, чрез инструментите на програмирането. И поради тази цел съм запленен от идеите на софтуера с отворен код и информацията със свободен лиценз, тъй като чрез тях полагаме една по-широка основа за създаването на бъдещи проекти и идеи.
Ако цената е висока или непосилна за вашето семейство, но въпреки това желаете да участвате, моля, свържете се с мен. Предложената цена е с цел организирането на курса да бъде рентабилно за мен, а не с цел да откаже бъдещите програмисти. За мен би било чест да имам възможността да подкрепя вашето семейство дори и в такъв момент на трудност.↩︎
Един сайт който би могъл да помогне за ученето на по-бързо писане на клавиатура е monkeytype. Най-честата препоръка е да се обърне внимание първо на точността ("accuracy") а чак след това на скоростта.↩︎
Повече за домашното образование в България може да научите на сайта на "Асоциация за Домашно Образование".↩︎