AlgoRoom with Tigran Hayrapetyan

AlgoRoom with Tigran Hayrapetyan

Share

Կրթական հարթակ, որտեղ ծրագրավորման ալգորիթմները ներկայացվում են անիմացված եղանակներով:

Մեր նպատակն է՝ օգնել սկսնակ ծրագրավորողին դառնալ միջին-մակարդակի մասնագետ, ինչից հետո՝ դառնալ Senior։

Մեր կրթական տեսանյութերը պատրաստում ենք այն մտադրութմաբ՝ որ կարճ ժամանակի ընթացքում փոխանցեն պատկերավոր և ծավալուն տեղեկություններ։

Հետևեք էջին, և մենք կկիսվենք ձեզ հետ տեսական ինֆորմատիկայի ոլորտից ամենատարբեր փաստերով։

06/04/2024

Ընկերներ ջան,

Ապրիլի 13-ին (շաբաթ օրը), ժամը 14:00-ին, Հայ-Ամերիկյան Համալսարանում JavaScript summit Armenia 2024 -ի շրջանակներում ելույթ եմ ունենալու հետևյալ թեմայով.

▶️ "When is it [not] good to ignore Algorithms"

Ինչպես կռահեցիք, 25 րոպեների ընթացքում խոսելու եմ նրա մասին թե.
🔹ո՞ր դեպքերում է ծրագրավորողներին պետք գալիս տեսական ինֆորմատիկայի իմացությունը (Ալգորիթմներ, Տվյաների կառուցվածքներ, Զուգահեռականացում, և այլն),
🔹արդյո՞ք հնարավոր չի առանց այդ ամենի նույնպես լինել "լավ ծրագրավորող",
🔹ինչու՞ բոլոր համալսարաններում մինչև այսօր էլ շեշտը դրվում է ինֆորմատիկայի հենց տեսական հատվածը մատուցելու վրա (այլ ոչ թե օրինակ շատ լեզուներ կամ շատ տեխնոլոգիաներ սովորեցնելու վրա):

Իմ ելույթը նախատեսված է 15:55-16:20 ժամանակահատվածում, AUA Manoogian Hall դահլիճում։ Ուրախ կլինեմ տեսնել ձեզ! 🙂😊

Agenda-ն և այլ մանրամասները առաջին մեկնաբանությանս մեջ:

Ինչու՞ սովորել Տվյալների Կառուցվածքներ / Why learn Data Structures 01/09/2023

Մեկնարկել է նոր ուսումնական տարին 😊

Ինչը նշանակում է որ ավանդական համալսարանական կրթությունը կարելի է համադրել օնլայն ուսուցման հետ, և ինչու ոչ՝ դիտել AlgoRoom ալիքի հերթական տեսանյութը, որտեղ ես պատմում եմ Տվյալների Կառուցվածքներին (Data structures) տիրապետելու և իրենց տեղին օգտագործելու կարևորության մասին 🙂

Շնորհավո՜ր սեպտեմբերի 1 🎉

Ինչու՞ սովորել Տվյալների Կառուցվածքներ / Why learn Data Structures Այս տեսանյութը ներկայացնում է Տվյալների Կառուցվածքներին (data structures) տիրապետելու և իրենց տեղին օգտագործելու կարևությունը: Ու նրա մասին թե ինչու՞ չենք կա...

Recursion with double branching / Ռեկուրսիա կրկնակի ճյուղավորմամբ 28/08/2023

Իսկ Դուք գիտեի՞ք որ․․․
Merge sort ալգորիթմը իրականացնելիս կարելի է խուսափել 2 հատ ռեկուրսիվ կանչ անելուց, եթե ամեն քայլին բաժանենք սորտավորվող կտորը անհավասար մասերի...

Սակայն այդ դեպքում, շահելով երևույթի «պարզության» մեջ, կորցնելու ենք իր արդյունավետության մեջ, ու այդ հանգամանքը փորձել եմ ներկայացնել «Ռեկուրսիա կրկնակի ճյուղավորմամբ» տեսանյութի այս մի հատվածում՝
https://www.youtube.com/watch?v=tLZPqL7fRec&t=587s

Իդեպ, այսպիսի օրինակներ Ինֆորմատիկայում կարելի է շատ հանդիպել՝ երբ շահելով մի տեսանկյունից, կորցնում ենք այլ իմաստով 👆

Recursion with double branching / Ռեկուրսիա կրկնակի ճյուղավորմամբ Շարունակելով Ռեկուրսիայի տեսաշարքը, անցնում ենք այնպիսի ֆունկցիաներ ուսումնասիրելուն, որոնք մի կատարման ժամանակ, իրենք իրենց կանչում են 2 անգամ։ Դիտարկում են...

Recursion with value return / Ռեկուրսիա արժեքի վերադարձով 14/08/2023

Դեռ դպրոցական հանրահաշվի դասերից, շատերիս մոտ հարց է մնում թե ինչի՞ որևէ թվի 0 աստիճանը հավասար է 1-ի, այլ ոչ 0-ի։

