- Level Foundation
- Duration 21 hours
- Course by Duke University
-
Offered by
About
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.Modules
Pointer Motivation
2
Videos
- Introduction to Pointers, Arrays, and Recursion
- Naive Swap
Pointers Conceptually
- Assignment 11_read_ptr1
1
Assignment
- Pointers Conceptually
2
Videos
- Pointers
- Corrected Swap
4
Readings
- Pointer Basics
- Pictures
- Swap Revisited
- The Practice Programming Environment
Pointers in Hardware
1
Assignment
- Pointers in Hardware
1
Videos
- Swap with Hardware
3
Readings
- Pointers under the Hood
- A Program's View of Memory
- NULL
Pointers to Sophisticated Types
1
Assignment
- Pointers to Sophisticated Types
3
Readings
- Pointers to Structs
- Pointers to Pointers
- const
Aliasing and Arithmetic
- Assignment 12_read_ptr2
3
Readings
- Aliasing
- Pointer Arithmetic
- Use Memory Checker Tools
Cryptography Motivation
1
Readings
- Cryptography Motivation
Array Basics
1
Assignment
- Array Basics
2
Videos
- Array Access with Pointer Arithmetic
- Array Access with Pointer Indexing
2
Readings
- Array Declaration and Initialization
- Accessing an Array
Arrays in Action
- Assignment 13_read_arr1
2
Videos
- Index of Largest Element
- Closest Point Step-Through
2
Readings
- Passing Arrays as Parameters
- Writing Code with Arrays
Array Caveats
1
Videos
- Dangling Pointers
2
Readings
- Dangling Pointers
- Array Size
Array Programming Assignments
- Assignment 14_array_max
- Assignment 15_tests_subseq
- Assignment 16_subseq
Strings
- Assignment 17_read_arr2
- Assignment 18_reverse_str
2
Videos
- Compare Two Strings
- Copy a String
6
Readings
- String Literals
- Mutable Strings
- String Equality
- String Copying
- Converting Strings to ints
- Standard Library Functions
Multidimensional Arrays
- Assignment 19_bits_arr
- Assignment 20_rot_matrix
1
Videos
- Incompatible Representations
7
Readings
- Introduction
- Declaration
- Indexing
- Initializing
- Array of Pointers
- Incompatibility
- Array of Strings
Function Pointers
1
Assignment
- Function Pointers
2
Readings
- Function Pointer Basics
- Sorting Functions
Security Hazards
1
Assignment
- Security Hazards
1
Videos
- Buffer Overflow
1
Readings
- Format String Attacks
Recursion: An Alternative to Iteration
1
Assignment
- Reading Recursion
1
Videos
- Executing Recursive Factorial by Hand
2
Readings
- Introduction to Recursion
- Reading Recursive Code
Writing Code with Recursion
- Assignment 21_read_rec1
5
Videos
- Writing Factorial Recursively
- Translating Recursive Factorial to Code
- Writing Fibonacci Recursively
- Translate Recursive Fibonacci to Code
- Duplication of Computation in Fibonacci
2
Readings
- Principles of Writing Recursive Code
- Is Recursion Slow?
Other Recursion Techniques
- Assignment 22_tests_power
- Assignment 23_power_rec
3
Videos
- 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
4
Readings
- Tail Recursion
- Equivalence of Tail Recursion and Iteration
- Mutual Recursion
- (Optional) Recursion Theory
Building a Deck
- Assignment c3prj1_deck
2
Readings
- If you did not take Course 2...
- Building a Deck
Evaluating a Hand
- Assignment c3prj2_eval
1
Readings
- Evaluating a Hand
Auto Summary
Dive into "Pointers, Arrays, and Recursion," a foundational IT & Computer Science course by Coursera. This engaging 1,260-minute course demystifies essential C programming concepts, including pointers, arrays, and recursive functions. Perfect for beginners, it offers flexible subscription options: Starter, Professional, and Paid. Join now to enhance your programming skills and problem-solving techniques.

Andrew D. Hilton

Anne Bracy

Genevieve M. Lipp