CS 213 - Data Structure and Algorithms: Using Programming Language 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

Adapted From: UCSD
By: University of California, San Diego

Marks Distribution
Lectures
Lecture ID Topic Description Notes
# DSAF1701 Introduction to Course Data Structures & Algorithms DSAF1701.pdf
# DSAF1702 Solve a Challenging Code Problem Maximum Pairwise Product DSAF1702.pdf
# DSAF1703 Why Study Algorithms? An Introduction DSAF1703.pdf
# DSAF1704 Fibonacci Series Algorithm DSAF1704.pdf
# DSAF1705 Big-O Notation Computing Runtimes DSAF1705.pdf
# DSAF1706 Basic Data Structure Arrays, Multi-Dimensional Arrays DSAF1706.pdf
# DSAF1707 Linked List Singly Linked List & Doubly Linked List DSAF1707.pdf
# DSAF1708 Stacks Implementation & Applications DSAF1708.pdf
# DSAF1709 Stack Application Reverse Polish Notation DSAF1709.pdf
# DSAF1710 Queues Implementation & Applications DSAF1710.pdf
# DSAF1711 Trees Terminology & Applications DSAF1711.pdf
# DSAF1712 Tree Traversal Breadth-First & Depth-First Traversals DSAF1712.pdf
# DSAF1713 Binary Trees In-Order, Pre-Order & Post-Order Traversals DSAF1713.pdf
# DSAF1714 Priority Queues Naïve implementation DSAF1714.pdf
# DSAF1715 Binary Heaps Priority Queues DSAF1715.pdf
# DSAF1716 Complete Binary Trees How to keep a tree shallow? DSAF1716.pdf
# DSAF1717 Disjoint Sets Naïve Implementation DSAF1717.pdf
# DSAF1718 Disjoint Sets Efficient Implementation - Forest DSAF1718.pdf
# DSAF1719 Hash Tables Introduction DSAF1719.pdf
# DSAF1720 Hash Tables Hash Functions DSAF1720.pdf
# DSAF1721 Binary Search Trees Introduction DSAF1721.pdf
# DSAF1722 Binary Search Trees Basic Operations DSAF1722.pdf
# DSAF1723 Decomposition of Graphs Representing and Exploring Graphs DSAF1723.pdf
# DSAF1724 Decomposition of Graphs Connectivity DSAF1724.pdf
# DSAF1725 Directed Acyclic Graph Topological Sorting DSAF1725.pdf
# DSAF1726 Directed Graph Strongly Connected Components DSAF1726.pdf
# DSAF1727 Paths in Graph Most Direct Route - BFS DSAF1727.pdf
# DSAF1728 Paths in Graph Fastest Route - Dijkstra Algorithm DSAF1728.pdf
# DSAF1729 Minimum Spanning Tree Kruskal & Prim Algorithms DSAF1729.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%