Արի ու տես որ «Ռեկուրսիա արժեքի վերադարձով» տեսանյութի այն կտորում որտեղ ռեկուրսիվ հաշվում ենք A թվի N աստիճանը, ակնհայտ կարելի է գտնել դրա պատասխանը 🙂
Բավական է այդտեղ ռեկուրսիվ ֆունկցիայի ելքի ճյուղի պայմանը փոխել
«if N == 1 return A» -ից
դեպի
«if N == 0 return 1» ,
և համոզվել որ ռեկուրսիվ կանչերի տրամաբանությունը մնալու է նույնը։

Recursion with value return / Ռեկուրսիա արժեքի վերադարձով Շարունակում ենք ռեկուրսիայի ուսումնասիրությունը, այս անգամ գրելով արժեք վերադարձնող ֆունկցիաներ! Վերջում վիզուալիզացնում ենք ամենամեծ ընդհանուր բաժանարարի (G...

Recursion with double branching / Ռեկուրսիա կրկնակի ճյուղավորմամբ 21/07/2023

Ճյուղավորմամբ ռեկուրսիան պատկերավոր բացատրելու ամենալավ առիթն եմ համարում տարբեր ֆրակտալների նկարչությունը։ Իդեպ, եթե ծանոթ չեք ֆրակտալներին, անպայման խորհուրդ եմ տալիս կարդալ իրենց մասին Համացանցում․․․ օրինակ այստեղ - https://hy.wikipedia.org/wiki/%D5%96%D6%80%D5%A1%D5%AF%D5%BF%D5%A1%D5%AC ․․․ վստահ եմ չեք փոշմանի😉

Այդ պատճառով, «Կրկնակի ճյուղավորմամբ ռեկուրսիա» տեսանյութի սկզբում դիտարկում եմ «Պյութագորյան ծառ» ֆրակտալի նկարչությունը․
https://www.youtube.com/watch?v=tLZPqL7fRec&t=48s

Մեկնաբանություններում կարող եք գրել թե ո՞ր ֆրակտալներն են Ձեր ամենասիրվածները😊

Recursion with double branching / Ռեկուրսիա կրկնակի ճյուղավորմամբ Շարունակելով Ռեկուրսիայի տեսաշարքը, անցնում ենք այնպիսի ֆունկցիաներ ուսումնասիրելուն, որոնք մի կատարման ժամանակ, իրենք իրենց կանչում են 2 անգամ։ Դիտարկում են...

Հանոյի աշտարակներ / Towers of Hanoi 12/07/2023

Ծրագրավորման մեջ ռեկուրսիան սովորեցնելիս՝ թե համալսարաններում թե տարբեր գրքերում, հաճախ հղում են անում Հանոյի աշտարակների խնդրին (Towers of Hanoi), քանի որ այն ռեկուրսիայի դասական օրինակ է։
Խնդրի ձևակերպումը շատ պարզ է՝ ընդամենը 2 կանոն, բայց լուծումը՝ արի ու տես որ բոլորովին էլ պարզ չէ 😉

Իր մասին ավելի մանրամասն կարող եք տեղեկանալ Ռեկուրսիայի շարքին հատկացված իմ հերթական կարճ տեսանյութում:
Հաճելի դիտում 🙂

Հանոյի աշտարակներ / Towers of Hanoi Այստեղ պատմում եմ Ռեկուրսիայի դասական օրինակ համարվող՝ Հանոյան աշտարակների (Towers of Hanoi) խնդրի մասին։ Եվ իր լուծման մասին, իհարկե ^_^Նպաստեք նոր տեսանյու...

Complete tree representation / Ավարտուն ծառի ներկայացումը 28/06/2023

Լավ ծրագրավորող լինելու համար, մաթեմատիկայի կարևորության ևս մի օրինակ👆

Հայտնի է որ “Երկուական ծառ” տվյալների կառուցվածքը համակարգչի հիշողության մեջ սովորաբար պահում են հանգույցներով (nodes) և ցուցիչներով (pointers): Սակայն եթե այդ ծառը ավարտուն տիպի է (complete tree), արի ու տես որ ավելի հարմար է իրեն պահել ընդամենը մի զանգվածի մեջ, և հանգույցների միջև տեղաշարժվել ոչ թե ցուցիչներով, այլ մաթեմատիկական պարզ բանաձևերով🙂

Ահա «Ավարտուն ծառի ներկայացումը» տեսանյութում պատմում եմ այդպիսի ներկայացման առավելությունների մասին՝
- օպերատիվ հիշողության խնայում,
- ծառի հետ ավելի արագ աշխատանք։

Complete tree representation / Ավարտուն ծառի ներկայացումը Այս տեսանյութում սովորում ենք թե ինչպես են համակարգչի հիշողության մեջ պահվում ավարտուն ծառերը (complete trees): Այդ ներկայացումը կարևոր է իմանալ առաջնությամբ...

Binary tree types / Երկուական ծառի տեսակներ 14/06/2023

Իսկ դուք գիտեի՞ք որ...
Տվյալների սորտավորման ամենաարագ աշխատող ալգորիթմներից մեկը՝ Heap Sort-ը, հիմնված է այդ տվյալները ավարտուն երկուական ծառի (complete binary tree) մեջ տեղադրելու ու հենց այդտեղ էլ մշակելու վրա 👆

Իսկ թե ի՞նչ բան է ավարտուն երկուական ծառը կարող եք տեղեկանալ ծառերի տեսակների մասին պատմող իմ տեսանյութի այս մի հատվածում․
Հաճելի դիտում 😉

Binary tree types / Երկուական ծառի տեսակներ Այստեղ պատմում եմ թե ինչ տեսակիների կարող է լինել ծրագրավորման մեջ տվյալների Երկուական Ծառը։ Դրա հետ կապված կատարում ենք վարժություններ, իսկ վերջում ներկայաց...

Binary Tree representation / Երկուական Ծառի ներկայացումը 06/06/2023

Ծրագրավորման մեջ ծառերի հետ աշխատելիս տարածված սխալ է երբ փորձում են փոփոխություն անել ինչ-որ հանգույցում, առանց նախապես համոզվելու որ այդ հանգուցը գոյություն ունի։ Ինչն էլ բերում է ծրագրի վթարային ավարտի🤷‍♂️:

Ահա «Երկուական ծառի ներկայացում» տեսանյութիս այն հատվածում որտեղ ձեռքով կառուցում ենք մեր նախընտրած ծառը՝ հանդիպում ենք նման դեպքի👆:
https://www.youtube.com/watch?v=-VOgmnc19ss&t=281s

Մեկնաբանություններում կարող եք գրել թե ե՞րբ էիք դուք վերջին անգամ թույլ տվել նման սխալ, ինչի հետևանքով էլ ստացել էիք «Segmentation fault» տեսակի հաղորդագրություն😁

Binary Tree representation / Երկուական Ծառի ներկայացումը Շարունակում ենք Երկուական Ծառի (binary tree) ուսումնասիրությունը, և սովորում ենք թե ինչպես է այն ներկայացվում համակարգչի հիշողության մեջ: Դիտարկում ենք ծառի ...

Binary Tree structure / Երկուական Ծառի կառուցվածքը 23/05/2023

Ծրագրավորման մեջ Երկուական Ծառը տվյալները պահելու երևի-թե ամենահաճախ կիրառվող ձևն է։ Այն օգտագործվում է՝
- տվյալների բազաներում (databases),
- տվյալների որոնումների ժամանակ (searching),
- ֆայլային համակարգերում (file-systems),
- որոշումների դիագրամներում (decision trees),
- և այլն...
Ու հենց այդ պատճառով է որ այն ունի բազմաթիվ տարբեր տեսակներ։

Այս ներածական տեսանյութում ներկայացնում եմ Երկուական Ծառի կառուցվածքը, և իր մի շարք բնութագրիչներին👆: Ի տարբերություն այլ տեսանյութերի, այստեղ դեռ չենք գրելու կոդեր (կամ պսևդոկոդեր): Դա թողնելու ենք տեսաշարքի շարքի հաջորդ թողարկումների համար 🙂

Binary Tree structure / Երկուական Ծառի կառուցվածքը Սովորում ենք թե ինչ է Երկուական Ծառը (binary tree), և որո՞նք են իր բնութագրիչները։ Այս տեսանյութում դեռ կոդեր չենք գրելու, այլ թողնելու ենք դա տեսաշարքի հետա...

Simplest Recursion / Պարզագույն Ռեկուրսիա 05/05/2023

Ինչպե՞ս եք կարծում, հանարավո՞ր է իրականացնել Insertion Sort (տեղադրումներով սորտավորման) ալգորիթմը ռեկուրսիվ? Եթե այո, ռեկուրսիվ կանչը պետք է լինի այդ ֆունկցիայի սկզբում թե վերջում թե մեջտեղում?
Կարող եք գրել Ձեր առաջարկները մեկնաբանություններում, որոնց բոլորին հաճույքով կանդրադառնամ 🙂

Իսկ Insertion sort-ի մասին կարող ենք վերհիշել այս տեսանյութում․ https://youtu.be/lPK1gH5RupY
Իդեպ, ռեկուրսիայի մասին էլ այստեղ. 😁 https://youtu.be/mnYg99xgkMY

Simplest Recursion / Պարզագույն Ռեկուրսիա Սովորում ենք ռեկուրսիան ամենապարզ օրինակներով ու կիրառություններով։ Տանում ենք զուգահեռներ իրական աշխարհում ռեկուրսիվ երևույթների հետ! Հասկանում ենք ռեկուրսի...

Want your school to be the top-listed School/college in Yerevan?

Click here to claim your Sponsored Listing.

Location

Address


Yerevan