Duke University
Interacting with the System and Managing Memory
Duke University

Interacting with the System and Managing Memory

Andrew D. Hilton
Anne Bracy
Genevieve M. Lipp

Instructors: Andrew D. Hilton

23,481 already enrolled

Included with Coursera Plus

Gain insight into a topic and learn the fundamentals.
4.3

(170 reviews)

Beginner level
No prior experience required
Flexible schedule
Approx. 23 hours
Learn at your own pace
93%
Most learners liked this course
Gain insight into a topic and learn the fundamentals.
4.3

(170 reviews)

Beginner level
No prior experience required
Flexible schedule
Approx. 23 hours
Learn at your own pace
93%
Most learners liked this course

Details to know

Shareable certificate

Add to your LinkedIn profile

Assessments

12 assignments

Taught in English

See how employees at top companies are mastering in-demand skills

Placeholder

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
Placeholder
Placeholder

Earn a career certificate

Add this credential to your LinkedIn profile, resume, or CV

Share it on social media and in your performance review

Placeholder

There are 4 modules in this course

So far, our programs have had a rather limited interaction with the user or rest of the system, printing some results to standard output (typically to the terminal). Now that we have learned about topics such as strings and arrays, we are ready to learn how to write a program that takes input from the user, takes arguments on the command line, accesses files, and does many other things we typically think of real programs as doing.

What's included

5 videos14 readings5 assignments4 programming assignments

So far, most of the memory we have used has been located on the stack. Dynamic memory allocation gives a programmer much more flexibility, in that it allows you to request a specific amount memory to be allocated on the heap, so that it will not disappear with the stack frame of the calling function.

What's included

7 videos18 readings5 assignments4 programming assignments

So far, we have focused exclusively on programming in the small—designing the algorithm for a small-sized task, implementing it, testing it, and debugging it. This module discusses three main differences that "real" programs exhibit. 1) They tend to be much larger than those we have written. 2) More than one person works on them, sometimes teams of hundreds to thousands. 3) Real software has a long life-span during which it must be maintained. Now that you have an understanding of the basics of programming in the small, we are ready to begin learning about programming in the large!

What's included

2 videos20 readings2 assignments3 programming assignments

In this module, you will complete the Poker Project! Now that you know about dynamic memory allocation, user input, and how to program in the large, you can write the final parts of the program. You will write code to read in a file with a hand of cards and code to choose unknown cards from a shuffled deck. As you program with more sophisticated data structures, the importance of drawing good pictures will increase. Happy programming!

What's included

1 video3 programming assignments

Instructors

Instructor ratings
4.5 (26 ratings)
Andrew D. Hilton
Duke University
18 Courses1,066,895 learners

Offered by

Duke University

Recommended if you're interested in Software Development

Why people choose Coursera for their career

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."
Jennifer J.
Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
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."
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

Showing 3 of 170

4.3

170 reviews

  • 5 stars

    65.49%

  • 4 stars

    16.37%

  • 3 stars

    8.18%

  • 2 stars

    1.75%

  • 1 star

    8.18%

NP
4

Reviewed on Mar 14, 2021

DX
5

Reviewed on Jun 14, 2021

YX
5

Reviewed on May 27, 2023

New to Software Development? Start here.

Placeholder

Open new doors with Coursera Plus

Unlimited access to 7,000+ world-class courses, hands-on projects, and job-ready certificate programs - all included in your subscription

Advance your career with an online degree

Earn a degree from world-class universities - 100% online

Join over 3,400 global companies that choose Coursera for Business

Upskill your employees to excel in the digital economy

Frequently asked questions