VOOZH about

URL: https://www.coursera.org/learn/pointers-arrays-recursion

⇱ Pointers, Arrays, and Recursion | Coursera


Pointers, Arrays, and Recursion

Pointers, Arrays, and Recursion

46,424 already enrolled

Included with

Ask Coursera

Gain insight into a topic and learn the fundamentals.
4.3

349 reviews

Beginner level
No prior experience required
Flexible schedule
2 weeks at 10 hours a week
Learn at your own pace
94%
Most learners liked this course

Gain insight into a topic and learn the fundamentals.
4.3

349 reviews

Beginner level
No prior experience required
Flexible schedule
2 weeks at 10 hours a week
Learn at your own pace
94%
Most learners liked this course

Details to know

Shareable certificate

Add to your LinkedIn profile

Assessments

7 assignments

Taught in English

Build your subject-matter expertise

This course is part of the Introductory C Programming Specialization
When you enroll in this course, you'll also be enrolled in this Specialization.
  • 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

There are 5 modules in this course

The third course in the specialization Introduction to Programming in C introduces the programming constructs pointers, arrays, and recursion. Pointers provide control and flexibility when programming in C by giving you a way to refer to the location of other data. Arrays provide a way to bundle data by guaranteeing sequences of data are grouped together. Finally, recursive functions—functions that call themselves—provide an alternative to iteration that are very useful for implementing certain algorithms.

Pointers are one of the most important and powerful aspects of the C language. Pointers are critical to understanding arrays, which let you manipulate sequences of data. They also give a programmer control and flexibility when programming, enabling solutions that are clean and efficient. Some other languages use pointers implicitly—or pointer-like constructs—so understanding their use will make you a better programmer in any language.

What's included

5 videos14 readings3 assignments2 programming assignments

5 videosTotal 16 minutes
  • Introduction to Pointers, Arrays, and Recursion2 minutes
  • Naive Swap2 minutes
  • Pointers3 minutes
  • Corrected Swap3 minutes
  • Swap with Hardware6 minutes
14 readingsTotal 140 minutes
  • Report a problem with the course10 minutes
  • Pointer Basics10 minutes
  • Pictures10 minutes
  • Swap Revisited10 minutes
  • The Practice Programming Environment10 minutes
  • Pointers under the Hood10 minutes
  • A Program's View of Memory10 minutes
  • NULL10 minutes
  • Pointers to Structs10 minutes
  • Pointers to Pointers10 minutes
  • const10 minutes
  • Aliasing10 minutes
  • Pointer Arithmetic10 minutes
  • Use Memory Checker Tools10 minutes
3 assignmentsTotal 90 minutes
  • Pointers Conceptually30 minutes
  • Pointers in Hardware30 minutes
  • Pointers to Sophisticated Types30 minutes
2 programming assignmentsTotal 40 minutes
  • Assignment 11_read_ptr120 minutes
  • Assignment 12_read_ptr220 minutes

Arrays are sequences of memory of the same type that are guaranteed to be one after another. This is an incredibly useful data format, enabling you to store many things together under one variable name. In this module, you will learn how to use arrays to solve more complex problems and lay the groundwork for more complex data types.

What's included

5 videos7 readings1 assignment4 programming assignments

5 videosTotal 18 minutes
  • Array Access with Pointer Arithmetic3 minutes
  • Array Access with Pointer Indexing2 minutes
  • Index of Largest Element7 minutes
  • Closest Point Step-Through3 minutes
  • Dangling Pointers4 minutes
7 readingsTotal 70 minutes
  • Cryptography Motivation10 minutes
  • Array Declaration and Initialization10 minutes
  • Accessing an Array10 minutes
  • Passing Arrays as Parameters10 minutes
  • Writing Code with Arrays10 minutes
  • Dangling Pointers10 minutes
  • Array Size10 minutes
1 assignmentTotal 30 minutes
  • Array Basics30 minutes
4 programming assignmentsTotal 120 minutes
  • Assignment 13_read_arr130 minutes
  • Assignment 14_array_max30 minutes
  • Assignment 15_tests_subseq30 minutes
  • Assignment 16_subseq30 minutes

Now that you have mastered the basics of pointers and arrays, it is time to see some important uses of them. In this module, you will learn about how to manipulate strings and multi-dimensional arrays. You will also learn about function pointers, which allow you to pass "which function to call" as the parameter of another function.

What's included

4 videos16 readings2 assignments4 programming assignments

