Coding for Everyone: C and C++ Specialization Course Reviews

The Coding for Everyone: C and C++ Specialization is a comprehensive online course offered on Coursera by renowned computer scientist and author, Ira Pohl.

Coding for Everyone: C and C++ Specialization Course Reviews
Coding for Everyone: C and C++ Specialization Course Reviews

This course is designed to teach beginners the fundamentals of C and C++ programming languages, including syntax, data structures, and algorithms.

The course is divided into 4 course series, each building on the previous one. Course 1 provides a solid foundation by introducing the basics of C programming, including data types, variables, expressions, and control structures. In Course 2, students delve deeper into C programming, exploring more advanced topics such as functions, arrays, pointers, and strings.

Course marks a transition to C++ programming, where students learn about classes, objects, inheritance, and polymorphism. Finally, Course 4 covers advanced C++ topics such as templates, exceptions, and the Standard Template Library (STL).

Throughout the course, students are presented with programming assignments to practice their skills and apply what they've learned. By the end of the course, students will have a solid foundation in C and C++ programming and be able to write basic to intermediate-level programs in these languages.

Overall, the Coding for Everyone: C and C++ Specialization course is an excellent choice for beginners looking to acquire strong programming skills and gain hands-on experience in these popular programming languages.

Course Content:

About this Specialization

This Specialization is intended for all programming enthusiasts, as well as beginners, computer and other scientists, and artificial intelligence enthusiasts seeking to develop their programming skills in the foundational languages of C and C++. Through the four courses — two in C, and two in C++ — you will cover the basics of programming in C and move on to the more advanced C++ semantics and syntax, which will prepare you to apply these skills to a number of higher-level problems using AI algorithms and Monte Carlo evaluation in complex games.

Applied Learning Project

Learners in this specialization will start coding right from the start. Every module presents ample opportunities for writing programs and finding errors in the learner's own and others' code. Building on their knowledge, learners will demonstrate their understanding of coding in a practice-intensive final assessment.

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.

The Coding for Everyone: C and C++ Specialization by Ira Pohl on Coursera consists of 4 courses series:

 

This course is for everyone. In the new world we live in, coding is a universally valuable skill, whether you're a scientist, artist, or a humanist. Algorithms are everywhere, and we all have to understand how they work. The C language is particularly well suited as an introduction to coding: It's a tried-and-true language, and it allows you to understand computing processes at a deep level.

No prior knowledge of coding is needed for this course. We'll start at the beginning. The time estimated time commitment for this course is five hours a week for five weeks.

This course consists of 6 weeks:

Week 1: Introduction

 

 

9 videos (Total 68 min)

9 videos

Overview 4m

History of C 2m

Compiling, debugging, and running a program, part1 8m

Compiling, debugging, and running a program part 2 (File included ➕) 12m

First Program 7m

Example - Circle code 7m

Example - Marathon 8m

Simple input/output - fahrenheit6mSimple input/output - miles 9m

 

Week 2: Lexical Elements and Data Types

 

 

12 videos (Total 102 min)

12 videos

Character sets and tokens 6m

Comments 4m

Keywords 8m

Identifiers 11m

Operators 8m

Expressions and precedence (File included ➕) 7m

Expression and evaluation 9m

Declarations 6m

Fundamental types and sizeof 9m

The char type (File included ➕) 8m

The int type 10m

The integer and floating point types (Files included ➕) 10m

2 practice exercises

int quiz

Expressions quiz

 

Week 3: Flow of Control and Simple Functions

 

 

10 videos (Total 62 min)

10 videos

Logical operators, expressions, and short-circuit evaluation 6m

The conditional statement if and if-else 7m

The iterative statement while 6m

while-cnt-char-explained6mwhile-code - example 5m

The for statement and its while analog 8m

for statement code example 6m

oddball operators-conditional and comma 7m

ternary-operator code example 3m

Break and continue and switch (File included ➕) 4m

4 practice exercises

Logic operators quiz

