Strukturë të dhënash

Print

Rexhion Qafa, Msc

Kodi
CMP 115
Emri
Strukturë të dhënash
Semestri
1
Leksione
3.00
Seminare
1.00
Laboratore
0.00
Kredite
3.50
ECTS
5.00
Përshkrimi

Kursi “Strukturë të dhënash” ofron njohuri të përgjithshme mbi strukturat kryesore të të dhënave dhe algoritmet që përdoren për manipulimin e tyre. Algoritmika dhe struktura e të dhënave janë dy shtyllat thelbësore për formimin e aplikacioneve efikase, panvarësisht mjeteve të përdorura për implementimin e tyre. Në këtë kontekst, me anë të këtij kursi studentët do jenë të aftë të kuptojnë rëndësinë dhe ndikimin që kanë Strukturat e të Dhënave. Ky kurs do të trajtojë fillimisht llojet kryesore të strukturave të të dhënave, avantazhet dhe disavantazhet e këtyre strukturave në krahasim me njëra tjetrën dhe mënyrën e implementimit të tyre. Gjithashtu, do të trajtojë algoritmet krryesore të kërkimit dhe renditjes bazuar mbi këto struktura.

Objektivat

Java
Tema
1
Hyrje në strukturat e të dhënave Kjo temë realizon një paraqitje të përgjithshme të kursit duke trajtuar në mënyrë të përgjithshme algoritmet dhe strukturat themelore të të dhënave. Tema trajton konceptin e algoritmit, historikun, rëndësinë tij në programim dhe bën një prezantim të përgjithshëm të algoritmeve të kërkimit dhe renditjes. Në këtë temë trajtohen në mënyrë të përgjithshme dhe strutkurat e të dhënave Varg, Listat e Lidhura, Sketu dhe Rreshti/radha e pritjes. (Fq. 5-26)
2
Memoria, Tipet Abstrake të të dhënave dhe Adresat Shpjegimi i disa koncepteve dhe mekanizmave kryesore të cilat janë elementë përbërës dhe mbi të cilat ndërtohen të gjitha strukturat e të dhënave do i ndihmojë studentët në kuptimin dhe implementimin e temave parardhëse. Kjo temë trajton më një vështrim të përgjithshëm memorien kompjuterike, rezervimin e memories, adresat e memories dhe llojet abstrakte të të dhënave. Gjithashtu në këtë temë trajtohen dhe konceptet e variablave dhe pointerave, deklarimi dhe inicializimi i tyre, krijimi i tipeve të reja të të dhënave nga përdoruesi si dhe deklarimi i objekteve të ndryshme. (Fq. 27 – 45)
3
Vargjet dhe Stringjet Kjo temë trajton vargjet një, dy dhe shumë dimensionale, rëndësinë e tyre, veprimet që mund të kryejmë më vargjet, përdorimin dhe mënyrën e implementimit të tyre, analizën e efikasitetit kohor të çdo veprimi. Gjithashtu kjo temë trajton dhe Stringjet, ndryshimet në implementin në krahasim me vargjet e tjerë dhe së fundmi trajtohen avantazhet dhe disavantazhet e strukturës së të dhënave Varg. (Fq. 46-102)
4
Analiza e algoritmeve Kjo temë trajton çka është analiza e algoritmit, rëndësia e tij në ndërtimin e një algoritmi, klasifikimin e shkallës së rritjes së algoritmit, nocionet O, Theta dhe Omega dhe analizën e efikasitetit të algoritmeve sipas rasteve dhe krahasimin e tyre në shembuj të ndryshëm. (Fq. 103-131)
5
Listat e Lidhura Në këtë tëmë trajtohet struktura standarte e listës së lidhur, komponentët kryesorë të saj, ndryshimet e strukturës së lidhur njëfish nga strukturës së lidhur dyfish, implementimi i një listë të lidhur, operacionet me listat i lidhura një fish dhe dyfish. Gjithashtu kjo teme trajton dhe listat e lidhura rrethore njefish, dyfish si dhe multilistat. (Fq. 174 – 267)
6
Listat e Lidhura Në këtë tëmë trajtohet struktura standarte e listës së lidhur, komponentët kryesorë të saj, ndryshimet e strukturës së lidhur njëfish nga strukturës së lidhur dyfish, implementimi i një listë të lidhur, operacionet me listat i lidhura një fish dhe dyfish. Gjithashtu kjo teme trajton dhe listat e lidhura rrethore njefish, dyfish si dhe multilistat. (Fq. 174 – 267)
7
Steku dhe Rradhët (Stacks and Queues) Kjo temë trajton Stekun, implementimin e tij përmes vargjeve dhe ATD-ve, operacionet dhe aksiomat për stekun, përdorimi i një sketu bazuar në vargje. Gjithashtu kjo temë trajton dhe Rreshtin (Queue) si dhe implementimin dhe përdorimin e tij përmes një vargu. (Fq. 141 – 173)
8
Provimi gjysmë final
9
Steku dhe Rradhët (Stacks and Queues) Kjo temë trajton Stekun, implementimin e tij përmes vargjeve dhe ATD-ve, operacionet dhe aksiomat për stekun, përdorimi i një sketu bazuar në vargje. Gjithashtu kjo temë trajton dhe Rreshtin (Queue) si dhe implementimin dhe përdorimin e tij përmes një vargu. (Fq. 141 – 173)
10
Rekursioni Kjo temë trajton rekursionin, implementimin e tij nëpërmjet shembullit të faktorielit dhe përparësitë dhe të metat e tij. Gjithashtu trajtohen algoritmet kryesore rekursive dhe algoritmet përça dhe sundu. (Fq. 268 – 301)
11
Pemët (Trees) Kjo temë trjaton pemët (Trees), tiparet matematike të tyre, përshkimi i pemëve, kërkimi në pemë sipas teknikave “thellësia së pari” dhe “gjërësia së pari”, implementimi i algoritmeve rekursive nëpërmejt pemëve. Gjithathsu në këtë temë trjatohen dhe pemët binare, elementët e saj, kërkimi në to dhe implementimi i tyre. (Fq. 304 – 367)
12
Grafet Në këtë temë trajtohen grafet, reprezantimi i grafit të padrejtuar, matrica dhe lista e fqinjësisë, algoritmet për grafet e padrejtuara, përshkimi ityre me anë të teknikave “thellësia së pari” dhe “gjërësia së pari”, pema e shtrirjes minimale, algoritmet Dijkstra-prim, Kruska dhe algoritmi i stegut më të shkurtët nëpërmjet Dijkstra’s. (Fq. 457 – 496)
13
Algoritmet e Kërkimit Kjo temë trajton algoritmet e kërkimit sekuencial dhe binar, analizën e algoritmin të kërkimit binar, algoritmin për bashkimin e vargeve, numrat primarë, sitën e Eratostenit, implementimin e këtyre algoritmeve me anë të shembujve të ndryshëm dhe analizën e kompleksitetit të tyre. (Fq. 497 – 515)
14
Algoritmet e Renditjes Kjo temë trajton algoritmet e renditjes Bubble Sort, Selection Sort, Insertion Sort, Quick Sort dhe Merge Sort. Gjithashtu kjo temë trajton mënyrat e implementimint të këtyre algoritmeve renditëse dhe analizën e efikasitetit të tyre. (Fq. 516 – 547)
15
Përmbledhje e Përgjithshme
16
Provim Final
1
Studentët do të jenë të aftë të kuptojnë strukturat kryesore të të dhënave.
2
Studentët do të kenë njohuri mbi trajtimin e strukturave të të dhënave.
3
Studentët do të përvetësojnë konceptet më të rëndësishme të strukturave të të dhënave dhe algoritmikës.
4
Studentët do të jenë të aftë të kuptojnë rëndësinë e strukturave të të dhënave dhe algoritmikës në ndërtimin e një aplikacioni efikas.
5
Studentët do të jenë të aftë për të implementuar këto struktura të dhënash në çfarëdolloj gjuhe programimi.
6
Studentët do të jenë të pajisur me terminologjinë e mjaftueshme teknologjike për të vijuar me lëndët e tjera pasardhëse.
Sasia Përqindja Përqindja totale
Gjysmë finale
1 40% 40%
Kuize
0 0% 0%
Projekte
0 0% 0%
Detyra
0 0% 0%
Laboratorët
0 0% 0%
Pjesëmarrja në mësim
0 0% 0%
Përqindja totale e vlerësimit
40%
Përqindja e provimit përfundimtar
60%
Përqindja totale
100%
Sasia Kohëzgjatja (orë) Gjithsej (orë)
Kohëzgjatja e kursit (përfshirë javët e provimit)
16 4 64
Orë studimi jashtë klasës
14 4 56
Detyrat
0 0 0
Gjysmë finale
1 2 2
Provimi përfundimtar
1 2 2
Të tjera
0 0 0
Ngarkesa totale e punës
124
Ngarkesa totale e punës / 25 (orë)
4.96
ECTS
5.00