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-ն և այլ մանրամասները առաջին մեկնաբանությանս մեջ:
01/09/2023
Մեկնարկել է նոր ուսումնական տարին 😊
Ինչը նշանակում է որ ավանդական համալսարանական կրթությունը կարելի է համադրել օնլայն ուսուցման հետ, և ինչու ոչ՝ դիտել AlgoRoom ալիքի հերթական տեսանյութը, որտեղ ես պատմում եմ Տվյալների Կառուցվածքներին (Data structures) տիրապետելու և իրենց տեղին օգտագործելու կարևորության մասին 🙂
Շնորհավո՜ր սեպտեմբերի 1 🎉
Ինչու՞ սովորել Տվյալների Կառուցվածքներ / Why learn Data Structures
Այս տեսանյութը ներկայացնում է Տվյալների Կառուցվածքներին (data structures) տիրապետելու և իրենց տեղին օգտագործելու կարևությունը: Ու նրա մասին թե ինչու՞ չենք կա...
28/08/2023
Իսկ Դուք գիտեի՞ք որ․․․
Merge sort ալգորիթմը իրականացնելիս կարելի է խուսափել 2 հատ ռեկուրսիվ կանչ անելուց, եթե ամեն քայլին բաժանենք սորտավորվող կտորը անհավասար մասերի...
Սակայն այդ դեպքում, շահելով երևույթի «պարզության» մեջ, կորցնելու ենք իր արդյունավետության մեջ, ու այդ հանգամանքը փորձել եմ ներկայացնել «Ռեկուրսիա կրկնակի ճյուղավորմամբ» տեսանյութի այս մի հատվածում՝
https://www.youtube.com/watch?v=tLZPqL7fRec&t=587s
Իդեպ, այսպիսի օրինակներ Ինֆորմատիկայում կարելի է շատ հանդիպել՝ երբ շահելով մի տեսանկյունից, կորցնում ենք այլ իմաստով 👆
Recursion with double branching / Ռեկուրսիա կրկնակի ճյուղավորմամբ
Շարունակելով Ռեկուրսիայի տեսաշարքը, անցնում ենք այնպիսի ֆունկցիաներ ուսումնասիրելուն, որոնք մի կատարման ժամանակ, իրենք իրենց կանչում են 2 անգամ։ Դիտարկում են...
14/08/2023
Դեռ դպրոցական հանրահաշվի դասերից, շատերիս մոտ հարց է մնում թե ինչի՞ որևէ թվի 0 աստիճանը հավասար է 1-ի, այլ ոչ 0-ի։
Արի ու տես որ «Ռեկուրսիա արժեքի վերադարձով» տեսանյութի այն կտորում որտեղ ռեկուրսիվ հաշվում ենք A թվի N աստիճանը, ակնհայտ կարելի է գտնել դրա պատասխանը 🙂
Բավական է այդտեղ ռեկուրսիվ ֆունկցիայի ելքի ճյուղի պայմանը փոխել
«if N == 1 return A» -ից
դեպի
«if N == 0 return 1» ,
և համոզվել որ ռեկուրսիվ կանչերի տրամաբանությունը մնալու է նույնը։
Recursion with value return / Ռեկուրսիա արժեքի վերադարձով
Շարունակում ենք ռեկուրսիայի ուսումնասիրությունը, այս անգամ գրելով արժեք վերադարձնող ֆունկցիաներ! Վերջում վիզուալիզացնում ենք ամենամեծ ընդհանուր բաժանարարի (G...
27/07/2023
Նոր տեսանյութ - "Տրամաբանական արտահայտություններ" 😃
"Եվ" & "կամ" արտահայտությունների հաշվարկ / Calculating "and" & "or" expressions
Սովորում ենք թե ո՞նց են համակարգչի ներսում հաշվարկվում "A կամ B կամ C կամ ...", ինչպես նաև "X և Y և Z և ..." տեսքի տրամաբանական արտահայտությունները։ Ցույց են...
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 անգամ։ Դիտարկում են...
12/07/2023
Ծրագրավորման մեջ ռեկուրսիան սովորեցնելիս՝ թե համալսարաններում թե տարբեր գրքերում, հաճախ հղում են անում Հանոյի աշտարակների խնդրին (Towers of Hanoi), քանի որ այն ռեկուրսիայի դասական օրինակ է։
Խնդրի ձևակերպումը շատ պարզ է՝ ընդամենը 2 կանոն, բայց լուծումը՝ արի ու տես որ բոլորովին էլ պարզ չէ 😉
Իր մասին ավելի մանրամասն կարող եք տեղեկանալ Ռեկուրսիայի շարքին հատկացված իմ հերթական կարճ տեսանյութում:
Հաճելի դիտում 🙂
Հանոյի աշտարակներ / Towers of Hanoi
Այստեղ պատմում եմ Ռեկուրսիայի դասական օրինակ համարվող՝ Հանոյան աշտարակների (Towers of Hanoi) խնդրի մասին։ Եվ իր լուծման մասին, իհարկե ^_^Նպաստեք նոր տեսանյու...
28/06/2023
Լավ ծրագրավորող լինելու համար, մաթեմատիկայի կարևորության ևս մի օրինակ👆
Հայտնի է որ “Երկուական ծառ” տվյալների կառուցվածքը համակարգչի հիշողության մեջ սովորաբար պահում են հանգույցներով (nodes) և ցուցիչներով (pointers): Սակայն եթե այդ ծառը ավարտուն տիպի է (complete tree), արի ու տես որ ավելի հարմար է իրեն պահել ընդամենը մի զանգվածի մեջ, և հանգույցների միջև տեղաշարժվել ոչ թե ցուցիչներով, այլ մաթեմատիկական պարզ բանաձևերով🙂
Ահա «Ավարտուն ծառի ներկայացումը» տեսանյութում պատմում եմ այդպիսի ներկայացման առավելությունների մասին՝
- օպերատիվ հիշողության խնայում,
- ծառի հետ ավելի արագ աշխատանք։
Complete tree representation / Ավարտուն ծառի ներկայացումը
Այս տեսանյութում սովորում ենք թե ինչպես են համակարգչի հիշողության մեջ պահվում ավարտուն ծառերը (complete trees): Այդ ներկայացումը կարևոր է իմանալ առաջնությամբ...
14/06/2023
Իսկ դուք գիտեի՞ք որ...
Տվյալների սորտավորման ամենաարագ աշխատող ալգորիթմներից մեկը՝ Heap Sort-ը, հիմնված է այդ տվյալները ավարտուն երկուական ծառի (complete binary tree) մեջ տեղադրելու ու հենց այդտեղ էլ մշակելու վրա 👆
Իսկ թե ի՞նչ բան է ավարտուն երկուական ծառը կարող եք տեղեկանալ ծառերի տեսակների մասին պատմող իմ տեսանյութի այս մի հատվածում․
Հաճելի դիտում 😉
Binary tree types / Երկուական ծառի տեսակներ
Այստեղ պատմում եմ թե ինչ տեսակիների կարող է լինել ծրագրավորման մեջ տվյալների Երկուական Ծառը։ Դրա հետ կապված կատարում ենք վարժություններ, իսկ վերջում ներկայաց...
06/06/2023
Ծրագրավորման մեջ ծառերի հետ աշխատելիս տարածված սխալ է երբ փորձում են փոփոխություն անել ինչ-որ հանգույցում, առանց նախապես համոզվելու որ այդ հանգուցը գոյություն ունի։ Ինչն էլ բերում է ծրագրի վթարային ավարտի🤷♂️:
Ահա «Երկուական ծառի ներկայացում» տեսանյութիս այն հատվածում որտեղ ձեռքով կառուցում ենք մեր նախընտրած ծառը՝ հանդիպում ենք նման դեպքի👆:
https://www.youtube.com/watch?v=-VOgmnc19ss&t=281s
Մեկնաբանություններում կարող եք գրել թե ե՞րբ էիք դուք վերջին անգամ թույլ տվել նման սխալ, ինչի հետևանքով էլ ստացել էիք «Segmentation fault» տեսակի հաղորդագրություն😁
Binary Tree representation / Երկուական Ծառի ներկայացումը
Շարունակում ենք Երկուական Ծառի (binary tree) ուսումնասիրությունը, և սովորում ենք թե ինչպես է այն ներկայացվում համակարգչի հիշողության մեջ: Դիտարկում ենք ծառի ...
23/05/2023
Ծրագրավորման մեջ Երկուական Ծառը տվյալները պահելու երևի-թե ամենահաճախ կիրառվող ձևն է։ Այն օգտագործվում է՝
- տվյալների բազաներում (databases),
- տվյալների որոնումների ժամանակ (searching),
- ֆայլային համակարգերում (file-systems),
- որոշումների դիագրամներում (decision trees),
- և այլն...
Ու հենց այդ պատճառով է որ այն ունի բազմաթիվ տարբեր տեսակներ։
Այս ներածական տեսանյութում ներկայացնում եմ Երկուական Ծառի կառուցվածքը, և իր մի շարք բնութագրիչներին👆: Ի տարբերություն այլ տեսանյութերի, այստեղ դեռ չենք գրելու կոդեր (կամ պսևդոկոդեր): Դա թողնելու ենք տեսաշարքի շարքի հաջորդ թողարկումների համար 🙂
Binary Tree structure / Երկուական Ծառի կառուցվածքը
Սովորում ենք թե ինչ է Երկուական Ծառը (binary tree), և որո՞նք են իր բնութագրիչները։ Այս տեսանյութում դեռ կոդեր չենք գրելու, այլ թողնելու ենք դա տեսաշարքի հետա...
05/05/2023
Ինչպե՞ս եք կարծում, հանարավո՞ր է իրականացնել Insertion Sort (տեղադրումներով սորտավորման) ալգորիթմը ռեկուրսիվ? Եթե այո, ռեկուրսիվ կանչը պետք է լինի այդ ֆունկցիայի սկզբում թե վերջում թե մեջտեղում?
Կարող եք գրել Ձեր առաջարկները մեկնաբանություններում, որոնց բոլորին հաճույքով կանդրադառնամ 🙂
Իսկ Insertion sort-ի մասին կարող ենք վերհիշել այս տեսանյութում․ https://youtu.be/lPK1gH5RupY
Իդեպ, ռեկուրսիայի մասին էլ այստեղ. 😁 https://youtu.be/mnYg99xgkMY
Simplest Recursion / Պարզագույն Ռեկուրսիա
Սովորում ենք ռեկուրսիան ամենապարզ օրինակներով ու կիրառություններով։ Տանում ենք զուգահեռներ իրական աշխարհում ռեկուրսիվ երևույթների հետ! Հասկանում ենք ռեկուրսի...