4 videosTotal 22 minutes
  • Compare Two Strings7 minutes
  • Copy a String5 minutes
  • Incompatible Representations5 minutes
  • Buffer Overflow4 minutes
16 readingsTotal 160 minutes
  • String Literals10 minutes
  • Mutable Strings10 minutes
  • String Equality10 minutes
  • String Copying10 minutes
  • Converting Strings to ints10 minutes
  • Standard Library Functions10 minutes
  • Introduction10 minutes
  • Declaration10 minutes
  • Indexing10 minutes
  • Initializing10 minutes
  • Array of Pointers10 minutes
  • Incompatibility10 minutes
  • Array of Strings10 minutes
  • Function Pointer Basics10 minutes
  • Sorting Functions10 minutes
  • Format String Attacks10 minutes
2 assignmentsTotal 60 minutes
  • Function Pointers30 minutes
  • Security Hazards30 minutes
4 programming assignmentsTotal 120 minutes
  • Assignment 17_read_arr230 minutes
  • Assignment 18_reverse_str30 minutes
  • Assignment 19_bits_arr30 minutes
  • Assignment 20_rot_matrix30 minutes

By now you are familiar with iteration, in which repetition is expressed in terms of loops. Another programming technique to accomplish similar ideas is "recursion" in which a more complex instance of a problem is expressed in terms of solutions to simpler instances of the problem. In this module, you will learn how to read and write recursive code, giving you another powerful option for how to approach programming problems.

What's included

9 videos8 readings1 assignment3 programming assignments

9 videosTotal 34 minutes
  • Executing Recursive Factorial by Hand2 minutes
  • Writing Factorial Recursively6 minutes
  • Translating Recursive Factorial to Code1 minute
  • Writing Fibonacci Recursively7 minutes
  • Translate Recursive Fibonacci to Code4 minutes
  • Duplication of Computation in Fibonacci1 minute
  • Execution of the Tail Recursive Implementation of Factorial5 minutes
  • Execution of Mutually Recursive isOdd and isEven1 minute
  • Advice from a Duke Software Engineering Alum: Solve Real-World Problems5 minutes
8 readingsTotal 72 minutes
  • Introduction to Recursion2 minutes
  • Reading Recursive Code10 minutes
  • Principles of Writing Recursive Code10 minutes
  • Is Recursion Slow?10 minutes
  • Tail Recursion10 minutes
  • Equivalence of Tail Recursion and Iteration10 minutes
  • Mutual Recursion10 minutes
  • (Optional) Recursion Theory10 minutes
1 assignmentTotal 30 minutes
  • Reading Recursion30 minutes
3 programming assignmentsTotal 60 minutes
  • Assignment 21_read_rec10 minutes
  • Assignment 22_tests_power30 minutes
  • Assignment 23_power_rec30 minutes

Now that you have learned about pointers and arrays, you will build on the code you wrote in Course 2 to build a deck of cards and evaluate a poker hand. In the next course, you will complete the program to calculate poker odds with a Monte Carlo simulation.

What's included

4 readings2 programming assignments

4 readingsTotal 32 minutes
  • If you did not take Course 2...10 minutes
  • Building a Deck2 minutes
  • Evaluating a Hand10 minutes
  • Share your learning experience10 minutes
2 programming assignmentsTotal 150 minutes
  • Assignment c3prj1_deck90 minutes
  • Assignment c3prj2_eval60 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.

Instructors

Instructor ratings
4.5 (42 ratings)
Duke University
19 Courses1,145,038 learners
Duke University
4 Courses266,010 learners

Explore more from Software Development

Why people choose Coursera for their career

👁 Image

Felipe M.

Learner since 2018
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."
👁 Image

Jennifer J.

Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
👁 Image

Larry W.

Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."
👁 Image

Chaitanya A.

"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."

Learner reviews

  • 5 stars

    65.04%

  • 4 stars

    19.48%

  • 3 stars

    5.73%

  • 2 stars

    2.57%

  • 1 star

    7.16%

Showing 3 of 349

KS
·

Reviewed on Oct 19, 2020

Great introductory course for those who want to learn primitive part of programing.

CF
·

Reviewed on Dec 20, 2019

Teaches you how to use GDB and debug code effectively. Challenging and engaging homework.

BG
·

Reviewed on Jun 2, 2019

Great course that taught important programming topics.

Frequently asked questions

No. Completion of a Coursera course does not earn you academic credit from Duke; therefore, Duke is not able to provide you with a university transcript. However, your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.

To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.

When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.

Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.

Financial aid available,