We may earn an affiliate commission when you visit our partners.
Course image
Martin Dubois

Explore the C and C++ languages. Look at the specificity of the C/C++ languages and how this impacts security, ways C/C++ can interact with the external world, error handling, the execution environment and much more.

Enroll now

What's inside

Syllabus

C++ Buffer Overflow
These labs are intended to be completed as practice after finishing the Infosec Introduction to C++ Code course. You will be able to practice the labs on the Infosec platform, but progress and results will not be shown in Coursera.
Read more
Integer Overflows and Underflows
C++ Format String Vulnerabilities

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Covers security issues and vulnerabilities specifically in the C/C++ programming languages
Introduces C++ to those who may already know C
Taught by instructors who specialize in information security
Does not assume prior experience with programming or computer science
Examines C++ code vulnerabilities such as buffer overflows, integer overflows, and format string vulnerabilities
Offers hands-on labs for practice

Save this course

Save C++ Lab Content to your list so you can find it easily later:
Save

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++ Lab Content with these activities:
Practice debugging C/C++ code
Get your mind and hands in the right headspace by revisiting what debugging entails, especially in the context of C/C++
Browse courses on Debugging Techniques
Show steps
  • Find a bug in a sample C/C++ program.
  • Use a debugger to step through the code and identify the source of the bug.
  • Fix the bug and test that the program now runs correctly.
Start a C/C++ coding project
Kickstart your C/C++ learning journey by embarking on a coding project.
Browse courses on Projects
Show steps
  • Choose a project idea that aligns with your interests and skill level.
  • Set up your development environment.
  • Write and test your code.
  • Refactor and improve your code.
Practice writing C/C++ code
Practice writing different types of C/C++ code to improve your understanding of the syntax and structure of the languages.
Show steps
  • Write a C/C++ program to print 'Hello, world!'
  • Write a C/C++ program to find the factorial of a number.
  • Write a C/C++ program to reverse a string.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Learn about C/C++ memory management
Understanding memory management is essential for effective C/C++ programming. This tutorial will guide you through the basics of memory management in C/C++.
Browse courses on Memory Management
Show steps
  • Watch a video tutorial on C/C++ memory management.
  • Read an article or blog post about C/C++ memory management.
  • Complete a coding exercise that demonstrates C/C++ memory management concepts.
Discuss C/C++ code with other students
Engage with fellow learners to discuss C/C++ code, ask questions, and share knowledge.
Show steps
  • Join a study group or online forum for C/C++ learners.
  • Post a question or comment on a C/C++ code snippet.
  • Respond to other students' questions or comments.
Create a C/C++ tutorial
Enhance your understanding of C/C++ by creating a tutorial that explains a specific concept or technique.
Show steps
  • Choose a topic for your tutorial.
  • Write the content for your tutorial.
  • Create any necessary visuals or examples.
  • Publish your tutorial online.
Contribute to an open-source C/C++ project
Gain practical experience and collaborate with others by contributing to an open-source C/C++ project.
Show steps
  • Find an open-source C/C++ project that interests you.
  • Read the project's documentation and contribute in ways that align with your skills.
  • Follow the project's contribution guidelines.
  • Submit your contributions and engage with the project's community.
Build a C/C++ project
Solidify your understanding of C/C++ by building a project that demonstrates your skills.
Browse courses on Projects
Show steps
  • Come up with an idea for a C/C++ project.
  • Design and implement the project.
  • Test and debug the project.
  • Document the project.

Career center

