Course Title : Data Structures
Code Course
Type
Regular
Semester
Lecture
(hours/week)
Seminar
(hours/week)
Lab
(hours/week)
Credits ECTS
CMP 115-2 A -1 3 1 0 3.50 5
Lecturer and Office Hours
Teaching Assistant and Office Hours
Language
Course Level
Description The "Data Structure" course provides general knowledge on the main data structures and algorithms used to manipulate them. Algorithms and Data Structures are the two essential pillars to build an efficient applications, regardless of the tools used for their implementation. In this context, through this course students will be able to understand the importance and impact that Data Structures have. This course will first address the main types of Data Structures, the advantages and disadvantages of these structures compared to each other and how to implement them. It will also address main searching and sorting algorithms based on these structures.
Objectives
Course Outline
WeekTopics
1Introduction to Data Structures This topic provides an overview of the course by addressing in general terms algorithms and main data structures. The topic deals with the concept of algorithm, its history, its importance in programming and makes a general presentation of search and sorting algorithms. In this topic are treated in general Arrays, Linked Lists, Stacks and Queues Data Structures. (Pg. 5-26)
2Memory, Abstract Data Types and Addresses Explaining main concepts and mechanisms that are constituent elements and on which all data structures are built will help students understand and implement previous topics. This topic takes a look at computer memory, memory reservation, memory addresses, and abstract data types. Also in this topic are treated the concepts of variables and pointers, their declaration and initialization, the creation of new types of data by the user and the declaration of various objects. (Pg. 27 – 45)
3Arrays and Strings This topic deals with one, two and multi-dimensional arrays, their importance, array operations, implementation and the analysis of the time efficiency of each operation. This topic also addresses Strings, changes in implementation compared to other Arrays, and finally addresses the advantages and disadvantages of the Array data structure. (Pg. 46-102)
4Algorithms Analysis This topic addresses what is algorithm analysis, its importance in building an algorithm, classifying the growth rate of the algorithm, the Big-O, Theta and Omega notions, analyzing the efficiency of algorithms by case and comparing them in different examples. (Pg. 103-131)
5Linked Lists This topic deals with the standard structure of the simple linked list, its main components, the differences of the simple linked structure once from double linked structure, the implementation and operations done to linked lists. Also this topic examines circular, double circular and multi-lists data structures. (Pg. 174 – 267)
6Linked Lists This topic deals with the standard structure of the simple linked list, its main components, the differences of the simple linked structure once from double linked structure, the implementation and operations done to linked lists. Also this topic examines circular, double circular and multi-lists data structures. (Pg. 174 – 267)
7Stacks and Queues This topic deals with Stack and Queues, properties and operations of Stacks and Queues, their implementation through arrays and linked lists, error states, Queue types, implementation in computer science and Advantages and Drawbacks of Stack and Queues (Pg. 141 – 173)
8Midterm Exam
9Stacks and Queues This topic deals with Stack and Queues, properties and operations of Stacks and Queues, their implementation through arrays and linked lists, error states, Queue types, implementation in computer science and Advantages and Drawbacks of Stack and Queues (Pg. 141 – 173)
10Recursion This topic addresses recursion, its implementation through the example of factorial and its advantages and disadvantages. The main recursive algorithms and divide and counter algorithms are also treated. (Pg. 268 – 301)
11Trees This topic deals with trees (Trees), their mathematical features, tree traversal, tree search according to the techniques "depth first search" and "width first search", implementation of recursive algorithms through trees. Binary trees, its elements, research in them and their implementation are also treated. (Pg. 304 – 367)
12Graphs This topic deals with graphs, undirected graph representation, matrix and neighborhood list, algorithms for undirected graphs, traversing them using “depth first” and “width first” techniques, minimum tree traversal, Dijkstra- prim algorithms, Kruska and the shortest stack algorithm via Dijkstra's. (Pg. 457 – 496)
13Searching Algorithms This topic deals with sequential and binary search algorithms, binary search algorithm analysis, string joining algorithm, prime numbers, Eratostene sieve, implementation of these algorithms by means of various examples, and analysis of their complexity. (Pg. 497 – 515)
14Sorting Algorithms This topic deals with Bubble Sort, Selection Sort, Insertion Sort, Quick Sort, and Merge Sort algorithms. The ways of implementation and analysis of efficiency of these sorting algorithms are also addressed (Pg. 516 – 547)
15General Review
16Final Exam
Prerequisites
Textbook
Other References
Laboratory Work
Computer Usage
Other
Learning Outcomes and Competences
1Studentët do të jenë të aftë të kuptojnë strukturat kryesore të të dhënave.
2Studentët do të kenë njohuri mbi trajtimin e strukturave të të dhënave.
3Studentët do të përvetësojnë konceptet më të rëndësishme të strukturave të të dhënave dhe algoritmikës.
4Studentë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.
5Studentët do të jenë të aftë për të implementuar këto struktura të dhënash në çfarëdolloj gjuhe programimi.
6Studentët do të jenë të pajisur me terminologjinë e mjaftueshme teknologjike për të vijuar me lëndët e tjera pasardhëse.
Course Evaluation Methods
In-term studies Quantity Percentage
Midterms120
Quizzes00
Projects120
Term Projects00
Laboratory00
Attendance00
Contribution of in-term studies to overall grade40
Contribution of final examination to overall grade60
Total100
ECTS (Allocated Based on Student) Workload
Activities Quantity Duration
(hours)
Total Workload
(hours)
Course Duration (Including the exam week : 16 x Total course hours) 16464
Hours for off-the-classroom study (Pre-study, practice) 14456
Assignments 111
Midterms 122
Final examination 122
Other 000
Total Work Load 125
Total Work Load / 25 (hours) 5
ECTS 5

Get Syllabus PDF (Albanian) Get Syllabus PDF (English)