Համակարգչային գիտության ներածություն
CS-101 դասընթացը տանում է ուսանողին տվյալների ամենացածր՝ երկուական մակարդակից մինչև C լեզվով գործնական ծրագրավորում՝ ճանապարհին բացահայտելով հաշվողական մտածողության և համակարգչային գիտության պատմության հիմքերը:
Ընդհանուր տվյալներ
Դասախոսի տվյալներ
Արմեն Մարջինյան
Կրթություն, գիտական աստիճան՝ ՀՊՃՀ, ԵՊՀ։ Ընդունելության ժամեր՝ չորեքշաբթի, ուրբաթ 15:00–18:00։
Քոլեջում կարդացվող դասընթացներ՝ Համակարգչային գիտության ներածություն (I կուրս), Համակարգչային ճարտարապետություն (I կուրս), Ալգորիթմներ և տվյալների կառուցվածքներ (II կուրս), Software Design (II կուրս), IB Diploma Program – CS, IB Diploma Program – Theory of Knowledge։
Հեղինակած գրքեր՝ «JavaScript Ultimate» (մենագրություն, 620 էջ, 2025թ.), «React, Next.js» (մենագրություն, 620 էջ, 2024թ.)։
Ծրագրի նկարագրություն
«Համակարգչային գիտության ներածություն» առարկան թույլ կտա ուսանողներին բացահայտել համակարգչային տեխնոլոգիաների աշխատանքի հիմքում ընկած հիմնարար սկզբունքները՝ սկսած ամենացածր մակարդակի տվյալների ներկայացումից մինչև պրակտիկ ծրագրավորում։ Ուսանողները կհասկանան, թե ինչպես է համակարգիչը մշակում տեղեկատվությունը՝ սկսելով երկուական (binary) համակարգի և տրամաբանական սխեմաների ուսումնասիրությունից։
Առարկայի մեծ մասը կապված է ծրագրավորման C լեզվի հետ։ Զուգահեռ լինելով Python-ին՝ այս առարկան հնարավորություն կտա առավել խոր պատկերացում ունենալ ծրագրավորման լեզուների ցածր մակարդակում իրականացումից։ Որոշ դասեր ամբողջությամբ նվիրված են «համակարգչային գիտության պատմությանը», որտեղ ներկայացվում է գիտության զարգացումն ու ընթացքը ժամանակակից աշխարհում։
Առարկայի դերը «Համակարգչային գիտություն» ծրագրում
«Համակարգչային գիտության ներածություն» առարկան հանդիսանում է կրթական ծրագրի մեկնարկային բաղադրիչը. այն սովորեցնում է ուսանողներին՝ ինչ է համակարգչային գիտությունը։
Հաշվողական (computational) մտածողության ձևավորում
Առարկան ուսանողների մոտ արմատավորում է խնդիրները դեկոմպոզիցիայի ենթարկելու և աբստրակտ մտածողություն կիրառելու կարողությունը։ Սկսելով երկուական համակարգից՝ ուսանողները սովորում են ցանկացած տվյալ (թիվ, տեքստ, պատկեր) վերածել մեքենայի համար հասկանալի ազդակների։
Բազային հենք հաջորդող դասընթացների համար
Ֆունդամենտալ թեմաները (հիշողության կառավարում, ցուցիչներ, բիթային գործողություններ) հիմք են հանդիսանում ավելի բարդ առարկաների համար՝ Ալգորիթմներ և տվյալների կառուցվածքներ, Օպերացիոն համակարգեր և ցանցեր, Համակարգչային ճարտարապետություն և այլն։
Համակարգերի ներքին դետալների ընկալում
C լեզվի կիրառումը թույլ է տալիս տեսնել, թե ինչ է կատարվում հիշողության մեջ իրական ժամանակում. ինչպես աշխատում է CPU-ն, ինչպես է բաշխվում RAM-ը, և ինչպես է կոդը թարգմանվում մեքենայական հրամանների։
Ինժեներական մշակույթի սահմանում
C-ն սովորեցնում է գրել մաքուր, կազմակերպված և զգուշավոր կոդ. հիշողության ավտոմատ կառավարման բացակայությունը զարգացնում է պատասխանատվություն ռեսուրսների նկատմամբ՝ ողջ կարիերայի ընթացքում։
Ամփոփիչ գնահատման կարգ
Առարկան քննական է, ենթախումբը՝ core։ Առաջին երկու միջանկյալ քննությունը և վերջին ամփոփիչը կկատարվեն portal-ով։
01 · Multiple Choice
Բազմընտրանի հարցեր՝ ընդգրկելով դասընթացի հիմնական հասկացությունները։
02 · Կոնցեպտուալ
«Ի՞նչ կտպի կոդը», «Ի՞նչ խնդիր է լուծում կոդը», կոնցեպտի բացատրություն։
03 · Կոդային առաջադրանք
Օրինակ՝ ֆունկցիաների գրում C ծրագրավորման լեզվով։
Գնահատման սանդղակ
- Տիրապետել
- Երկուական (binary) համակարգի հիմունքներին, տվյալների տիպերին և C լեզվի բազային սինտաքսին (պայմանի օպերատորներ, ցիկլեր)։
- Կիրառել
- C լեզվի ներդրված հնարավորությունները (զանգվածներ, պարզ ֆունկցիաներ) տրված խնդիրների շրջանակում։
- Իրականացնել
- Պարզագույն ծրագրերի կոդավորում, մուտքային տվյալների մշակում և արտածում (I/O operations)։
- Լուծել
- Պարզ, գծային կամ ճյուղավորված տրամաբանություն ունեցող խնդիրներ։
- Տիրապետել
- Ֆունկցիոնալ ծրագրավորման սկզբունքներին, (scope) կանոններին և տվյալների կառուցվածքային տիպերին (struct)։
- Կիրառել
- Բազմաչափ զանգվածներ, ցուցիչներ, տեքստային տվյալներ (strings)։
- Իրականացնել
- Կոդի մոդուլյար բաժանում (մեկից ավելի ֆունկցիաների կիրառմամբ) և պարզագույն որոնման ալգորիթմներ։
- Լուծել
- Պարզ և միջին բարդության տրամաբանական ու մաթեմատիկական խնդիրներ C լեզվով։
- Տիրապետել
- Բիթային գործողություններին (bitwise operations), երկուական հանրահաշվի օրենքներին և հիշողության կազմակերպման սկզբունքներին (Stack/Heap)։
- Կիրառել
- Հիշողության դինամիկ բաշխում (malloc, calloc, free) և բազմամակարդակ ցուցիչներ։
- Իրականացնել
- Ցուցիչների և հասցեավորման վրա հիմնված բարդ կառուցվածքների մանիպուլյացիա, հիշողության արդյունավետ կառավարում առանց կորուստների (memory leaks)։
- Լուծել
- Միջինից բարդ ֆունկցիոնալ և ինժեներական խնդիրներ C լեզվով։
Նվազագույն վերջնարդյունքներ
Ուսանողը պետք է իմանա
Տվյալների ներկայացման ֆունդամենտալ սկզբունքները — ինչ է երկուական, ութական և տասնվեցական հաշվարկման համակարգը, ինչպես են թվերը, տեքստը (ASCII) և հրամանները կոդավորվում մեքենայական մակարդակում։
Ցածր մակարդակի հիշողության կառուցվածքը — ինչպես է օպերացիոն համակարգը բաշխում հիշողությունը, և որն է Stack/Heap տիրույթների տարբերությունը։
C լեզվի կառուցվածքային տարրերը — տվյալների բազային տիպերը, scope կանոնները, ցուցիչների և հասցեավորման տրամաբանությունը, struct-ի դերը։
Բիթային հանրահաշվի հիմունքները — AND, OR, XOR, NOT, bitwise shifts օպերատորները և դրանց կիրառումը։
Կոդի թարգմանման (Compilation) փուլերը — Preprocessing, Compilation, Assembly և Linking՝ մինչև գործարկելի ֆայլ։
Ուսանողը պետք է կարողանա
Կառավարել համակարգչի հիշողությունը — հատկացնել դինամիկ հիշողություն malloc() / calloc() ֆունկցիաներով և ազատել free()-ով։
Կիրառել ցուցիչներ և զանգվածներ — մանիպուլացնել միաչափ և բազմաչափ զանգվածները ցուցիչների թվաբանության միջոցով։
Մշակել կառուցվածքային և մոդուլյար կոդ — բաժանել ֆունկցիաների, ստեղծել struct տիպեր, աշխատել ֆայլերի հետ։
Գրել ստանդարտ խնդիրների լուծման ֆունկցիաներ C լեզվով։
Կարդալ և գտնել սխալներ կոդում (Debugging) — հայտնաբերել runtime սխալները, հիշողության անկանոն հասանելիությունը և implicit type casting-ը։
Գրականություն և այլ նյութեր
Դասերի ձևաչափ և նախնական գիտելիքներ
Ձևաչափ
1. Տեսական դասախոսություններ
2. Գործնական դասեր՝ խնդիրների լուծման կենտրոնացմամբ
Նախնական գիտելիքներ
Պարզագույն թվաբանական հմտություններ, համակարգչից օգտվելու կարողություններ և անգլերեն։
Դասընթացի շարունակականություն
Առարկան շարունակվում է երկրորդ կիսամյակում՝ «Հաշվողական համակարգերի ճարտարապետություն» անվանմամբ, որտեղ անդրադարձ է արվելու հետևյալ թեմաներին.