While loop questions

Switch questions

Cond-comma-ops quiz

 

Week 4: Advanced Functions, Recursion, Arrays, and Pointers

 

 

11 videos (Total 66 min)

11 videos

Function definition 6m

Function code example 4m

Return statement 4m

Function prototype 4m

Function Prototype - code example 5m

Function variables—with call-by-value explained 7m

Function definitions and scope rules 5m

Storage class code example 7m

Simple recursion 5m

Recursion- factorial code 6m

Recursion Fibonacci code (File included ➕) 9m

 

Week 5: Arrays and pointers

 

 

11 videos (Total 85 min)

11 videos

Pointers and simple arrays 6m

initialize arrays 8m

array-grade-code example 4m

What is a pointer 9m

Pointer code example 10m

Call-by-reference simulated 7m

array as a parameter 4m

array-bubble-sort code 13m

merge sort overview 7m

merge code -example1 5m

merge code example 2 (File included ➕) 7m

 

Week 6: Final Exam

 

 

1 practice exercise

Final exam 1h30m

 

 

Course 2: C for Everyone: Structured Programming

In the new world we live in, coding is a universally valuable skill, whether you're a scientist, artist, or a humanist. Algorithms are everywhere, and we all have to understand how they work. The C language is particularly well suited as an introduction to coding: It's a tried-and-true language, and it allows you to understand computing processes at a deep level. You will also get an introduction to more advanced programming in C++ in the final module.

This is a continuation of C for Everyone: Fundamentals, which you should take before beginning this course. The time estimated time commitment for this course is five hours a week for five weeks.

This course consists of 6 weeks:

Week 1: 

7 videos (Total 62 min)

7 videos

Prerequisites for this course 8m

Enums as an ADT 8m

Enums code 9m

The C preprocessor 12m

Preprocessor code 7m

Use assert for program correctness 7m

Assert code 8m

1 practice exercise

Week 1 Quiz

 

Week 2:

4 videos (Total 28 min)

4 videos

Introduction to struc (More advanced ADTs) 6m

How to access struct members 7m

Introduction to the ADT stack 5m

Using a stack to reverse a string 7m

1 practice exercise

Week 2 Quiz

 

Week 3: 

7 videos (Total 56 min)

7 videos

Intro to the ADT list 6m

List of one element code 5m

Full list code 9m

Details of list processing 6m

Honors: Introduction to binary trees 4m

Honors: Detailed binary tree code 9m

More advanced I/O printf 13m

1 practice exercise

Week 3 Quiz

 

Week 4: 

5 videos (Total 47 min)

5 videos

Introduction to File I/O 6m

Basic File/I/O code 12m

Double Spacing a File 9m

Use of Main (argc, argv) 4m

Honors - List Code with deletion 13m

1 practice exercise

Week 4 Quiz

 

Week 5:

5 videos (Total 36 min)

5 videos

Intro to C++ 7m

A First Example C++ Program 8m

C++ Features That Are Easy 7m

C++ Program Using New Features 5m

C++ ADT as a Class 7m

1 practice exercise

Week 5 Quiz

 

Week 6: Final

1 practice exercise

Final exam

 

Course 3: C++ For C Programmers, Part A

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.

This course consists of 5 weeks:

Week 1: Module 1

 

10 videos (Total 121 min), 1 reading, 1 quiz

10 videos

1.1 Overview and Course Organization 18m

1.2 Getting Started 5m

1.3 Converting a C Program to C++ 7m

1.4 Using C++ Code 7m

1.5 C++ Improvements 6m

1.6 C++ Advantages 12m

1.7 C++ is Better Than C 16m

1.8 C Swap Function 10m

1.9 Swap Function in C++ 15m

1.10 Generics 20m

1 reading

1.0 Module 1 Overview 10m

 

Week 2: Module 2

10 videos (Total 122 min), 1 reading

10 videos

2.1 C++ Generics and Functions 14m

2.2 Multiple Template Arguments 8m

