We may earn an affiliate commission when you visit our partners.
Wade Fagen-Ulmschneider

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.

Enroll now

What's inside

Syllabus

Orientation; Writing a C++ Program
Understanding the C++ Memory Model
Developing C++ Classes
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Explores data structures and algorithms, which is a core topic in computer science
Beginners to C++ can start here as the course presumes no prior knowledge required
Builds a strong foundation for intermediate learners in C++
Taught by Wade Fagen-Ulmschneider, who are experts in the field of computer programming

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Accelerated c++ data structures fundamentals

Learners say this course provides a challenging but valuable introduction to object-oriented data structures in C++. It is often described as fast-paced, making it particularly suitable for students with some existing programming background, though complete beginners may struggle. Many reviewers highlight the programming assignments as the most beneficial part, noting they are difficult but effectively reinforce the concepts taught in the lectures, which are generally seen as clear and high-quality. A frequently mentioned hurdle is the process of setting up the development environment. While the course covers core topics, some students feel it doesn't go into enough depth on certain subjects, necessitating additional resources for a complete understanding.
Lectures are mostly clear and well-explained.
"The lectures explain complex topics clearly and build a good foundation."
"The professor's explanations are easy to follow for the most part."
"I found the video lectures to be very informative and well-structured."
"Some parts of the lectures could go into more detail, but they are generally good."
Assignments are hard but essential for learning.
"The assignments are challenging but incredibly helpful for solidifying the concepts."
"Putting what you learn into practice through the labs is where the real learning happens."
"Be prepared to spend significant time on the programming assignments; they are not easy but are very rewarding."
"Working through the coding assignments was crucial for my understanding."
Covers breadth but sometimes lacks depth.
"The course provides a good overview but sometimes skims over advanced details."
"I needed to consult outside resources and documentation for a deeper understanding of some topics."
"It feels like a solid introduction, but not exhaustive coverage of data structures in C++."
"Could benefit from more in-depth explanations on certain complex data structures or algorithms."
Setting up the dev environment can be tricky.
"Getting the C++ development environment configured correctly was frustrating and time-consuming."
"Be warned: setting up your compiler and tools can be a significant hurdle before you even start coding."
"Instructions for setting up the necessary software weren't as clear as they could be."
"Once the environment was set up, everything was smoother, but that first step was tough."
Course pace is high; challenging for beginners.
"This course is fast-paced and demands dedication, especially if you're not already familiar with C++."
"If you're a complete beginner to programming or C++, you will likely find this course very difficult and overwhelming."
"The 'Accelerated' in the title is accurate; it moves quickly and expects you to keep up."
"Found the course manageable because I had prior programming experience, but still challenging."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Object-Oriented Data Structures in C++ with these activities:
Review C++ syntax and data structures
Review the basics of C++ syntax and data structures to strengthen your foundation and prepare for the course.
Browse courses on C++ Syntax
Show steps
  • Read through the official C++ documentation
  • Go through online tutorials and examples
  • Practice writing simple C++ programs
  • Review your notes from previous courses or textbooks on C++
Follow online tutorials and video lectures
Supplement your learning by following online tutorials and video lectures to reinforce concepts covered in the course and explore additional topics.
Show steps
  • Find reputable online resources and tutorials
  • Set aside time each week to watch videos or read tutorials
  • Take notes and practice implementing the concepts covered
Create a C++ resource collection
Compile a collection of useful resources, including tutorials, documentation, and code examples, to create a comprehensive reference for C++ development.
Browse courses on Compilation
Show steps
  • Identify and gather relevant resources
  • Organize the resources into a structured format
  • Share your resource collection with others
Four other activities
Expand to see all activities and additional details
Show all seven activities
Read 'Effective C++' by Scott Meyers
Deepen your understanding of C++ best practices and gain insights into effective software development by reading this highly recommended book.
Show steps
  • Purchase or borrow the book
  • Read through the book and take notes
  • Apply the concepts learned in your own C++ projects
Solve coding challenges and practice problems
Regularly practice solving coding challenges and practice problems to improve your problem-solving skills and deepen your understanding of C++ concepts.
Browse courses on Coding Challenges
Show steps
  • Find online coding challenges and practice platforms
  • Set aside time each week to work on practice problems
  • Review solutions and learn from your mistakes
Mentor a junior C++ developer
Share your knowledge and expertise by mentoring a junior C++ developer, fostering their growth and enhancing your own understanding through teaching.
Browse courses on Mentoring
Show steps
  • Identify a junior developer who needs guidance
  • Set up regular meetings or communication channels
  • Provide support and guidance on C++ concepts and best practices
  • Review their code and provide constructive feedback
Contribute to open-source C++ projects
Apply your C++ skills and contribute to the larger open-source community by actively participating in C++ projects.
Browse courses on Open-Source
Show steps
  • Find open-source C++ projects that align with your interests
  • Review the project documentation and codebase
  • Identify areas where you can contribute
  • Submit pull requests with your contributions

Career center

