Coursera
Coursera Logo

Duke University - Interacting with the System and Managing Memory 

  • Offered byCoursera

Interacting with the System and Managing Memory
 at 
Coursera 
Overview

Duration

26 hours

Start from

Start Now

Total fee

Free

Mode of learning

Online

Difficulty level

Beginner

Official Website

Explore Free Course External Link Icon

Credential

Certificate

Interacting with the System and Managing Memory
 at 
Coursera 
Highlights

  • This Course Plus the Full Specialization.
  • Shareable Certificates.
  • Graded Programming Assignments.
Details Icon

Interacting with the System and Managing Memory
 at 
Coursera 
Course details

Skills you will learn
More about this course
  • The final course in the specialization Introduction to Programming in C will teach you powerful new programming techniques for interacting with the user and the system and dynamically allocating memory. You will learn more sophisticated uses for pointers, such as strings and multidimensional arrays, as well as how to write programs that read and write files and take input from the user. Learning about dynamic memory allocation will allow your programs to perform complex tasks that will be applied in the final part of the specialization project: a Monte Carlo simulation for calculating poker hand probabilities.

Interacting with the System and Managing Memory
 at 
Coursera 
Curriculum

Module 1: Interacting with the user and system

Why We Need Interactivity and to Manage Memory

Reading a File with fgetc

Reading a File with fgets

Writing to a File

Closing a File

Assignment 24_read_arr3

Introduction to the Operating System

Errors from System Calls

Command Line Arguments

Complex Option Processing

The Environment Pointer

Process Creation

Opening a File

Reading a File

Reading a File with fgets

Reading a File with fread

Assignment 25_break_encr

Writing to Files

Closing Files

Other Interactions

Assignments 26_tests_matrix_input and 27_matrix_input

The Operating System

Command Line Arguments and Process Creation

Opening Files and fgetc

Reading encryption.c

Writing and Closing Files

Module 2: Dynamic allocation

Simple Call to malloc

Mechanics of free

Code with a Memory Leak

Three Common Problems When Using free

Call to realloc

Reading a File with getline

Combining getline and realloc

Motivation for Dynamic Allocation

malloc

Fixing initArray

More Complex Structures

Shallow vs. Deep Copying

free

Memory Leaks

A Dynamic Memory Allocation Analogy

Common Problems with free

realloc

getline

Valgrind's Memcheck

Uninitialized Values

Invalid Reads and Writes

Valgrind with GDB

Dynamic Allocation Issues

memcheck.h

Other Valgrind Tools

Assignments 28_fix_vg_encr, 29_outname, 30_sort_lines, and 31_minesweeper

malloc

free

realloc

getline

Valgrind's Memcheck

Module 3: Programming in the Large

Introduction

Roster Planning

Analogy to Writing

Abstraction

The Seven-Item Limit

Hierarchical Abstraction

Readability

Function Size

Naming

Formatting

Commenting and Documentation

Team Considerations

Git

Past Versions

Collaboration

Multiple Versions of the Present

Read More

Problem Description

Planning the High-Level Algorithm

Writing and Testing readInput

Finishing the Program

Even Larger Programs

Assignments 32_kvs, 33_counts, and 34_put_together

Abstraction

Readability

Module 4: Poker Project

Poker Project: Final Part

Poker Project: Final Part

Interacting with the System and Managing Memory
 at 
Coursera 
Admission Process

    Important Dates

    May 25, 2024
    Course Commencement Date

    Other courses offered by Coursera

    – / –
    3 months
    Beginner
    – / –
    20 hours
    Beginner
    – / –
    2 months
    Beginner
    – / –
    3 months
    Beginner
    View Other 6715 CoursesRight Arrow Icon
    qna

    Interacting with the System and Managing Memory
     at 
    Coursera 

    Student Forum

    chatAnything you would want to ask experts?
    Write here...