2.3 Graph Theory & Algorithms 9m

2.4 Graph as a Data Structure 11m

2.5 Dijkstra Shortest Path 16m

2.6 C++ Creating Types 5m

2.7 Enum & Operator Overloading 4m

2.8 Example: typedef days 18m

2.9 Natural Way to Build Widgets 6m

2.10 C++ Point 26m

1 reading

2.0 Module 2 Overview 10m

 

Week 3: Module 3

12 videos (Total 116 min), 1 reading, 1 quiz

12 videos

3.1 C++ Classes & Object Orientation 7m

3.2 Point and its Constructor 12m

3.3 More Constructors 18m

3.4 Using Dijkstra's Algorithm 14m

3.5 The is-connected Algorithm 12m

3.6 Complex Aggregates - Lists 6m

3.7 List 12m

3.8 Print() Chaining 6m

3.9 More Elaborate List 3m

3.10 Deep vs. Shallow Copy 8m

3.11 Destructor 4m

3.12 Dynamic Data Structures in STL 7m

1 reading

3.0 Module 3 Overview 10m

 

Week 4: Module 4

14 videos (Total 164 min), 1 reading, 1 quiz

14 videos

4.1 MST 13m

4.2 Jarnik-Prim MST 11m

4.3 Jarnik-Prim MST: Another Look 11m

4.4 Kruskal's Algorithm 8m

4.5 Overloading and Function Selection 32m

4.6 STL and STL C++11 11m

4.7 STL Example 5m

4.8 C++11 Feature: auto 5m

4.9 Vector Methods 10m

4.10 More Code 8m

4.11 C++11 Feature: for statement 7m

4.12 STL Input File 11m

4.13 Iterators Categories 14m

4.14 Output a Random Graph 12m

1 reading

4.0 Module 4 Overview 10m

 

Week 5: Final Exam

 

2 practice exercises

Exam Practice1 30m

Final Exam 30m

 

Course 4: C++ For C Programmers, Part B

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.

This course consists of 5 weeks:

Week 1: STL and the game of Hex

16 videos (Total 157 min), 1 reading

16 videos

Welcome to C++ for C Programmers, Part B 5m

1.1 Overview 10m

1.2 New in C++1 15m

1.3 Standard Template Library 9m

1.4 Iterator Categories 11m

1.5 Example Poker Probability 26m

1.6 Bidirectional Iterator 8m

1.7 Random Access Iterator 6m

1.8 STL: Overview of Containers 10m

1.9 Associative Containers 11m

1.10 STL: Algorithms Library 6m

1.11 Non-mutating Algorithm 7m

1.12 Lambda Expressions: for_each Function 11m

1.13 Numerical algorithms 6m

1.14 Functional Objects 9m

1.15 Defined Function Object Classes: Function Adapters 7m

1 reading

Topics, readings & files 10m

 

Week 2: Hex as a graph and Inheritance

14 videos (Total 138 min), 1 reading, 1 quiz

14 videos

2.1 Tic-Tac-Toe to Hex 19m

2.2 Homework Basic Hex Program 4m

2.3 Basics of Inheritance 13m

2.4 Traits and Inheritance 7m

2.5 Virtual Member Functions 10m

2.6 C++ Feature: 'final' 1m

2.7 Topics on Inheritance 1m

2.8 Hex Overview 15m

2.9 One Style for a 11x11 Hex Graph 6m

2.10 The Inheritance Mechanism 10m

2.11 A Derived Class: grad_student 18m

2.12 Students and Graduate Students 12m

2.13 Virtual Function Selection 10m

2.14 Confusion with Overloading 5m

1 reading

Topics, homework, readings & files 10m

 

Week 3: Hex and the use of AI and C++ Move semantics

11 videos (Total 133 min), 1 reading

11 videos

3.1 Creating a C++11 Class 10m

3.2 Some Further Constructors 5m

3.3 'Move' Constructor 17m

3.4 Lookahead 12m

3.5 Plausible Move Generator 22m

