Module/Course Title: Data Structures and Algorithms

Module course code

KOMS120202

Student Workload
119 hours

Credits

3 / 4.5 ETCS

Semester

2

Frequency

Even Semester

Duration

16

1

Type of course

Core Study Courses

Contact hours


40 hours of face-to-face (theoretical) class activity

Independent Study


48 hours of independent activity
48 hours of structured activities

Class Size

30

2

Prerequisites for participation (if applicable)

-

3

Learning Outcomes

  1. Students can demonstrate systematic thinking in analyzing and designing software and database solutions
  2. Students can apply effective methods in developing software and databases
  3. Students can create and evaluate software and database solutions
  4. Students can describe array, linked-list, binary-tree, graph, and hash data structures and compare with each other.
  5. Students can construct algorithms for array, linked-list, stack and queue, binary-tree, graph, and hash data structure operations in a programming language.
  6. Students can apply searching and sorting algorithms with a programming language.

4

Subject aims/Content

Along with the increasing number of computing applications, problems related to data structures arise. An understanding of data structures is required for any computer system to be correct and reliable. This course provides an understanding of systematic ways to organize data so it can be used effectively and efficiently. This course focuses on the basic topics of data structures namely array, linked-list, stack, queue, trees, graph, hash table, and algorithms for processing the data structures such as insertion, deletion, traversing, searching, and sorting.

Study Material
  • Lecture Contract
  • Introduction to data structures and algorithms
  • Primitive data types
  • Abstract data type
  • Introduction to Algorithm Complexity with Big-O Notation
  • Arrays and Recursive Algorithms

Pointers

Linked List: Basic Concepts, Insertion, Searching, Deletion

Implementation of Linked List in C++

  • Stack: Pop and Push Operations
  • Queue: Enqueue and Dequeue Operations
  • Binary Tree and Binary Search Tree
  • Binary Search Tree Insertion Operation
  • Binary Search Tree Traversal Operation
  • Binary Search Tree Deletion Operation

Binary Search Tree implementation in C++

Midterm exam

  • Basic Concepts of Graph
  • Graph Representation with Adjecency Matrix
  • Graph Representation with Linked List
  • Depth First Traversal Operation on Graph
  • Breadth First Traversal Operation on Graph
  • Dijkstra's Shortest Path Algorithm

Graph implementation in the C++

  • Bubble Sort
  • Insertion Sort
  • Merge Sort
  • Quick sort
  • Advanced Sorting Algorithm

Implementation of various algorithms in the C++ programming language

  • Basic concepts of Hash Table and Hash Function
  • Open Addressing on Hash
  • Seperate Chaining on Hash
  • Key selection technique for Hash Function

Implementation of Hash Table and Hash Function in C++ programming language

Final exams

5

Teaching methods

Synchronous

Face-to-face lectures, discussions

Asynchronous

The material is delivered through e-learning

 

6

Assesment Methods

Participation, active observation, structured assignments

7

This module/course is used in the following study programme/s as well

Computer Science Study Programme

8

Responsibility for module/course

  • A.A. Gede Yudhi Paramartha, S.Kom., M.Kom.
  • NIDN : 0022068803

9

Other Information

Books:

  1. Adam Drozdek, Data Structures and Algorithms in C++ 4th Edition (main reading)
  2. Mark Allen Weiss, Data Structures and Algorithm Analysis in C++  4th Edition
  3. Thomas H Cormen, Introduction to Algorithms 3rd Edition

Websites:

  1. Data Structures on Geeks for Geeks (https://www.geeksforgeeks.org/data-structures/)
  2. Data Structures and Algorithms Tutorials on TutorialPoint (https://www.tutorialspoint.com/data_structures_algorithms/index.htm)
  3. Several tutorials from freeCodeCamps that can be accessed freely (https://www.freecodecamp.org). It also available in Youtube (https://www.youtube.com/watch?v=8hly31xKli0)

Students are also encouraged to learn C++ through SoloLearn (https://www.sololearn.com/learn/courses/c-plus-plus-introduction)