- Run-time Analysis
- Algorithms
- Hash Table
- Trees (Data Structures)
- Object-Oriented Programming (OOP)
Accelerated Computer Science Fundamentals Specialization
Data Structures and Algorithms in C++. Learn fundamentals of computer science while implementing efficient data structures in C++.
Offered By
What you will learn
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.
Skills you will gain
About this Specialization
Applied Learning Project
Students will solve weekly “challenge problems” by implementing fragments of C++ code in a web-based interface. Each course also features two longer-format coding projects where students will follow instructions to complete a C++ program that performs tasks such as editing images, efficiently manipulating data structures, or solving a graph search problem.
Learners should be able to write a program in a programming language (e.g. Python), and preferably have taken an introductory programming course.
Learners should be able to write a program in a programming language (e.g. Python), and preferably have taken an introductory programming course.
How the Specialization Works
Take Courses
A Coursera Specialization is a series of courses that helps you master a skill. To begin, enroll in the Specialization directly, or review its courses and choose the one you'd like to start with. When you subscribe to a course that is part of a Specialization, you’re automatically subscribed to the full Specialization. It’s okay to complete just one course — you can pause your learning or end your subscription at any time. Visit your learner dashboard to track your course enrollments and your progress.
Hands-on Project
Every Specialization includes a hands-on project. You'll need to successfully finish the project(s) to complete the Specialization and earn your certificate. If the Specialization includes a separate course for the hands-on project, you'll need to finish each of the other courses before you can start it.
Earn a Certificate
When you finish every course and complete the hands-on project, you'll earn a Certificate that you can share with prospective employers and your professional network.
There are 3 Courses in this Specialization
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.
Offered by
University of Illinois at Urbana-Champaign
The University of Illinois at Urbana-Champaign is a world leader in research, teaching and public engagement, distinguished by the breadth of its programs, broad academic excellence, and internationally renowned faculty and alumni. Illinois serves the world by creating knowledge, preparing students for lives of impact, and finding solutions to critical societal needs.
Frequently Asked Questions
What is the refund policy?
Can I just enroll in a single course?
Is financial aid available?
Can I take the course for free?
Is this course really 100% online? Do I need to attend any classes in person?
Will I earn university credit for completing the Specialization?
What background knowledge is necessary?
Do I need to take the courses in a specific order?
More questions? Visit the Learner Help Center.