Strukturë të Dhënash

Print

Grasiela Baçellari, Msc

Code
EMS 123
Name
Data Structures
Semester
1
Lecture hours
3.00
Seminar hours
1.00
Laborator hours
0.00
Credits
3.50
ECTS
5.00
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

The course introduces the basics of computational complexity analysis and various algorithm design paradigms. The goal is to provide students with solid foundations to deal with a wide variety of computational problems, and to provide a thorough knowledge of the most common algorithms and data structures.

Java
Tema
1
Introduction 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. 1-35)
2
Memory, 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.41 – 94)
3
Arrays 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. 97-130)
4
Algorithms 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. 131-167)
5
Linked 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. 169 – 198)
6
Linked 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. 201– 250)
7
Stacks 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. 253 – 280)
8
Midterm Exam
9
Stacks 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. 283 – 312)
10
Recursion 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. 315 – 344)
11
Trees 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. 345 – 384)
12
Graphs 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. 387 – 420)
13
Searching 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. 423 – 440)
14
Sorting 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. 441 – 468)
15
General Review
16
Final Exam
1
Students make everyone capable of understanding key data structures.
2
Students will have knowledge of handling data structures.
3
Students will acquire the most important concepts of data structures and algorithms.
4
Students will be able to understand the importance of data structures and algorithms in building an efficient application.
5
Students will be able to implement these data structures in any programming language.
6
Students will be equipped with sufficient technological terminology to continue with other subsequent subjects.
Quantity Percentage Total percent
Midterms
1 40% 40%
Quizzes
0 0% 0%
Projects
0 0% 0%
Term projects
0 0% 0%
Laboratories
0 0% 0%
Class participation
0 0% 0%
Total term evaluation percent
40%
Final exam percent
60%
Total percent
100%
Quantity Duration (hours) Total (hours)
Course duration (including exam weeks)
16 4 64
Off class study hours
14 4 56
Duties
0 0 0
Midterms
1 2 2
Final exam
1 2 2
Other
0 0 0
Total workLoad
124
Total workload / 25 (hours)
4.96
ECTS
5.00