Pointers, Arrays, and Recursion

  • 4.4
Approx. 21 hours to complete

Description

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.

Outline

  • Pointers
  • Introduction to Pointers, Arrays, and Recursion
  • Naive Swap
  • Pointers
  • Corrected Swap
  • Swap with Hardware
  • Pointer Basics
  • Pictures
  • Swap Revisited
  • The Practice Programming Environment
  • Pointers under the Hood
  • A Program's View of Memory
  • NULL
  • Pointers to Structs
  • Pointers to Pointers
  • const
  • Aliasing
  • Pointer Arithmetic
  • Use Memory Checker Tools
  • Pointers Conceptually
  • Pointers in Hardware
  • Pointers to Sophisticated Types
  • Arrays
  • Array Access with Pointer Arithmetic
  • Array Access with Pointer Indexing
  • Index of Largest Element
  • Closest Point Step-Through
  • Dangling Pointers
  • Cryptography Motivation
  • Array Declaration and Initialization
  • Accessing an Array
  • Passing Arrays as Parameters
  • Writing Code with Arrays
  • Dangling Pointers
  • Array Size
  • Array Basics
  • Uses of Pointers
  • Compare Two Strings
  • Copy a String
  • Incompatible Representations
  • Buffer Overflow
  • String Literals
  • Mutable Strings
  • String Equality
  • String Copying
  • Converting Strings to ints
  • Standard Library Functions
  • Introduction
  • Declaration
  • Indexing
  • Initializing
  • Array of Pointers
  • Incompatibility
  • Array of Strings
  • Function Pointer Basics
  • Sorting Functions
  • Format String Attacks
  • Function Pointers
  • Security Hazards
  • Recursion
  • Executing Recursive Factorial by Hand
  • Writing Factorial Recursively
  • Translating Recursive Factorial to Code
  • Writing Fibonacci Recursively
  • Translate Recursive Fibonacci to Code
  • Duplication of Computation in Fibonacci
  • Execution of the Tail Recursive Implementation of Factorial
  • Execution of Mutually Recursive isOdd and isEven
  • Advice from a Duke Software Engineering Alum: Solve Real-World Problems
  • Introduction to Recursion
  • Reading Recursive Code
  • Principles of Writing Recursive Code
  • Is Recursion Slow?
  • Tail Recursion
  • Equivalence of Tail Recursion and Iteration
  • Mutual Recursion
  • (Optional) Recursion Theory
  • Reading Recursion
  • Project
  • If you did not take Course 2...
  • Building a Deck
  • Evaluating a Hand

Summary of User Reviews

Learn about pointers, arrays, and recursion in this Coursera course. Users have generally given positive reviews for this course, praising its comprehensiveness and usefulness for programming. However, some users have noted that the course can be challenging and may not be suitable for beginners.

Key Aspect Users Liked About This Course

Comprehensive and useful for programming

Pros from User Reviews

  • In-depth coverage of pointers, arrays, and recursion
  • Hands-on assignments to reinforce learning
  • Excellent instructor with clear explanations

Cons from User Reviews

  • Can be challenging for beginners
  • Some lectures may be dry or difficult to follow
  • Not enough focus on practical applications
English
Available now
Approx. 21 hours to complete
Andrew D. Hilton, Anne Bracy, Genevieve M. Lipp
Duke University
Coursera

Instructor

Andrew D. Hilton

  • 4.4 Raiting
Share
Saved Course list
Cancel
Get Course Update
Computer Courses