3.6 alpha-beta Algorithm Preview 4m

3.7 alpha-beta Improvement to Min Max 15m

3.8 Polish Notation 8m

3.9 Referential Garbage Collection 17m

3.10 Abstract Base Class = 0 Notation 9m

3.11 Tree Constructors 8m

1 reading

Topics, readings & files 10m

 

Week 4: Monte Carlo Hex Program, Further advanced C++ Topics and Patterns

16 videos (Total 178 min), 1 reading, 1 quiz

16 videos

4.1 Assertion & Exception Handling 17m

4.2 Monte Carlo 12m

4.3 Basic Monte Carlo Idea 5m

4.4 Simple Idea for Generating Board 7m

4.5 MC - Go (2006) 16m

4.6 Asserts and Exceptions 18m

4.7 Static Asserts - New C++11 Feature 8m

4.8 Exceptions 13m

4.9 C++11 & Design Patterns 18m

4.10 C++11 Standard 12m

4.11 Thread 8m

4.12 <tuple> C++11 New Library 12m

4.13 The Bigger Picture 10m

4.14 Factory Method 6m

4.15 Factory Code; C++ 11 Example 3m

4.16 Adapter Pattern 6m

1 reading

Topics, homework, readings & files 10m

 

Week 6: Final Exam

4 practice exercises

Exam Practice1 30m

Exam Practice2 30m

Exam Practice3 30m

Final Exam 30m

 

 

Reviews:

As a former student of the Coding for Everyone: C and C++ Specialization course by Ira Pohl on Coursera, I would like to provide a more detailed evaluation of the course.

Firstly, I found the course to be well-structured and well-paced. The course is divided into 4 course series, each covering a different aspect of C and C++ programming, starting with the basics and gradually moving towards more advanced topics. The lectures and materials were presented in a clear and concise manner, with plenty of examples and exercises to reinforce the concepts covered in each module.

Secondly, the course emphasizes hands-on learning, with programming assignments and quizzes that allow students to practice their skills and gain practical experience. The assignments were challenging but manageable, and the course provided ample support and feedback to help students overcome any difficulties.

Another strength of the course was its emphasis on teaching fundamental programming concepts and techniques that can be applied across a variety of programming languages, not just C and C++. This provided a solid foundation for further study or practical application in the field of programming.

Furthermore, the course provided a supportive and engaging learning environment. The instructor, Ira Pohl, was knowledgeable and approachable, and was always available to answer questions and provide feedback. The online forums and discussions also provided a platform for students to interact with each other and share their knowledge and experiences.

One area where the course could be improved is in the depth of coverage of certain topics. While the course provides a solid foundation in C and C++ programming, some topics could benefit from more detailed explanations or examples. However, this is a minor criticism and does not detract from the overall quality of the course.

In conclusion, I would highly recommend the Coding for Everyone: C and C++ Specialization course to anyone interested in learning C and C++ programming. The course provides a solid foundation in programming concepts and techniques, as well as ample opportunities for hands-on learning and practical experience. The instructor and course materials are of high quality, and the learning environment is supportive and engaging.

At the time, the course has an averaga rating of 4.4 out of 5 stars based on over 2,485 ratings.

What you'll learn:

After completing the Coding for Everyone: C and C++ Specialization by Ira Pohl on Coursera, learners will have developed a range of skills related to programming in C and C++. Some of the key skills that learners will have acquired include:

  1. Proficiency in programming with C and C++ programming languages: Students will have a strong understanding of the syntax, grammar, and core concepts of C and C++ programming languages. They will be able to write clean, well-structured code and debug common errors.

  2. Understanding of the basics of syntax, data structures, and algorithms: Students will be familiar with basic programming concepts such as data types, variables, expressions, control structures, functions, arrays, pointers, and strings. They will also learn about common data structures such as linked lists, stacks, and queues, and how to implement them using C and C++.

  3. Ability to write basic to intermediate-level programs in C and C++: Students will be able to write programs that use loops, conditional statements, functions, and data structures in C and C++. They will also learn about input and output, error handling, and how to use debugging tools to troubleshoot their code.

  4. Knowledge of advanced C++ topics such as templates, exceptions, and the Standard Template Library (STL): In the advanced section of the course, students will learn about advanced topics in C++ programming such as templates, exceptions, and the STL. They will learn how to use these features to write more efficient and powerful programs.

  5. Ability to work with classes, objects, inheritance, and polymorphism in C++: In the C++ section of the course, students will learn about object-oriented programming (OOP) concepts such as classes, objects, inheritance, and polymorphism. They will learn how to write object-oriented programs in C++, and how to use OOP concepts to design software systems.

  6. Familiarity with programming best practices and principles: Throughout the course, students will learn about programming best practices such as code readability, maintainability, and scalability. They will also learn about common design patterns and how to use them to write efficient, modular code.

  7. Experience with programming assignments to reinforce learning and apply skills: Finally, the course includes a series of programming assignments that allow students to apply what they've learned and reinforce their understanding of the course material. Students will be given feedback on their assignments to help them improve their skills and correct any mistakes.

Overall, completing the Coding for Everyone: C and C++ Specialization course on Coursera will provide students with a strong foundation in C and C++ programming languages, as well as a range of practical programming skills that can be applied in a wide range of software development contexts.

Author:

Ira Pohl is a renowned computer scientist and professor of computer science at the University of California, Santa Cruz. He has published numerous books and research papers on programming languages, software engineering, and computer science education.

Pohl is particularly well-known for his contributions to the development of the programming language C++. He is the author of the popular textbook "C++ Primer" and has contributed to the design of the language through his work on the ISO C++ standards committee.

In addition to his work on C++, Pohl has also made significant contributions to other programming languages, including Lisp and Prolog. He has also conducted research on software engineering, including software design, testing, and maintenance.

Pohl is a highly respected expert in his field, and his work has had a significant impact on the development of programming languages and software engineering practices. He has received numerous awards for his contributions, including the ACM SIGPLAN Distinguished Service Award and the IEEE Computer Society Technical Achievement Award.

As an instructor in the Coding for Everyone: C and C++ Specialization on Coursera, Pohl brings his extensive expertise and knowledge to learners around the world. His clear and concise explanations of programming concepts, coupled with engaging programming assignments and projects, make this course an excellent resource for anyone interested in learning programming in C and C++.

Requirements:

The Coding for Everyone: C and C++ Specialization by Ira Pohl on Coursera has the following requirements:

  1. Basic computer literacy: Students must have basic computer skills, including familiarity with using a keyboard, mouse, and web browser. They should also be able to use software applications and install new programs on their computer.

  2. Basic programming experience: While the course is designed to be accessible to beginners, students should have some prior experience with programming concepts such as variables, data types, functions, and control structures. Some familiarity with a programming language like Python or Java would be beneficial, but is not strictly necessary.

  3. Access to a computer with a C/C++ compiler: To complete the programming assignments in the course, students will need access to a computer with a C/C++ compiler installed. The course provides instructions on how to set up a development environment, but students should have basic knowledge of how to use a command-line interface and how to install software. They should also be comfortable working with files and directories.

  4. English proficiency: The course materials are in English, so students should be proficient in reading and understanding English. Some of the lectures are also conducted in English, so students should be able to follow along and participate in class discussions.

  5. Dedication and commitment: Like any educational program, the "Coding for Everyone: C and C++ Specialization" course requires dedication and commitment to complete. Students should be prepared to spend several hours per week on coursework and assignments, and to stay motivated and engaged throughout the duration of the course. They should also be able to meet deadlines and participate in online forums and discussions.

Overall, the course is designed to provide a supportive and engaging learning environment for students looking to develop their skills in C and C++ programming. With the proper background and commitment, students can gain a solid foundation in these languages and be well-equipped for further study or practical application in their chosen field.


Register Now!