Learners who complete C++ Lab Content will develop knowledge and skills that may be useful to these careers:
Software Developer
**Software Developers** design, build, and maintain the software systems that power our world. They write code, test software, and debug problems to ensure that software runs smoothly and efficiently. This course can help you build a foundation in C++ programming, which is one of the most popular programming languages used in software development. By learning about the specificities of C++ and how it can interact with the external world, you'll gain valuable skills that can help you succeed as a Software Developer.
Cybersecurity Analyst
**Cybersecurity Analysts** protect computer systems and networks from unauthorized access, use, disclosure, disruption, modification, or destruction. They investigate cyberattacks, develop security measures, and monitor networks for suspicious activity. This course can help you build a foundation in C++ programming, which is commonly used in cybersecurity tools and applications. By learning about the security implications of C++ and how to handle errors, you'll gain valuable skills that can help you succeed as a Cybersecurity Analyst.
Systems Analyst
**Systems Analysts** design, develop, and implement computer systems. They analyze business needs and develop solutions that meet those needs. This course can help you build a foundation in C++ programming, which is used in a variety of systems development projects. By learning about the execution environment and how to interact with the external world in C++, you'll gain valuable skills that can help you succeed as a Systems Analyst.
Network Engineer
**Network Engineers** design, build, and maintain computer networks. They install and configure network hardware and software, and monitor network traffic to ensure that it flows smoothly and efficiently. This course can help you build a foundation in C++ programming, which is used in a variety of network engineering tools and applications. By learning about the specifics of C++ and how it can interact with the external world, you'll gain valuable skills that can help you succeed as a Network Engineer.
Database Administrator
**Database Administrators** manage and maintain databases. They ensure that data is stored securely and efficiently, and that it is available to users when they need it. This course can help you build a foundation in C++ programming, which is used in a variety of database management systems. By learning about the execution environment and how to handle errors in C++, you'll gain valuable skills that can help you succeed as a Database Administrator.
Web Developer
**Web Developers** design, build, and maintain websites. They write code, create content, and ensure that websites are accessible and user-friendly. This course can help you build a foundation in C++ programming, which is used in a variety of web development tools and applications. By learning about the specifics of C++ and how it can interact with the external world, you'll gain valuable skills that can help you succeed as a Web Developer.
Security Engineer
**Security Engineers** design, implement, and maintain security systems. They protect computer systems and networks from unauthorized access, use, disclosure, disruption, modification, or destruction. This course can help you build a foundation in C++ programming, which is commonly used in security tools and applications. By learning about the security implications of C++ and how to handle errors, you'll gain valuable skills that can help you succeed as a Security Engineer.
Software Tester
**Software Testers** test software to find bugs and errors. They ensure that software is working properly and meets the needs of users. This course can help you build a foundation in C++ programming, which is one of the most popular programming languages used in software development. By learning about the specificities of C++ and how to handle errors, you'll gain valuable skills that can help you succeed as a Software Tester.
Technical Writer
**Technical Writers** create documentation for software, hardware, and other technical products. They explain how to use products, troubleshoot problems, and get the most out of them. This course can help you build a foundation in C++ programming, which is used in a variety of technical products. By learning about the specifics of C++ and how it can interact with the external world, you'll gain valuable skills that can help you succeed as a Technical Writer.
Information Security Analyst
**Information Security Analysts** protect computer systems and networks from unauthorized access, use, disclosure, disruption, modification, or destruction. They investigate cyberattacks, develop security measures, and monitor networks for suspicious activity. This course can help you build a foundation in C++ programming, which is commonly used in cybersecurity tools and applications. By learning about the security implications of C++ and how to handle errors, you'll gain valuable skills that can help you succeed as an Information Security Analyst.
Computer Programmer
**Computer Programmers** write code that makes computers work. They design, develop, and maintain software applications. This course can help you build a foundation in C++ programming, which is one of the most popular programming languages used in software development. By learning about the specificities of C++ and how it can interact with the external world, you'll gain valuable skills that can help you succeed as a Computer Programmer.
Software Quality Assurance Analyst
**Software Quality Assurance Analysts** test software to find bugs and errors. They ensure that software is working properly and meets the needs of users. This course can help you build a foundation in C++ programming, which is one of the most popular programming languages used in software development. By learning about the specificities of C++ and how to handle errors, you'll gain valuable skills that can help you succeed as a Software Quality Assurance Analyst.
Security Consultant
**Security Consultants** help organizations protect their computer systems and networks from unauthorized access, use, disclosure, disruption, modification, or destruction. They assess security risks, develop security plans, and implement security measures. This course can help you build a foundation in C++ programming, which is commonly used in security tools and applications. By learning about the security implications of C++ and how to handle errors, you'll gain valuable skills that can help you succeed as a Security Consultant.
Network Administrator
**Network Administrators** design, build, and maintain computer networks. They install and configure network hardware and software, and monitor network traffic to ensure that it flows smoothly and efficiently. This course can help you build a foundation in C++ programming, which is used in a variety of network administration tools and applications. By learning about the specifics of C++ and how it can interact with the external world, you'll gain valuable skills that can help you succeed as a Network Administrator.
Systems Administrator
**Systems Administrators** manage and maintain computer systems. They install and configure software, monitor system performance, and troubleshoot problems. This course can help you build a foundation in C++ programming, which is used in a variety of systems administration tools and applications. By learning about the execution environment and how to handle errors in C++, you'll gain valuable skills that can help you succeed as a Systems Administrator.

Reading list

We've selected seven 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++ Lab Content.
Comprehensive introduction to the C++ programming language. It covers all the basics, from language syntax and data types to object-oriented programming and templates. A useful reference, it is often used as a textbook at academic institutions and by industry professionals
Collection of 42 specific guidelines for writing effective modern C++ code. It covers a wide range of topics, from basic language usage to advanced design techniques.
Comprehensive guide to concurrency in C++. It covers all the essential concepts of concurrency, including threads, locks, and synchronization.
Comprehensive guide to templates in C++. It covers all the essential concepts of templates, including syntax, semantics, and implementation.
Is the definitive guide to the C++ programming language. It was written by the language's creator, Bjarne Stroustrup.
Collection of 47 challenging programming problems in C++. It great way to test your skills and learn new techniques.

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