COURSE INFORMATION
Course Title: DATA STRUCTURES
Code Course Type Regular Semester Theory Practice Lab Credits ECTS
CEN 254 B 4 3 0 2 4 5
Academic staff member responsible for the design of the course syllabus (name, surname, academic title/scientific degree, email address and signature) Dr. Aida Dhima abitri@epoka.edu.al
Main Course Lecturer (name, surname, academic title/scientific degree, email address and signature) and Office Hours: M.Sc. Jurgen Cama jcama@epoka.edu.al
Second Course Lecturer(s) (name, surname, academic title/scientific degree, email address and signature) and Office Hours: M.Sc. Erdjana Dida edida@epoka.edu.al
Language: English
Compulsory/Elective: Compulsory
Study program: (the study for which this course is offered) Bachelor in Business Informatics (3 years)
Classroom and Meeting Time: Theory: Wednesdays Lab: Thursdays
Teaching Assistant(s) and Office Hours: NA
Code of Ethics: Code of Ethics of EPOKA University
Regulation of EPOKA University "On Student Discipline"
Attendance Requirement: 75%
Course Description: Study of the basic data structures and their implementations: Arrays, matrices, stacks, queues, hash tables, trees, lists, and graphs. Programming techniques using recursion. Various searching and sorting methods such as insertion sort, merge sort, and quick sort. Basic analysis of algorithms.
Course Objectives: At the end of the course, students should understand and be able to implement frequently used Data structures with JAVA.
BASIC CONCEPTS OF THE COURSE
1 Linked Lists
2 Stacks and Queues
3 Trees, Binary Search Trees
4 AVL Trees
5 Graphs
6 HashMaps
COURSE OUTLINE
Week Topics
1 Intro. to Course and Asymptotic Notations
2 Recursion
3 Linked Lists
4 Stacks and Queues
5 Trees, Binary Trees, Binary Search Trees
6 Binary Search Trees II
7 AVL Trees
8 MIDTERM EXAM
9 Mapping, Hashing
10 Sorting I: Selection, Insertion and Merge Sort
11 Sorting II: Merge Sort, Quick Sort and Heap Sort
12 Graph Data Structure I
13 Prim`s Algorithm, Kruskal`s Algorithm, Dijkstra Algorithm
14 Review
Prerequisite(s): To have a satisfactory level in a object oriented programming language.
Textbook(s): Data Structures and Algorithms in Java, 6th Edition, 2014
Additional Literature: -
Laboratory Work: YES
Computer Usage: Yes
Others: No
COURSE LEARNING OUTCOMES
1 Students should be able to understand the difference between data structures.
2 Students should be able to implement different data structures.
3 Students should be able to implement algorithms to manipulate data.
COURSE CONTRIBUTION TO... PROGRAM COMPETENCIES
(Blank : no contribution, 1: least contribution ... 5: highest contribution)
No Program Competencies Cont.
Bachelor in Business Informatics (3 years) Program
1 Identify activities, tasks, and skills in management, marketing, accounting, finance, and economics. 5
2 Apply key theories to practical problems within the global business context. 5
3 Demonstrate ethical, social, and legal responsibilities in organizations. 5
4 Develop an open minded-attitude through continuous learning and team-work. 5
5 Integrate different skills and approaches to be used in decision making and data management. 5
6 Combine computer skills with managerial skills, in the analysis of large amounts of data. 5
7 Provide solutions to complex information technology problems. 5
8 Recognize, analyze, and suggest various types of information-communication systems/services that are encountered in everyday life and in the business world. 5
COURSE EVALUATION METHOD
Method Quantity Percentage
Homework
1
20
Midterm Exam(s)
1
35
Final Exam
1
45
Total Percent: 100%
ECTS (ALLOCATED BASED ON STUDENT WORKLOAD)
Activities Quantity Duration(Hours) Total Workload(Hours)
Course Duration (Including the exam week: 16x Total course hours) 16 5 80
Hours for off-the-classroom study (Pre-study, practice) 16 1 16
Mid-terms 1 5 5
Assignments 0 0 0
Final examination 1 5 5
Other 1 19 19
Total Work Load:
125
Total Work Load/25(h):
5
ECTS Credit of the Course:
5
CONCLUDING REMARKS BY THE COURSE LECTURER

What students learn on this subject is the part that understanding concepts is more important than memorizing code. Even though they should invest themselves in developing problem-solving skills and thinking algorithmically, they should not forget the syntax of the language that they are using, which is equally important, because without it, they cannot develop working apps.