Building on the fundamentals, this course explores more complex C++ features including arrays, strings, input/output operations, and functions. Learners will develop modular programming skills and learn to structure their code for reusability and maintainability. The course introduces GenAI tools for code generation to enhance productivity and provides practical experience with file handling and external libraries.

Intermediate C++ Programming Techniques

Intermediate C++ Programming Techniques
This course is part of Microsoft Introduction to C++ Programming Professional Certificate

Instructor: Microsoft
Access provided by HKUST
Recommended experience
Recommended experience
Beginner level
Comfort with using a computer (installing software, navigating files and folders, using basic productivity tools) is helpful.
Recommended experience
Recommended experience
Beginner level
Comfort with using a computer (installing software, navigating files and folders, using basic productivity tools) is helpful.
What you'll learn
1. Write, debug, and compile C++ programs that solve real problems.
2. Apply modular and object-oriented programming principles.
Details to know

Add to your LinkedIn profile
November 2025
See how employees at top companies are mastering in-demand skills

Build your Algorithms expertise
- Learn new concepts from industry experts
- Gain a foundational understanding of a subject or tool
- Develop job-relevant skills with hands-on projects
- Earn a shareable career certificate from Microsoft

There are 5 modules in this course
Arrays and String Manipulation enhances your C++ capabilities by teaching you to work with collections of data and process text through both legacy and modern approaches, emphasizing safety, performance, and best practices. You'll learn to declare and manipulate single and multi-dimensional arrays using both C-style arrays and modern std::array containers, implement common operations like sorting and searching algorithms, handle matrix-based computations for mathematical applications, and process text efficiently using std::string methods while understanding the security vulnerabilities and limitations of C-style strings. Through hands-on activities progressing from basic array operations to building comprehensive text analyzers and matrix manipulation programs, you'll develop skills in memory layout optimization, bounds checking, Unicode handling for international applications, and selecting appropriate data structures based on safety and performance trade-offs. These intermediate skills are essential for real-world development across diverse domains—from database management and scientific computing that rely on efficient array-based data processing, to game development requiring multi-dimensional coordinate systems and collision detection, to web applications and natural language processing tools that demand secure, efficient text manipulation—where your ability to handle collections of data safely, process text securely, and optimize memory usage directly impacts application performance, security, and reliability in professional software environments.
What's included
6 videos5 readings4 assignments6 ungraded labs
6 videos•Total 29 minutes
- Welcome to C++ and Its Modern Applications•3 minutes
- Arrays in Real-World Data Processing•10 minutes
- Why Multi-dimensional Arrays Power Everything from Games to AI•3 minutes
- Multi-dimensional Arrays in Professional Applications•4 minutes
- Why String Handling Separates Secure Applications from Security Nightmares•3 minutes
- String Processing in Modern Applications•6 minutes
5 readings•Total 50 minutes
- Course Syllabus•10 minutes
- Array Declaration, Initialization, and Memory Layout•10 minutes
- 2D Arrays, Memory Layout, and Matrix Algorithms•10 minutes
- C-style vs. Modern Strings, Methods, and Unicode Support•10 minutes
- Module 1 Reference Guide•10 minutes
4 assignments•Total 120 minutes
- Module 1 Comprehensive Evaluation•30 minutes
- Array Implementation and Safety Assessment•30 minutes
- Matrix Operations and Algorithm Complexity•30 minutes
- String Manipulation and Security •30 minutes
6 ungraded labs•Total 360 minutes
- Array Declaration and Access Patterns Activity•60 minutes
- Comprehensive Array Operations Program•60 minutes
- 2D Array Operations and Traversal Patterns•60 minutes
- Matrix Manipulation Program•60 minutes
- String Method Practice and Safety Comparisons•60 minutes
- Comprehensive Text Analyzer•60 minutes
Input/Output Operations expands your C++ expertise by teaching you to handle data flow between applications and external sources through console interfaces, file systems, and modern I/O techniques, transforming basic programs into production-ready systems. You'll learn to create professional console applications with advanced stream manipulators for formatting precision and alignment, implement robust input validation with comprehensive error handling, manage file operations for reading and writing both text and binary data using C++17's filesystem API, and leverage modern C++20/C++23 features including std::format and std::print for type-safe, simplified output operations. Through hands-on activities progressing from formatted report generators to data logger applications and comprehensive input validation systems, you'll develop skills in stream state management, error recovery strategies, complex data format parsing, and user interface design that balances functionality with accessibility. These I/O capabilities are fundamental for real-world applications across all domains—from system administration tools and backup systems that require reliable file handling, to data processing pipelines and business reporting applications demanding professional formatting and validation, to production systems processing structured data formats like CSV and JSON—where your ability to safely read external data, gracefully handle errors, persist information reliably, and present output professionally determines application robustness, data integrity, and user experience quality.
What's included
6 videos4 readings4 assignments6 ungraded labs
6 videos•Total 27 minutes
- Why Professional Console Applications Create Better User Experiences Than Most GUIs•3 minutes
- Professional Console Applications and User Experience•6 minutes
- Why File I/O Skills Unlock Data-Driven Programming Careers•3 minutes
- File I/O in Data-Driven Applications•6 minutes
- Why Advanced I/O Techniques Separate Robust Applications from Fragile Prototypes•3 minutes
- Advanced I/O in Production Systems•6 minutes
4 readings•Total 40 minutes
- Advanced Stream Usage and Formatting Manipulators•10 minutes
- File Streams, Binary vs. Text Operations, and Filesystem API•10 minutes
- Stream State Management and Modern Formatting Features•10 minutes
- Module 2 Reference Guide•10 minutes
4 assignments•Total 120 minutes
- Module 2 Comprehensive Evaluation•30 minutes
- Console I/O and Formatting•30 minutes
- File I/O and Data Persistence Assessment•30 minutes
- Advanced I/O and Modern C++ Features Assessment•30 minutes
6 ungraded labs•Total 360 minutes
- Console Input Validation and Formatting•60 minutes
- Formatted Report Generator•60 minutes
- File I/O Operations and Data Processing•60 minutes
- Data Logger Application•60 minutes
- Advanced Stream Management and Data Validation•60 minutes
- Comprehensive Input Validation System•60 minutes
Functions and Modular Programming transforms your approach to software development by teaching you to create reusable, maintainable code through function design, advanced function techniques, and systematic code organization strategies that enable scalable application architecture. You'll learn to design functions with optimal parameter passing methods for performance and clarity, implement function overloading to create versatile interfaces, apply recursion to solve algorithmic problems while comparing recursive and iterative approaches, and organize code using namespaces and modern C++20 modules to prevent naming conflicts and improve project structure. Through hands-on activities progressing from basic function creation to refactoring monolithic programs into modular architectures and implementing recursive algorithms with performance analysis, you'll develop skills in code reusability, interface design, stack frame analysis, separation of concerns, and architectural decision-making. These modular programming principles are essential for professional software development across all industries—from game development and web applications requiring team collaboration on shared codebases, to large enterprise systems demanding clear organizational hierarchies and conflict prevention, to API design where intuitive function interfaces determine developer experience—where your ability to eliminate code duplication, create maintainable function-based architectures, and organize complex projects systematically directly impacts development efficiency, team productivity, code quality, and long-term software maintainability in collaborative professional environments.
What's included
6 videos4 readings4 assignments6 ungraded labs
6 videos•Total 30 minutes
- Why Functions Transform Chaotic Code into Maintainable Software•3 minutes
- Functions in Professional Software Architecture•7 minutes
- Why Advanced Function Techniques Create APIs That Developers Love to Use•3 minutes
- Advanced Function Techniques in Professional Development•7 minutes
- Why Code Organization Determines Whether Your Project Scales or Collapses•3 minutes
- Code Organization in Large Software Projects•7 minutes
4 readings•Total 40 minutes
- Function Syntax, Parameter Passing, and Return Types•10 minutes
- Function Overloading, Default Parameters, and Recursion•10 minutes
- Namespace Creation, Code Organization, and C++20 Modules•10 minutes
- Module 3 Reference Guide•10 minutes
4 assignments•Total 120 minutes
- Module 3 Comprehensive Evaluation•30 minutes
- Function Implementation and Design•30 minutes
- Advanced Function Techniques and Algorithm Selection •30 minutes
- Code Organization and Namespace •30 minutes
6 ungraded labs•Total 360 minutes
- Function Creation and Parameter Passing Practice•60 minutes
- Code Refactoring with Functions•60 minutes
- Function Overloading and Recursion Practice•60 minutes
- Recursive vs. Iterative Algorithm Comparison•60 minutes
- Namespace Creation and Organization Practice•60 minutes
- Modular Code Architecture Design•60 minutes
External Libraries and GenAI for Code Generation elevates your development capabilities by teaching you to extend application functionality through third-party libraries and leverage modern AI coding assistants to accelerate development while maintaining professional quality standards. You'll learn to discover, evaluate, and integrate external C++ libraries using modern build systems, including CMake, vcpkg, and Conan for dependency management, understand static versus dynamic linking and proper header file organization, and effectively use AI tools like GitHub Copilot, ChatGPT, and Claude to generate code snippets, functions, and program components while critically evaluating their output. Through hands-on activities that progress from library integration projects to AI-assisted development workflows, you'll develop skills in building system configuration, dependency resolution, quality assurance for AI-generated code, code adaptation and refactoring, and establishing collaborative development practices that balance AI assistance with human expertise. These modern development capabilities are transformative for professional software engineering—from integrating powerful libraries for JSON parsing, HTTP communication, or graphics rendering that would take months to build independently, to using AI tools that accelerate routine coding tasks and reduce boilerplate while you maintain critical oversight for correctness and style—where your ability to leverage existing solutions, manage complex dependencies, critically evaluate AI assistance, and integrate modern tools into workflows directly impacts development velocity, project scope possibilities, code quality maintenance, and your competitiveness in contemporary software development environments that increasingly expect proficiency with both external libraries and AI-assisted coding practices.
What's included
6 videos4 readings4 assignments6 ungraded labs
6 videos•Total 28 minutes
- Why External Libraries Transform You from Code Writer to Software Architect•3 minutes
- External Libraries in Professional Development•7 minutes
- Why AI Coding Assistants Are Changing What It Means to Be a Programmer•3 minutes
- AI Coding Assistants in Modern Development•6 minutes
- Why AI Integration Skills Separate Amateur Coders from Professional Development Teams•3 minutes
- AI Integration in Professional Development Teams•7 minutes
4 readings•Total 40 minutes
- Library Discovery, Integration, and Build Systems•10 minutes
- AI Code Generation Tools and Configuration•10 minutes
- Advanced AI Integration and Quality Assurance Workflows•10 minutes
- Module 4 Reference Guide•10 minutes
4 assignments•Total 120 minutes
- Module 4 Comprehensive Evaluation•30 minutes
- Library Integration and Build System •30 minutes
- AI Coding Tools and Quality Assurance Assessment•30 minutes
- Advanced AI Integration and Collaborative Development•30 minutes
6 ungraded labs•Total 360 minutes
- Library Integration and Build Configuration Practice•60 minutes
- Complete External Library Integration Project•60 minutes
- AI-Assisted Code Generation Practice•60 minutes
- AI-Assisted Development Workflow•60 minutes
- AI Code Integration and Quality Assurance Practice•60 minutes
- Comprehensive AI-Assisted Project Development•60 minutes
The Hands On Course Project synthesizes your intermediate C++ expertise through a comprehensive capstone experience where you design and build a sophisticated data processing application that integrates arrays and string manipulation, file I/O operations, modular function architecture, external library integration, and AI-assisted development workflows into a cohesive, professional-quality solution. You'll progress through industry-standard development phases—systematic design and planning with detailed architecture specifications and library selection, implementation, applying all intermediate concepts with modern AI assistance for code generation and optimization, and comprehensive testing, including unit tests, integration tests, and performance analysis with AI-powered code review. This capstone experience simulates real-world intermediate-level development scenarios found in business applications, scientific computing systems, and data analysis platforms where multiple technical skills must work together seamlessly to solve complex problems. The project culminates in professional deliverables including complete source code, technical documentation, testing reports, user guides, and an AI integration analysis that collectively demonstrate your readiness for advanced C++ programming challenges and intermediate-level professional software development roles, while providing portfolio-worthy evidence of your ability to independently design, implement, test, document, and optimize complete applications using modern development practices that balance human expertise with AI assistance for maximum productivity and code quality.
What's included
1 video3 readings1 assignment1 ungraded lab
1 video•Total 4 minutes
- Capstone Projects and Professional Skill Integration•4 minutes
3 readings•Total 30 minutes
- Comprehensive Data Processing Application Project Overview•10 minutes
- Data Processing Application: Capstone Project•10 minutes
- Course Completion and Professional Next Steps•10 minutes
1 assignment•Total 30 minutes
- Data Processing Application: Capstone Project•30 minutes
1 ungraded lab•Total 60 minutes
- Data Processing Application: Capstone Project•60 minutes
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV. Share it on social media and in your performance review.
Instructor

Offered by

Offered by

Our goal at Microsoft is to empower every individual and organization on the planet to achieve more. In this next revolution of digital transformation, growth is being driven by technology. Our integrated cloud approach creates an unmatched platform for digital transformation. We address the real-world needs of customers by seamlessly integrating Microsoft 365, Dynamics 365, LinkedIn, GitHub, Microsoft Power Platform, and Azure to unlock business value for every organization—from large enterprises to family-run businesses. The backbone and foundation of this is Azure.
Why people choose Coursera for their career

Felipe M.

Jennifer J.

Larry W.

Chaitanya A.
Explore more from Computer Science
MMicrosoft
Course
Category: Credit offeredCredit offered
Course
Category: Credit offeredCredit offered
Course
Category: Credit offeredCredit offered
Course
Category: Credit offeredCredit offered
Âą Some assignments in this course are AI-graded. For these assignments, your data will be used in accordance with Coursera's Privacy Notice.