Learners who complete Object-Oriented Data Structures in C++ will develop knowledge and skills that may be useful to these careers:
Software Developer
Software Developers write, maintain, and test software applications that run on various devices, such as personal computers, mobile phones, and embedded systems. This course may be useful for learning the C++ programming language, which is often used in developing software applications. The course also teaches learners how to implement data structures as C++ classes, which is a fundamental skill for Software Developers.
Software Engineer
Software Engineers design, develop, test, and maintain software systems. This course may be useful for learning the C++ programming language, which is often used in developing software systems. The course also teaches learners how to implement data structures as C++ classes, which is a fundamental skill for Software Engineers.
Computer Programmer
Computer Programmers write, modify, and test code that allows computer applications and software programs to run. This course may be useful for learning the C++ programming language, which is often used in developing computer applications and software programs. The course also teaches learners how to implement data structures as C++ classes, which is a fundamental skill for Computer Programmers.
Data Scientist
Data Scientists use scientific methods, processes, algorithms, and systems to extract knowledge and insights from data in various forms, both structured and unstructured. This course may be useful for learning the C++ programming language, which is often used in developing data science applications. The course also teaches learners how to implement data structures as C++ classes, which is a fundamental skill for Data Scientists.
Data Analyst
Data Analysts collect, clean, and analyze data to identify trends and patterns. This course may be useful for learning the C++ programming language, which is often used in developing data analysis applications. The course also teaches learners how to implement data structures as C++ classes, which is a fundamental skill for Data Analysts.
Web Developer
Web Developers design and develop websites and web applications. This course may be useful for learning the C++ programming language, which is sometimes used in developing web applications. The course also teaches learners how to implement data structures as C++ classes, which is a fundamental skill for Web Developers.
Database Administrator
Database Administrators design, implement, and maintain databases. This course may be useful for learning the C++ programming language, which is sometimes used in developing database applications. The course also teaches learners how to implement data structures as C++ classes, which is a fundamental skill for Database Administrators.
Computer Systems Analyst
Computer Systems Analysts design, implement, and maintain computer systems. This course may be useful for learning the C++ programming language, which is sometimes used in developing computer systems. The course also teaches learners how to implement data structures as C++ classes, which is a fundamental skill for Computer Systems Analysts.
Information Security Analyst
Information Security Analysts plan and implement security measures to protect information systems and networks from unauthorized access, use, disclosure, disruption, modification, or destruction. This course may be useful for learning the C++ programming language, which is sometimes used in developing information security applications. The course also teaches learners how to implement data structures as C++ classes, which is a fundamental skill for Information Security Analysts.
Network Administrator
Network Administrators design, implement, and maintain computer networks. This course may be useful for learning the C++ programming language, which is sometimes used in developing network administration tools. The course also teaches learners how to implement data structures as C++ classes, which is a fundamental skill for Network Administrators.
Computer Hardware Engineer
Computer Hardware Engineers design, develop, and test computer hardware. This course may be useful for learning the C++ programming language, which is sometimes used in developing computer hardware drivers. The course also teaches learners how to implement data structures as C++ classes, which is a fundamental skill for Computer Hardware Engineers.
Computer Support Specialist
Computer Support Specialists provide technical support to computer users. This course may be useful for learning the C++ programming language, which is sometimes used in developing computer support tools. The course also teaches learners how to implement data structures as C++ classes, which is a fundamental skill for Computer Support Specialists.
Computer and Information Systems Manager
Computer and Information Systems Managers plan, direct, and coordinate activities in computer and information systems departments. This course may be useful for learning the C++ programming language, which is sometimes used in developing computer systems. The course also teaches learners how to implement data structures as C++ classes, which is a fundamental skill for Computer and Information Systems Managers.
Information Technology Project Manager
Information Technology Project Managers plan, direct, and coordinate information technology projects. This course may be useful for learning the C++ programming language, which is sometimes used in developing information technology projects. The course also teaches learners how to implement data structures as C++ classes, which is a fundamental skill for Information Technology Project Managers.
Database Manager
Database Managers plan, direct, and coordinate activities in database administration departments. This course may be useful for learning the C++ programming language, which is sometimes used in developing database applications. The course also teaches learners how to implement data structures as C++ classes, which is a fundamental skill for Database Managers.

Reading list

We've selected ten books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Object-Oriented Data Structures in C++.
This classic book is commonly used to teach C++ at academic institutions. It provides good insight into the language and constructs as they were originally conceived and how they are implemented.
By the author of C++ introduces you to object oriented programming, the C++ language, and the standard template library.
Teaches the general principles of C++ and includes an introduction to its standard library. It is commonly used as a textbook or reference book.
Is suitable for developers with at least some programming experience as it covers C++ in detail. It provides valuable insight into the complexities of modern C++.
This advanced-level book is suitable for developers with significant experience. It explores modern C++ concepts and provides a deep dive into the language.
Suitable as a reference textbook, this book introduces you to C++ using practical examples. It good book for readers with some programming experience.
Collection of essays on the topic of exception handling in C++. It is not a comprehensive guide to C++, but it provides a deep dive into a critical aspect of the language.
Can be useful if you plan to work with concurrency in C++. It is commonly used by professional developers or at the post-graduate level.
This is an exhaustive reference book on C++ templates. It is more useful as a reference to look up specific things, rather than as a cover-to-cover read.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser