Առարկայական ծրագրի չափորոշիչ

Համակարգչային գիտության ներածություն

CS-101 դասընթացը տանում է ուսանողին տվյալների ամենացածր՝ երկուական մակարդակից մինչև C լեզվով գործնական ծրագրավորում՝ ճանապարհին բացահայտելով հաշվողական մտածողության և համակարգչային գիտության պատմության հիմքերը:

Կուրս10-րդ դասարան (I կուրս)
Կիսամյակ2026, աշնանային
ԿատեգորիաCore · Քննական
Ընդհանուր ժամեր32
ԴասախոսԱրմեն Մարջինյան
01

Ընդհանուր տվյալներ

Ֆակուլտետ
Համակարգչային գիտություն
Ժամկետ
2026, աշնանային կիսամյակ
Ուսումնական տարի
10-րդ դասարան (1-ին կուրս)
Տեսակ
Քննական
Կատեգորիա
Core
Դասախոս
Արմեն Մարջինյան
Ծրագրի հեղինակ
Արմեն Մարջինյան
Ժամաքանակ
32
Մուտքային պայմաններ
Բազային մաթեմատիկա, անգլերեն, համակարգչից օգտվելու հմտություններ
02

Դասախոսի տվյալներ

ԱՄ

Արմեն Մարջինյան

marjinyan95@gmail.com

Կրթություն, գիտական աստիճան՝ ՀՊՃՀ, ԵՊՀ։ Ընդունելության ժամեր՝ չորեքշաբթի, ուրբաթ 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թ.)։

03

Ծրագրի նկարագրություն

«Համակարգչային գիտության ներածություն» առարկան թույլ կտա ուսանողներին բացահայտել համակարգչային տեխնոլոգիաների աշխատանքի հիմքում ընկած հիմնարար սկզբունքները՝ սկսած ամենացածր մակարդակի տվյալների ներկայացումից մինչև պրակտիկ ծրագրավորում։ Ուսանողները կհասկանան, թե ինչպես է համակարգիչը մշակում տեղեկատվությունը՝ սկսելով երկուական (binary) համակարգի և տրամաբանական սխեմաների ուսումնասիրությունից։

Առարկայի մեծ մասը կապված է ծրագրավորման C լեզվի հետ։ Զուգահեռ լինելով Python-ին՝ այս առարկան հնարավորություն կտա առավել խոր պատկերացում ունենալ ծրագրավորման լեզուների ցածր մակարդակում իրականացումից։ Որոշ դասեր ամբողջությամբ նվիրված են «համակարգչային գիտության պատմությանը», որտեղ ներկայացվում է գիտության զարգացումն ու ընթացքը ժամանակակից աշխարհում։

04

Առարկայի դերը «Համակարգչային գիտություն» ծրագրում

«Համակարգչային գիտության ներածություն» առարկան հանդիսանում է կրթական ծրագրի մեկնարկային բաղադրիչը. այն սովորեցնում է ուսանողներին՝ ինչ է համակարգչային գիտությունը։

01

Հաշվողական (computational) մտածողության ձևավորում

Առարկան ուսանողների մոտ արմատավորում է խնդիրները դեկոմպոզիցիայի ենթարկելու և աբստրակտ մտածողություն կիրառելու կարողությունը։ Սկսելով երկուական համակարգից՝ ուսանողները սովորում են ցանկացած տվյալ (թիվ, տեքստ, պատկեր) վերածել մեքենայի համար հասկանալի ազդակների։

02

Բազային հենք հաջորդող դասընթացների համար

Ֆունդամենտալ թեմաները (հիշողության կառավարում, ցուցիչներ, բիթային գործողություններ) հիմք են հանդիսանում ավելի բարդ առարկաների համար՝ Ալգորիթմներ և տվյալների կառուցվածքներ, Օպերացիոն համակարգեր և ցանցեր, Համակարգչային ճարտարապետություն և այլն։

03

Համակարգերի ներքին դետալների ընկալում

C լեզվի կիրառումը թույլ է տալիս տեսնել, թե ինչ է կատարվում հիշողության մեջ իրական ժամանակում. ինչպես աշխատում է CPU-ն, ինչպես է բաշխվում RAM-ը, և ինչպես է կոդը թարգմանվում մեքենայական հրամանների։

04

Ինժեներական մշակույթի սահմանում

C-ն սովորեցնում է գրել մաքուր, կազմակերպված և զգուշավոր կոդ. հիշողության ավտոմատ կառավարման բացակայությունը զարգացնում է պատասխանատվություն ռեսուրսների նկատմամբ՝ ողջ կարիերայի ընթացքում։

05

Ամփոփիչ գնահատման կարգ

Առարկան քննական է, ենթախումբը՝ core։ Առաջին երկու միջանկյալ քննությունը և վերջին ամփոփիչը կկատարվեն portal-ով։

25%
Միջանկյալ քննություն 1
25%
Միջանկյալ քննություն 2
50%
Ամփոփիչ քննություն

01 · Multiple Choice

Բազմընտրանի հարցեր՝ ընդգրկելով դասընթացի հիմնական հասկացությունները։

02 · Կոնցեպտուալ

«Ի՞նչ կտպի կոդը», «Ի՞նչ խնդիր է լուծում կոդը», կոնցեպտի բացատրություն։

03 · Կոդային առաջադրանք

Օրինակ՝ ֆունկցիաների գրում C ծրագրավորման լեզվով։

06

Գնահատման սանդղակ

