CS 213 - Data Structure and Algorithms: Using C++

Credit Hours: 3 + 1 | Course Level: Undergrad
Course Synopsis

A good algorithm usually comes together with a set of good data structures that allow the algorithm to manipulate the data efficiently. In this course, we consider the common data structures that are used in various computational problems. You will learn how these data structures are implemented in C++ programming language and will practice implementing them in programming assignments. This will help you to understand what is going on inside a particular built-in implementation of a data structure and what to expect from it. You will also learn typical use cases for these data structures.

Course Learning Outcomes

  • Solve various computational problems and implement algorithmic coding problems in a C++
  • Develop and implement multiple tests to check its correctness and running time
  • Truly understand how the algorithms work and to master the art of programming
  • Analyze both road networks and social networks and learn how to compute the shortest route

Course Aims

  • Introduction to Algorithms, Solve Challenging Problems, Big-O Notation
  • Basic Data Structure: Linked List, Stacks, Queues, Trees, Binary Trees
  • Advance Data Structures: Priority Queues, Disjoint Sets, Hash Tables, BST
  • Graph Algorithms: Directed Acyclic Graph, Paths in Graphs, Minimum Spanning Tree

Reference

Data Structure and Algorithm Analysis (3RD Edition)
By: Mark Allen Wiess

Marks Distribution
Lectures
Lecture ID Topic Description Notes
# DSAF1601 Introduction to Data Structures Memory Allocation, Linked Allocation, Indexed Allocation, INode DSAF1601.pdf
# DSAF1602 Lists Relation, Operation, Implementation & Memory Requirements DSAF1602.pdf
# DSAF1603 Linked List Structure, Operations, Implementation DSAF1603.pdf
# DSAF1604 Stack Stack Implementation via Linked List & Arrays DSAF1604.pdf
# DSAF1605 Stack Application: Parsing XHTML Parsing XHTML using Stack DSAF1605.pdf
# DSAF1606 Stack Application: Infix to Postfix Infix, Postfix, Prefix Notations, Infix to Postfix Algorithm DSAF1606.pdf
# DSAF1607 Stack Application: Reverse Polish Notation Reverse Polish Notation Solution Algorithm DSAF1607.pdf
# DSAF1608 Queues Queue Implementation via Linked List & Arrays DSAF1608.pdf
# DSAF1609 Deque Abstract Deque, STL, Stepping though Deques, Iterators DSAF1609.pdf
# DSAF1610 The Tree Data Structure Tree Terminology, Tree Example: XHTML and CSS, MathML DSAF1610.pdf
# DSAF1611 Abstract Trees Tree Implementation DSAF1611.pdf
# DSAF1612 Tree Traversals Breadth First Search, Back Tracking, Depth First Search - Pre Order & Post Order DSAF1612.pdf
# DSAF1613 Binary Trees Full vs Complete Binary Tree, InOrder, PreOrder, PostOrder, Level Order, Euler Tour Traversals DSAF1613.pdf
# DSAF1614 Complete Binary Tree Recursive Algorithm, Array Storage, Finding Children, Finding Parent DSAF1614.pdf
# DSAF1615 N-ary Trees Ternary Trees, Quaternary Trees, TRIE DSAF1615.pdf
# DSAF1616 Balanced Trees Height Balancing, Null-Path-Length Balancing, Weight Balancing DSAF1616.pdf
# DSAF1617 Binary Search Trees BST Examples, BST Implementation, Finding Kth Object DSAF1617.pdf
# DSAF1618 AVL Trees AVL Trees, Height of an AVL Tree, Maintaining Balance DSAF1618.pdf
# DSAF1619 Graph Theory Undirected Graph, Degree, Sub Graphs, Path, Weighted Graph, Directed Graph, DAG DSAF1619.pdf
# DSAF1620 Graph Data Structures Adjacency Matrix, Sparse Matrix DSAF1620.pdf
# DSAF1621 Graph Traversals Breadth First Traversal, Depth First Traversal DSAF1621.pdf
# DSAF1622 Connectedness Determining Connections, Connected Components DSAF1622.pdf
# DSAF1623 Single Source Un-weighted Path Length Determine Distances of all nodes from a single node DSAF1623.pdf
# DSAF1624 Identifying Bipartite Graph Bipartite Graph, Algorithm to find Bipartite Graphs DSAF1624.pdf
# DSAF1625 Minimum Spanning Tree Minimum Spanning Trees and Its Applications DSAF1625.pdf
# DSAF1626 Prims Algorithm Prims Algorithms Strategy and Execution DSAF1626.pdf
# DSAF1627 Kruskals Algorithm Kruskals Algorithm for Minimum Spanning Tree DSAF1627.pdf
SKILLS
  • Research & Development 90%
  • Project Management 80%
  • Client Communication 80%
  • Team Management 85%
  • Microsoft Project and Visio 80%
  • GUI Design 90%
  • Web & Mobile Application 95%
  • CMS Design & Development 85%
PROGRAMMING SKILLS
  • HTML 5 90%
  • CSS 3.0 90%
  • PHP / MySQL 90%
  • JS / JQuery 85%
  • JAVA 60%
  • C# / ASP.NET 50%
  • SQL 95%
  • C++ 90%
SEMANTIC WEB
  • XML / XML Schema 90%
  • XPath / XQuery 90%
  • RDF / RDFs 90%
  • SPARQL 80%
  • OWL 80%