Lesson 1

Introduction to Data Structure & Algorithm

• Introduction to data structures & algorithm involving problem solving, algorithm concept and data structure concept.

Lesson 2

Introduction to Abstract Data Type and C++

• Abstract data type concept and review C++ programming.

Lesson 3 (Part 1)

Recursive

• How to measure algorithm efficiency and the meaning of “big O notation”
• Problem solving using characteristics using recursive, trace the implementation of recursive function, and write recursive function in solving a problem.

Lesson 3 (Part 2)

Algorithm Efficiency Analysis

• How to measure algorithm efficiency and the meaning of “big O notation”
• Problem solving using characteristics using recursive, trace the implementation of recursive function, and write recursive function in solving a problem.

Lesson 4 (Part 1)

Simple Sort

• The purpose of sorting technique, simple sort techniques in problem solving, divide and conquer sorting technique in problem solving, and how to analyze the efficiency of the sorting technique.

Lesson 4 (Part 2)

Bubble Sort

• Bubble sort activity, implementation, analysis, improved bubble sort and algorithm complexity.

Lesson 4 (Part 3)

Selection Sort

• Selection sort implementation, analysis, issue and algorithm complexity.

Lesson 4 (Part 4)

Insertion Sort

• The insertion sort strategy, implementation, insertion sort best case and worse case, insertion sort analysis and algorithm complexity.

Lesson 5 (Part 1)

Merge Sort

• The merge sort operation, implementation, and merge sort analysis.

Lesson 5 (Part 2)

Quick Sort

• The quick sort operation, implementation, and quick sort analysis.

Lesson 6 (Part 1)

Searching Techniques : Sequential Search

• Searching technique concept and the purpose of searching operation, the implementation of basic searching algorithm for sequential and binary , the efficiency and implementation searching technique in problem solving.

Lesson 6 (Part 2)

Searching Techniques : Binary Search

• Searching technique concept and the purpose of searching operation, the implementation of basic searching algorithm for sequential and binary , the efficiency and implementation searching technique in problem solving.

Lesson 7

Linked List

• The linear list concept using array and linked list, list variation and basic operation, the implementation and operation and program that can implement linked list concept.

Lesson 8

Linked List Implementation

Linked List Continued...

Lesson 9

Stack

• Stack concept and its structure, stack operation, and how to implement stack using array and linked list.

Lesson 10

Stack Application

Stack Continued...

Lesson 11 (Part 1)

Queue

• The queue concept and applications, queue structure and operations that can be done on queue and how to implement queue using array and linked list : linear array, circular array, linear link and circular list.

Lesson 11 (Part 2)

Queue - Linked List Implementation

• The queue concept and applications, queue structure and operations that can be done on queue and how to implement queue using array and linked list : linear array, circular array, linear link and circular list.

Lesson 12

Tree

Tree concept and term related to tree, the characteristics of general tree, binary tree and binary search tree, basic operation of tree, and how to implement and apply tree in problem solving and in programming.

Lesson 13

Binary Search Tree

Tree Continued...