We may earn an affiliate commission when you visit our partners.
Course image
Ira Pohl

This course is for experienced C programmers who want to program in C++. The examples and exercises require a basic understanding of algorithms and object-oriented software.

Enroll now

What's inside

Syllabus

STL and the game of Hex
This module looks at the architecture of the Standard Template Library. It is especially important to understand how iterators are used to access container to produce highly efficient generic algorithms. The module also includes the important new style of function object—the lambda expression.
Read more
Hex as a graph and Inheritance
This module shows how Hex can be played as a game on a graph. This involves its representation as an undirected graph in C++. The module explores the inheritance logic and syntax of C++. A principal example is the base class student and a derived class grad_student.
Hex and the use of AI and C++ Move semantics
This module explains Min-Max and the Alpha-Beta algorithm for game playing. Its programming topics include C++ 11 Move semantics and a detailed example of referential garbage collection.
Monte Carlo Hex Program, Further advanced C++ Topics and Patterns
This module shows how to use Monte Carlo evaluation in complex games such as Hex and Go. This had led top championship level play in both these games. The module discusses C++ assertions and exceptions for error handling and the new C++ 11 feature static asserts. Finally, the last part of the module introduces the idea of “Design Pattern”, a feature of modern OO programming.
Final Exam
This module contains three practice exams (which you can take as many times as you'd like) and the final exam, which is worth X% of your grade in this course.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Provides a comprehensive study of C++ for experienced C programmers
Builds on learners' existing foundation in algorithms and object-oriented software
Introduces advanced C++ topics such as Move semantics and static asserts
Leverages the Standard Template Library (STL) to develop highly efficient generic algorithms
Incorporates real-world examples from the game of Hex to demonstrate C++ concepts
Employs AI techniques, such as Min-Max and Alpha-Beta for game playing

Save this course

Save C++ For C Programmers, Part B to your list so you can find it easily later:
Save

Reviews summary

Well-received c++ transition course

Learners say this is a highly-rated, well-received course for learning C++ after having learned C. Students say this course is a great intro to C++, covers advanced concepts clearly, and provides a solid foundation. Reviewers appreciate the engaging assignments and find the instructor to be effective. Overall, learners recommend this course.
The advanced concepts of C++ are well covered
"Very deep concepts were taught in most simplest way"
"Excellent course for transitioning from C to C++. Challenging and fun assignments too"
"Very informative course. Helps a lot to learn important c++ concepts, c++11 features and much more stuff"
Students find instructor to be an effective, helpful.
"Best courses for C++ Knowledge"
"Very Helpful And Nice explanation by Ira Pohl Sir!!"
"It's wonderful platform to learn. highly recommended"
"So help full for our generation"
Learners enjoy engaging, challenging assignments
"nice"
"good"
"Very well structured"
"helped me to learn c++ programming"
"Excellent and exciting course.​"
"Excellent Teacher,though I do recommend watching the videos at 1.5X."
"Great here you will learn classes object polymorphism inheritence and Scope"
Peer grading can be inconsistent and may not reflect the quality of your work
"It would be preferable to have an automated grading like the Algorithm course by Robert Sedgewick"
Students recommend having a solid C++ foundation prior to taking this course
"There is a lot of prerequisite for this course. "
"No better than the first course, yet with less peer student studying at the same time (wait a long time before homework reviewed)"

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 C++ For C Programmers, Part B with these activities:
Organize and review course materials
Stay organized and improve your understanding by compiling and reviewing course materials regularly, ensuring you have a comprehensive grasp of the concepts covered.
Show steps
  • Create a system for organizing notes, assignments, quizzes, and exams
  • Review materials periodically, identifying areas that need further attention
Review C++ basics
Review basic C++ concepts such as variables, data types, operators, and control flow to ensure a solid foundation.
Show steps
  • Revisit a beginner-level C++ tutorial or reference guide
  • Solve simple coding challenges or practice problems to test understanding
Solve coding exercises on STL
Strengthen your understanding of the Standard Template Library by applying it to coding exercises, improving your problem-solving skills.
Browse courses on STL
Show steps
  • Find online coding platforms or resources with STL-based exercises
  • Implement solutions to exercises, focusing on using appropriate STL containers and algorithms
  • Review solutions and identify areas for improvement
Four other activities
Expand to see all activities and additional details
Show all seven activities
Read 'Effective C++' by Scott Meyers
Enhance your understanding of C++ best practices and idioms by reading a respected book that provides in-depth insights into effective C++ programming.
Show steps
  • Obtain a copy of the book
  • Read and study the book, paying attention to the author's insights and recommendations
Collaborate on a Hex game project
Work with peers to develop a Hex game in C++, fostering collaboration and enhancing your understanding of game design and implementation.
Browse courses on Hex
Show steps
  • Form a small team with other students
  • Design the game logic and user interface
  • Implement the game functionality using C++
  • Test and refine the game
Explore C++ advanced topics
Delve deeper into advanced C++ concepts such as move semantics, lambda expressions, and design patterns to broaden your knowledge and enhance your coding abilities.
Show steps
  • Identify specific advanced topics to focus on
  • Find high-quality tutorials or online courses covering these topics
  • Follow the tutorials and complete accompanying exercises
Develop a C++ library for Hex
Create a reusable C++ library that encapsulates the logic of the Hex game, demonstrating your proficiency in library design and implementation.
Show steps
  • Define the library's interfaces and functionality
  • Implement the library's core components
  • Write unit tests to ensure the library's correctness
  • Document the library's usage and distribute it

Career center

Learners who complete C++ For C Programmers, Part B will develop knowledge and skills that may be useful to these careers:
Software Developer
Software Developers write, test, and maintain software systems, designing user interfaces and implementing new features based on user needs. The C++ For C Programmers, Part B course explores advanced C++ topics, which may be useful for Software Developers who want to build a foundation in C++ programming. The course covers topics such as the Standard Template Library (STL), inheritance, and move semantics, which are all relevant to software development.
Game Developer
Game Developers design, develop, and maintain video games. The C++ For C Programmers, Part B course may be useful for Game Developers who want to learn more about C++ programming. The course covers topics such as the Standard Template Library (STL), inheritance, and move semantics, which are all relevant to game development.
Computer Programmer
Computer Programmers design, develop, test, and maintain computer software. The C++ For C Programmers, Part B course may be useful for Computer Programmers who want to learn more about C++ programming. The course covers topics such as the Standard Template Library (STL), inheritance, and move semantics, which are all relevant to software development.
Software Engineer
Software Engineers design, develop, and maintain software systems. The C++ For C Programmers, Part B course may be useful for Software Engineers who want to learn more about C++ programming. The course covers topics such as the Standard Template Library (STL), inheritance, and move semantics, which are all relevant to software development.
Application Developer
Application Developers design, develop, and maintain software applications. The C++ For C Programmers, Part B course may be useful for Application Developers who want to learn more about C++ programming. The course covers topics such as the Standard Template Library (STL), inheritance, and move semantics, which are all relevant to software development.
Data Scientist
Data Scientists use data to solve business problems. The C++ For C Programmers, Part B course may be useful for Data Scientists who want to learn more about C++ programming. The course covers topics such as the Standard Template Library (STL), inheritance, and move semantics, which are all relevant to data science.
Machine Learning Engineer
Machine Learning Engineers design and develop machine learning models. The C++ For C Programmers, Part B course may be useful for Machine Learning Engineers who want to learn more about C++ programming. The course covers topics such as the Standard Template Library (STL), inheritance, and move semantics, which are all relevant to machine learning.
Artificial Intelligence Engineer
Artificial Intelligence Engineers design and develop artificial intelligence systems. The C++ For C Programmers, Part B course may be useful for Artificial Intelligence Engineers who want to learn more about C++ programming. The course covers topics such as the Standard Template Library (STL), inheritance, and move semantics, which are all relevant to artificial intelligence.
Financial Analyst
Financial Analysts analyze financial data to make investment recommendations. The C++ For C Programmers, Part B course may be useful for Financial Analysts who want to learn more about C++ programming. The course covers topics such as the Standard Template Library (STL), inheritance, and move semantics, which are all relevant to financial analysis.
IT Manager
IT Managers oversee the planning, implementation, and maintenance of computer systems. The C++ For C Programmers, Part B course may be useful for IT Managers who want to learn more about C++ programming. The course covers topics such as the Standard Template Library (STL), inheritance, and move semantics, which are all relevant to IT management.
Network Administrator
Network Administrators design, develop, and maintain computer networks. The C++ For C Programmers, Part B course may be useful for Network Administrators who want to learn more about C++ programming. The course covers topics such as the Standard Template Library (STL), inheritance, and move semantics, which are all relevant to network administration.
Systems Analyst
Systems Analysts design and develop computer systems. The C++ For C Programmers, Part B course may be useful for Systems Analysts who want to learn more about C++ programming. The course covers topics such as the Standard Template Library (STL), inheritance, and move semantics, which are all relevant to systems analysis.
Database Administrator
Database Administrators design, develop, and maintain databases. The C++ For C Programmers, Part B course may be useful for Database Administrators who want to learn more about C++ programming. The course covers topics such as the Standard Template Library (STL), inheritance, and move semantics, which are all relevant to database administration.
Business Analyst
Business Analysts analyze business data to identify problems and opportunities. The C++ For C Programmers, Part B course may be useful for Business Analysts who want to learn more about C++ programming. The course covers topics such as the Standard Template Library (STL), inheritance, and move semantics, which are all relevant to business analysis.
Quantitative Analyst
Quantitative Analysts use mathematics and statistics to solve financial problems. The C++ For C Programmers, Part B course may be useful for Quantitative Analysts who want to learn more about C++ programming. The course covers topics such as the Standard Template Library (STL), inheritance, and move semantics, which are all relevant to quantitative analysis.

Reading list

We've selected 28 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 C++ For C Programmers, Part B.
Is the definitive reference on the C++ programming language. It is written by the creator of C++ and provides a comprehensive overview of the language.
This classic book by the creator of C++ provides a thorough and authoritative introduction to the language. It valuable reference for anyone who wants to learn or use C++.
This comprehensive guide provides practical advice and best practices for writing efficient, maintainable, and reusable C++ code, making it a valuable resource for C++ programmers of all levels.
Is an excellent reference for C++ programmers of all levels. It covers the basics of the language as well as more advanced topics such as templates and the Standard Template Library (STL).
Collection of best practices for writing efficient, maintainable, and portable C++ code. It covers a wide range of topics, including memory management, object-oriented design, and exception handling.
Provides a comprehensive guide to C++ for C programmers. It covers the basics of C++ as well as more advanced topics such as object-oriented design and templates.
A comprehensive guide to coding standards and best practices in C++. It provides a set of rules and guidelines that can help you write high-quality, maintainable C++ code. valuable resource for anyone who wants to improve their C++ coding skills.
This course provides an in-depth exploration of advanced C++ topics, including templates, lambda expressions, and inheritance, making it a valuable follow-up to Part B of the course.
Provides practical advice and best practices for using modern C++ features, including C++11 and C++14, helping programmers write more efficient, maintainable, and reusable code.
This reference guide provides a comprehensive collection of C++ algorithms, covering topics such as sorting, searching, and graph algorithms, making it a valuable resource for programmers working on complex algorithmic problems.
Focuses on modern C++ concurrency techniques, providing a deep dive into threads, synchronization, and parallel algorithms, making it suitable for programmers working with multithreaded applications.
Comprehensive reference on the C++ Standard Library. It covers all of the standard library components, including containers, algorithms, and iterators.
Provides a modern approach to C++ design. It covers topics such as object-oriented design, generic programming, and metaprogramming.
Provides a comprehensive guide to C++ templates. It covers the basics of templates as well as more advanced topics such as metaprogramming.
Offers a concise and practical introduction to modern C++, covering key concepts such as templates, object-oriented design, and the Standard Template Library, making it suitable for both beginners and experienced programmers looking to enhance their C++ skills.
A practical guide to design patterns and best practices in C++. It provides a comprehensive overview of design patterns, including creational, structural, and behavioral patterns. valuable resource for anyone who wants to write high-quality, maintainable C++ code.
A collection of challenging C++ programming problems and their solutions. valuable resource for anyone who wants to improve their C++ programming skills or learn more about the language's intricacies.
A second collection of challenging C++ programming problems and their solutions. valuable resource for anyone who wants to further improve their C++ programming skills or learn more about the language's advanced features.
Provides a set of coding standards for C++ programmers. It covers topics such as naming conventions, coding style, and error handling.
Comprehensive reference on the Boost C++ Libraries. It covers all of the Boost libraries, including containers, algorithms, and iterators.
Guide to developing games in C++. It covers all aspects of game development, including graphics, audio, and physics.
Guide to developing artificial intelligence applications in C++. It covers all aspects of AI, including machine learning, natural language processing, and computer vision.
Provides a gentle introduction to C++. It covers the basics of the language, as well as more advanced topics such as object-oriented programming and templates.
Provides a unique approach to learning C++. It uses a graphical approach to explain the concepts of the language, and it provides a series of hands-on exercises to help you learn.

Share

Help others find this course page by sharing it with your friends and followers:
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 - 2024 OpenCourser