Lecture Notes and Semester Plan (2023-2024 Spring)

These notes and source codes are just to guide you and intended to be support materials.  Your primary responsible is to attend lectures and labs.  Throughout the semester, I will not use PowerPoint materials; the classes will be conducted using a program developed on the whiteboard, accompanied by discussions throughout the lessons.

 
 

Data Structures and algorithms will be discussed and developed during lecture and lab hours.

Lab Works & Source Codes (https://webonline.cankaya.edu.tr/)

Week 0:

Reading:
    Streams (Input/Output in C++) (PPT)
    Error Handling (Exceptions in C++)

Week Subject
Week 1: Introduction to Data Structues
Week 2: Sequence Containers (array,vector and list). Read this before lecture.
Week 3

Linked Lists, Node Class dynamic memory management.

  • Nice web site that clearly explains C++ STL Iterators. 
Week 4 Stacks & Its applications
Week 5

Stack Implementation in C++ (array based, vector based, linked list based) & Its applications

Week 6 Queue
7 Queue Applications and Linked Implementation of Queue
8 Recursion (Introduction and C-Type String Related Recursive Examples)
9-10 Non Linear Data Structures (Binary Tree, Tree Traversal)
11-12 Binary Search Tree (pptx)
13 Heap (Priority Queue) and Huffman Compression Algorithm

 

 

 

 

 

 

 

 

 

Old Content (Before 2023-2024)

  1. Arrays(Arrays), String and Vectors in C++ , Strings and Vectors
  2. File Input/Output in C++ (PPT)

  3. Pointers and Dynamic Arrays (PPT)

  4. Lists and Sequences
    • Static Array Based
    • Dynamic Array Based
    • Linked Structures
  5. Stack ADT
    • Notes on Stack impl.
    • Stack Applications
  6. Queue
    • Notes on Queue impl.
    • Queue Applications & Implementations
  7. Recursion
    (c++ codes developed during lecture hours)
  8. Binary Trees
    Tree Node Defintion
    Traversal Algorithms
    Recursive Algoritms on Binary Trees (.cpp)
  9. Binary Search Trees
    BST Insert Algo(.cpp)
    Level Order Taversal (Non Recursive (Iterative) algorithms on Binary Trees) (.cpp)
  10. Additional and Important Notes on Binary Trees and Binary Search Trees
    Binary Trees
    Binary Search Trees
  11. Introduction to Time Complexities: Big O notation. (ppt) ( will not be asked in the final exam, just read and try to understand)
    1. Big Oh Notation Cheat Sheet
  12. Priority Queue - Min/Max Heap - Heap Sort
  13. Huffman Coding: An Application of Binary Trees and Priority
  14. Searching and Sorting
  • Quick Sort
  • Merge Sort
  • Insertion, Selection, Bubble Sort Algorithms

Please take your time and read these articles:

  1. Programming Style (from wikipedia)
  2. Abstraction in Computer Science
  3. https://en.wikipedia.org/wiki/C%2B%2B#Philosophy