Home Syllabus Lecture lesson Assignment Lab Example Reference MyLS

Weekly lessons

Lesson 1. Introduction to C

1.1 Introduction: background to C
1.2 Compiling and program structure
1.3 Data types and variables
1.4 Operations and expressions
1.5 Flow controls
1.6 Functions

Lesson 2. C Features - Pointers and Arrays

2.1 Pointers
2.2 Arrays
2.3 Multi-dimensional arrays
2.4 Array data structures for applications

Lesson 3. C Advances

3.1 Strings
3.2 Extended data types built by struct, union, and enum
3.3 File I/O

Lesson 4. Introduction to Data Structure and Algorithm Designs

4.1 Introduction to proof by induction
4.2 Big-O notations
4.3 Principles of data structure design
4.4 Introduction to algorithm design and analysis
4.5 Examples of data structures and algorithms

Lesson 5. Linked Lists

5.1 Introduction to linked lists
5.2 Singly linked lists
5.3 Other linked lists

Lesson 6. Queues and Stacks

6.1 Queues
6.2 Stacks
6.3 Infix and postfix expressions
6.4 Function call stack and recursive functions

Lesson 7. Trees

7.1 Concepts of trees
7.2 Tree operations
7.3 Application trees

Lesson 8. Binary Search Trees

8.1 Concepts of binary search trees
8.2 AVL trees
8.3 Red black trees
8.4 Splay trees
8.5 Multi-way search trees

Lesson 9. Hash Tables

9.1 Concepts of hash tables
9.2 Hash table operations and collision handling
9.3 More hash function and collision handling methods

Lesson 10. Heaps

10.1 Concept of heaps
10.2 Binary heaps
10.3 Binomial heaps
10.4 Fibonacci heaps

Lesson 11. Graphs

11.1 Concepts of graphs
11.2 Graph representations
11.3 Graph operations

Lesson 12. Graph Problems and Algorithms

12.1 Minimum spanning tree problem and Kruskal’s algorithm
12.2 Prim’s algorithm for MST problem
12.3 Shortest path problems and Dijkstra’s algorithm