Strukturë të dhënash

Print

Ksandra Xhukellari, Msc

Code
CMP 115
Name
Data Structure
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

This course aims to: • Familiarize students with main Data Structures. • To introduce students to the analysis of the efficiency of any Data Structure. • To make aware of students the way of organizing and implementing the main data structures. • To enable students to implement these structures using search and sorting algorithms, but not only • Explain the importance and influence of Data Structures in designing and building an application as efficient as possible. • Explain the integration of Data Structures with algorithms. • Develop students' critical thinking in analyzing different types of Data Structures and different Algorithms which can be used to manipulate them.

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. 5-26)
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. 27 – 45)
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. 46-102)
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. 103-131)
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. 174 – 267)
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. 174 – 267)
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. 141 – 173)
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. 141 – 173)
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. 268 – 301)
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. 304 – 367)
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. 457 – 496)
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. 497 – 515)
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. 516 – 547)
15
General Review
16
Final Exam
1
Students will be able to understand principles in structuring flowcharts and algorithms.
2
Students will be able to handle data structures.
3
Students will learn 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 provided with sufficient technical terminology to proceed with other subsequent courses.
Quantity Percentage Total percent
Midterms
1 20% 20%
Quizzes
0 0% 0%
Projects
1 20% 20%
Term projects
0 0% 0%
Laboratories
0 0% 0%
Class participation
1 10% 10%
Total term evaluation percent
50%
Final exam percent
50%
Total percent
100%
Quantity Duration (hours) Total (hours)
Course duration (including exam weeks)
16 4 64
Off class study hours
14 4 56
Duties
1 3 3
Midterms
1 1 1
Final exam
1 2 2
Other
0 0 0
Total workLoad
126
Total workload / 25 (hours)
5.04
ECTS
5.00