Official government website of the Government of Kingdom of Saudi Arabia
Link to official Saudi websites end with edu.sa

All links to official educational websites in the Kingdom of Saudi Arabia end with sch.sa or edu.sa

Government websites use the HTTPS protocol for encryption and security.

Secure websites in the Kingdom of Saudi Arabia use the HTTPS protocol for encryption.

Registered with the Digital Government Authority under number:

20250417892

Data Structures & Algorithms with Java

CS2105
3 hours English

Data Structures & Algorithms with Java

Data Structure and Algorithms with Java
1 Introduction to Data Structures: / Overview of data structures and algorithms. / Python’s built-in data structures (lists, tuples, dictionaries). / Review Arrays (static vs dynamic arrays). / Numeral algorithms: basic arithmetic and modular arithmetic. / Lab: / Exercises in numeral algorithms (e.g., computing the average of a list of numbers, finding the minimum, maximum, and mode in a list, approximating the square root of a number, or finding the greatest common divisor GCD). / Implement linear search in Python
2 Runtime and Memory Efficiency: / Introduction to time complexity and Big-O notation. / Revisiting runtime and memory efficiency for all covered algorithms. / Trade-offs between time and space in practical implementations. / Introduction to amortized analysis for data structures (dynamic arrays, Fibonacci tree). / Lab: / Analyze the efficiency of various data structure implementations. / Optimize a given algorithm for both runtime and memory. / Comparison of sorting algorithms (runtime, memory efficiency)
3 Linked Lists: / Linked lists: singly, doubly, and circular linked lists. / Comparison of arrays and linked lists. / Operations: insertion, deletion, traversal. / Lab: / Implement linked lists in Python. / Solve problems like reversing a linked list and detecting cycles
4 Stacks and Queues: / Stack operations and applications: expression evaluation, function call stacks. / Queue types: linear, circular, and double-ended queues (deque). / Applications in scheduling and buffering. / Lab: / Implement stacks and queues in Python. / Solve real-world scenarios like balanced parentheses and task scheduling
5 Hash Tables: / Hash functions and their properties. / Collision resolution strategies: chaining, open addressing. / Efficiency of hash tables in searching and insertion. / Lab: / Implement a hash table from scratch in Python. / Solve problems like word frequency counting and anagrams detection
6 Trees: / Binary trees: structure and traversal techniques. / Binary Search Trees (BST): insertion, deletion, and search. / Balanced trees: AVL trees, and rotations. / Heaps: min-heap and max-heap, Fibonacci Trees. / Lab: / Implement binary trees and BSTs in Python: (discuss result with sorted and unsorted data). / Implement heaps and perform heap sort in Python. / Solve problems like finding the k largest/smallest elements
7 Recursion and String-Matching Algorithms: / Recursion: / Basics of recursion. / Divide and Conquer Algorithms / Lab: / Solve problems using recursion (e.g., Fibonacci, factorial)
8 Sorting and Searching Algorithms: / Basics of sorting algorithms: define internal/external sort and in-place sort. / Sorting Algorithms Examples: (quicksort, heapsort, merge sort, selection sort, insertion sort algorithms). / Lab: / Implement basic sorting algorithms in Python. / Solve real-world sorting problems
9 Fundamental Graph Algorithms: / Fundamental definitions and applications, bipartite graphs, strongly connected components, and topological sorting. / Graph representation: adjacency matrix and adjacency list. / Graph traversal: Breadth-First Search (BFS), and Depth-First Search (DFS). / Lab: / Implement BFS and DFS in Python. / Solve problems like detecting connected components and cycles
1.1 Mapped to: K1

Explain the fundamentals of algorithms analysis

Teaching Strategy Lectures, discussions, lab tasks and assignments
Assessment Methods Quizzes, lab exercises, assignments, and exams
1.2 Mapped to: K1

Acquire the key concepts of data structures

Teaching Strategy Lectures, lab tasks and assignments
Assessment Methods Quizzes, lab exercises, assignments, and exams
2.1 Mapped to: S2

Demonstrate fundamental knowledge and understanding of data structure and its implementation.

Teaching Strategy Lectures, labs, exercises
Assessment Methods Lab exercises and assignments, and exams
2.2 Mapped to: S2

Design and implement and choose the most appropriate data structure for a certain problem.

Teaching Strategy Lectures, labs, exercises
Assessment Methods Lab exercises and assignments, and exams
2.3 Mapped to: S1, S2

Assess and select an algorithm and justify the selection, and then apply the algorithm to a certain problem.

Teaching Strategy Lectures, labs, exercises
Assessment Methods Lab exercises and assignments, and exams