C կարգ50 – 70
Տիրապետել
Երկուական (binary) համակարգի հիմունքներին, տվյալների տիպերին և C լեզվի բազային սինտաքսին (պայմանի օպերատորներ, ցիկլեր)։
Կիրառել
C լեզվի ներդրված հնարավորությունները (զանգվածներ, պարզ ֆունկցիաներ) տրված խնդիրների շրջանակում։
Իրականացնել
Պարզագույն ծրագրերի կոդավորում, մուտքային տվյալների մշակում և արտածում (I/O operations)։
Լուծել
Պարզ, գծային կամ ճյուղավորված տրամաբանություն ունեցող խնդիրներ։
B կարգ71 – 90
Տիրապետել
Ֆունկցիոնալ ծրագրավորման սկզբունքներին, (scope) կանոններին և տվյալների կառուցվածքային տիպերին (struct)։
Կիրառել
Բազմաչափ զանգվածներ, ցուցիչներ, տեքստային տվյալներ (strings)։
Իրականացնել
Կոդի մոդուլյար բաժանում (մեկից ավելի ֆունկցիաների կիրառմամբ) և պարզագույն որոնման ալգորիթմներ։
Լուծել
Պարզ և միջին բարդության տրամաբանական ու մաթեմատիկական խնդիրներ C լեզվով։
A կարգ91 – 100
Տիրապետել
Բիթային գործողություններին (bitwise operations), երկուական հանրահաշվի օրենքներին և հիշողության կազմակերպման սկզբունքներին (Stack/Heap)։
Կիրառել
Հիշողության դինամիկ բաշխում (malloc, calloc, free) և բազմամակարդակ ցուցիչներ։
Իրականացնել
Ցուցիչների և հասցեավորման վրա հիմնված բարդ կառուցվածքների մանիպուլյացիա, հիշողության արդյունավետ կառավարում առանց կորուստների (memory leaks)։
Լուծել
Միջինից բարդ ֆունկցիոնալ և ինժեներական խնդիրներ C լեզվով։
07

Նվազագույն վերջնարդյունքներ

Ուսանողը պետք է իմանա

01

Տվյալների ներկայացման ֆունդամենտալ սկզբունքները — ինչ է երկուական, ութական և տասնվեցական հաշվարկման համակարգը, ինչպես են թվերը, տեքստը (ASCII) և հրամանները կոդավորվում մեքենայական մակարդակում։

02

Ցածր մակարդակի հիշողության կառուցվածքը — ինչպես է օպերացիոն համակարգը բաշխում հիշողությունը, և որն է Stack/Heap տիրույթների տարբերությունը։

03

C լեզվի կառուցվածքային տարրերը — տվյալների բազային տիպերը, scope կանոնները, ցուցիչների և հասցեավորման տրամաբանությունը, struct-ի դերը։

04

Բիթային հանրահաշվի հիմունքները — AND, OR, XOR, NOT, bitwise shifts օպերատորները և դրանց կիրառումը։

05

Կոդի թարգմանման (Compilation) փուլերը — Preprocessing, Compilation, Assembly և Linking՝ մինչև գործարկելի ֆայլ։

Ուսանողը պետք է կարողանա

01

Կառավարել համակարգչի հիշողությունը — հատկացնել դինամիկ հիշողություն malloc() / calloc() ֆունկցիաներով և ազատել free()-ով։

02

Կիրառել ցուցիչներ և զանգվածներ — մանիպուլացնել միաչափ և բազմաչափ զանգվածները ցուցիչների թվաբանության միջոցով։

03

Մշակել կառուցվածքային և մոդուլյար կոդ — բաժանել ֆունկցիաների, ստեղծել struct տիպեր, աշխատել ֆայլերի հետ։

04

Գրել ստանդարտ խնդիրների լուծման ֆունկցիաներ C լեզվով։

05

Կարդալ և գտնել սխալներ կոդում (Debugging) — հայտնաբերել runtime սխալները, հիշողության անկանոն հասանելիությունը և implicit type casting-ը։

08

Գրականություն և այլ նյութեր

PrimaryC Programming Language, modern approach
SecondaryCode: The Hidden Language of Computer Hardware — Charles Petzold
VideoYouTube — Վ. Գրիգորյանի «C ծրագրավորման լեզվի հիմունքներ» դասախոսությունների շարքը
09

Դասերի ձևաչափ և նախնական գիտելիքներ

Ձևաչափ

1. Տեսական դասախոսություններ
2. Գործնական դասեր՝ խնդիրների լուծման կենտրոնացմամբ

Նախնական գիտելիքներ

Պարզագույն թվաբանական հմտություններ, համակարգչից օգտվելու կարողություններ և անգլերեն։

10

Դասընթացի շարունակականություն

Առարկան շարունակվում է երկրորդ կիսամյակում՝ «Հաշվողական համակարգերի ճարտարապետություն» անվանմամբ, որտեղ անդրադարձ է արվելու հետևյալ թեմաներին.

Բուլյան հանրահաշիվԿոմբինացիոն շղթաներՀաջորդական շղթաներ Ռեգիստրի և RAM-ի միկրոսխեմայի նախագծումCPU-ի աշխատանքի հիմունքներ և ինտեգրալ միկրոսխեմա Օպերացիոն համակարգերի հիմունքներԾրագրի աշխատանքը ցածր մակարդակումԱսեմբլեր ծրագրավորում
11

Ակադեմիական օրացույց

32Ընդհանուր ժամեր
3Քննական ժամեր
29Վերջնական դասաժամեր