O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Intermediate C Programming

Book Description

Teach Your Students How to Program Well

Intermediate C Programming provides a stepping-stone for intermediate-level students to go from writing short programs to writing real programs well. It shows students how to identify and eliminate bugs, write clean code, share code with others, and use standard Linux-based tools, such as ddd and valgrind.

The text covers numerous concepts and tools that will help your students write better programs. It enhances their programming skills by explaining programming concepts and comparing common mistakes with correct programs. It also discusses how to use debuggers and the strategies for debugging as well as studies the connection between programming and discrete mathematics.

Table of Contents

  1. Front Cover
  2. Contents (1/2)
  3. Contents (2/2)
  4. List of Figures (1/2)
  5. List of Figures (2/2)
  6. List of Tables
  7. Foreword
  8. Preface
  9. Author, Reviewers, and Artist
  10. Rules in Software Development
  11. Source Code
  12. I. Computer Storage: Memory and File
    1. 1. Program Execution (1/2)
    2. 1. Program Execution (2/2)
    3. 2. Stack Memory (1/5)
    4. 2. Stack Memory (2/5)
    5. 2. Stack Memory (3/5)
    6. 2. Stack Memory (4/5)
    7. 2. Stack Memory (5/5)
    8. 3. Prevent, Detect, and Remove Bugs (1/2)
    9. 3. Prevent, Detect, and Remove Bugs (2/2)
    10. 4. Pointers (1/6)
    11. 4. Pointers (2/6)
    12. 4. Pointers (3/6)
    13. 4. Pointers (4/6)
    14. 4. Pointers (5/6)
    15. 4. Pointers (6/6)
    16. 5. Writing and Testing Programs (1/4)
    17. 5. Writing and Testing Programs (2/4)
    18. 5. Writing and Testing Programs (3/4)
    19. 5. Writing and Testing Programs (4/4)
    20. 6. Strings (1/3)
    21. 6. Strings (2/3)
    22. 6. Strings (3/3)
    23. 7. Programming Problems and Debugging (1/4)
    24. 7. Programming Problems and Debugging (2/4)
    25. 7. Programming Problems and Debugging (3/4)
    26. 7. Programming Problems and Debugging (4/4)
    27. 8. Heap Memory (1/3)
    28. 8. Heap Memory (2/3)
    29. 8. Heap Memory (3/3)
    30. 9. Programming Problems Using Heap Memory (1/4)
    31. 9. Programming Problems Using Heap Memory (2/4)
    32. 9. Programming Problems Using Heap Memory (3/4)
    33. 9. Programming Problems Using Heap Memory (4/4)
    34. 10. Reading and Writing Files (1/3)
    35. 10. Reading and Writing Files (2/3)
    36. 10. Reading and Writing Files (3/3)
    37. 11. Programming Problems Using File (1/2)
    38. 11. Programming Problems Using File (2/2)
  13. II. Recursion
    1. 12. Recursion (1/4)
    2. 12. Recursion (2/4)
    3. 12. Recursion (3/4)
    4. 12. Recursion (4/4)
    5. 13. Recursive C Functions (1/4)
    6. 13. Recursive C Functions (2/4)
    7. 13. Recursive C Functions (3/4)
    8. 13. Recursive C Functions (4/4)
    9. 14. Integer Partition (1/5)
    10. 14. Integer Partition (2/5)
    11. 14. Integer Partition (3/5)
    12. 14. Integer Partition (4/5)
    13. 14. Integer Partition (5/5)
    14. 15. Programming Problems Using Recursion (1/5)
    15. 15. Programming Problems Using Recursion (2/5)
    16. 15. Programming Problems Using Recursion (3/5)
    17. 15. Programming Problems Using Recursion (4/5)
    18. 15. Programming Problems Using Recursion (5/5)
  14. III. Structure
    1. 16. Programmer-Defined Data Types (1/6)
    2. 16. Programmer-Defined Data Types (2/6)
    3. 16. Programmer-Defined Data Types (3/6)
    4. 16. Programmer-Defined Data Types (4/6)
    5. 16. Programmer-Defined Data Types (5/6)
    6. 16. Programmer-Defined Data Types (6/6)
    7. 17. Programming Problems Using Structure (1/4)
    8. 17. Programming Problems Using Structure (2/4)
    9. 17. Programming Problems Using Structure (3/4)
    10. 17. Programming Problems Using Structure (4/4)
    11. 18. Linked Lists (1/3)
    12. 18. Linked Lists (2/3)
    13. 18. Linked Lists (3/3)
    14. 19. Programming Problems Using Linked List (1/2)
    15. 19. Programming Problems Using Linked List (2/2)
    16. 20. Binary Search Trees (1/4)
    17. 20. Binary Search Trees (2/4)
    18. 20. Binary Search Trees (3/4)
    19. 20. Binary Search Trees (4/4)
    20. 21. Parallel Programming Using Threads (1/5)
    21. 21. Parallel Programming Using Threads (2/5)
    22. 21. Parallel Programming Using Threads (3/5)
    23. 21. Parallel Programming Using Threads (4/5)
    24. 21. Parallel Programming Using Threads (5/5)
  15. IV. Applications
    1. 22. Finding the Exit of a Maze (1/5)
    2. 22. Finding the Exit of a Maze (2/5)
    3. 22. Finding the Exit of a Maze (3/5)
    4. 22. Finding the Exit of a Maze (4/5)
    5. 22. Finding the Exit of a Maze (5/5)
    6. 23. Image Processing (1/3)
    7. 23. Image Processing (2/3)
    8. 23. Image Processing (3/3)
    9. 24. Huffman Compression (1/10)
    10. 24. Huffman Compression (2/10)
    11. 24. Huffman Compression (3/10)
    12. 24. Huffman Compression (4/10)
    13. 24. Huffman Compression (5/10)
    14. 24. Huffman Compression (6/10)
    15. 24. Huffman Compression (7/10)
    16. 24. Huffman Compression (8/10)
    17. 24. Huffman Compression (9/10)
    18. 24. Huffman Compression (10/10)
  16. A. Linux
  17. B. Version Control
  18. C. Integrated Development Environments (IDE) (1/3)
  19. C. Integrated Development Environments (IDE) (2/3)
  20. C. Integrated Development Environments (IDE) (3/3)