Design and implement an object-oriented program in the C++ language, including defining classes that encapsulate data structures and algorithms.
Select and implement appropriate data structures that best utilize resources to solve a computational problem.
Analyze the running time and space needs of an algorithm, asymptotically to ensure it is appropriate at scale, including for big data.
Prepare for advanced courses in CS with the foundational knowledge of object data structures needed to implement and call advanced library functions.
Topics covered by this Specialization include basic object-oriented programming, the analysis of asymptotic algorithmic run times, and the implementation of basic data structures including arrays, hash tables, linked lists, trees, heaps and graphs, as well as algorithms for traversals, rebalancing and shortest paths.
This Specialization sequence is designed to help prospective applicants to the flexible and affordable Online Master of Computer Science (MCS) and MCS in Data Science prepare for the Online MCS Entrance Exam. The Online MCS Entrance Exam allows applicants who do not have graded and transcripted prerequisite CS coursework in the areas of data structures, algorithms, and object-oriented programming to strengthen their applications for admission. Learn more about the Online MCS Entrance Exam.
Object-Oriented Data Structures in C++
This course teaches learners how to write a program in the C++ language, including how to set up a development environment for writing and debugging C++ code and how to implement data structures as C++ classes. It is the first course in the Accelerated CS Fundamentals specialization, and subsequent courses in this specialization will be using C++ as the language for implementing the data structures covered in class.
Ordered Data Structures
In this course, you will learn new data structures for efficiently storing and retrieving data that is structured in an ordered sequence. Such data includes an alphabetical list of names, a family tree, a calendar of events or an inventory organized by part numbers. The specific data structures covered by this course include arrays, linked lists, queues, stacks, trees, binary trees, AVL trees, B-trees and heaps. This course also shows, through algorithm complexity analysis, how these structures enable the fastest algorithms to search and sort data.
Unordered Data Structures
The Unordered Data Structures course covers the data structures and algorithms needed to implement hash tables, disjoint sets and graphs. These fundamental data structures are useful for unordered data. For example, a hash table provides immediate access to data indexed by an arbitrary key value, that could be a number (such as a memory address for cached memory), a URL (such as for a web cache) or a dictionary. Graphs are used to represent relationships between items, and this course covers several different data structures for representing graphs and several different algorithms for traversing graphs, including finding the shortest route from one node to another node. These graph algorithms will also depend on another concept called disjoint sets, so this course will also cover its data structure and associated algorithms.