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
# DSAF1501 Introduction to Data Structures Memory Allocation, Linked Allocation, Indexed Allocation, INode DSAF1501.pdf
# DSAF1502 Lists Relation, Operation, Implementation & Memory Requirements DSAF1502.pdf
# DSAF1503 Linked List Structure, Operations, Implementation DSAF1503.pdf
# DSAF1504 Stack Implementation using Link List and Arrays DSAF1504.pdf
# DSAF1505 Stack Application - I Parsing XHTML DSAF1505.pdf
# DSAF1506 Stack Application - II Infix to Postfix - RPN DSAF1506.pdf
# DSAF1507 Stack Application - III Reverse Polish Notation DSAF1507.pdf
# DSAF1508 Queues Implementation using Link List and Arrays DSAF1508.pdf
# DSAF1509 Tree Data Structure Tree Terminologies and Examples DSAF1509.pdf
# DSAF1510 Abstract Tree General Tree - Implementation DSAF1510.pdf
# DSAF1511 Tree Traversals Breadth First, Depth First, Back- Tracking DSAF1511.pdf
# DSAF1512 Binary Trees Implementation of Binary Node Class, Expression Trees DSAF1512.pdf
# DSAF1513 Complete Binary Trees Tree Height, Add Node, Remove Node, Children and Parents DSAF1513.pdf
# DSAF1514 Binary Search Trees BST Implementation, Finding Kth Object DSAF1514.pdf
# DSAF1515 Graph Theory Graph Terminologies and Examples DSAF1515.pdf
# DSAF1516 Graph Data Structure Adjacency Matrix, Sparse Matrix, Adjacency List DSAF1516.pdf
# DSAF1517 Graph Traversals Breadth First, Depth First, Traversal Applications DSAF1517.pdf
# DSAF1518 Connectedness Determining Connections, Connected Components DSAF1518.pdf
# DSAF1519 Path Lengths Single Source Unweighted Path Lengths DSAF1519.pdf
# DSAF1520 Bipartite Graph Identifying Bipartite Graphs DSAF1520.pdf
# DSAF1521 Minimum Spanning Tree Spanning Trees on Weighted Graphs, Spanning Forests DSAF1521.pdf
# DSAF1522 Prims Algorithm To find Minimum Spanning Tree DSAF1522.pdf
# DSAF1523 Kruskals Algorithm To find Minimum Spanning Tree DSAF1523.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%