Tags
Language
Tags
March 2024
Su Mo Tu We Th Fr Sa
25 26 27 28 29 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31 1 2 3 4 5 6

An Introduction to the C Programming Language and Software Design by Tim Bailey

Posted By: lengen
An Introduction to the C Programming Language and Software Design by Tim Bailey

An Introduction to the C Programming Language and Software Design by Tim Bailey
English | July 12, 2005) | ISBN: N/A | 153 Pages | PDF | 0.9 MB

Many students of C will rightly admit that it's not an easy language to learn, but the professional insight, clear explanations, examples, and pictures in this book make learning C easy and fun. Programming is not a skill you can acquire by reading; you have to write programs to learn. That's why each chapter in this book contains programming challenges, a chapter review, and a complete program that uses chapter-based concepts to construct an easily built application.
With the guidance in this book, you'll learn how to create algorithms and pseudocode to think through and design programs; translate your designs and plans into working C programs; write, compile, test, and debug your code; use data types, arrays, pointers, strings, file operations and more to create robust programs.
This textbook was written with two primary objectives. The first is to introduce the C programming language. C is a practical and still-current software tool; it remains one of the most popular programming languages in existence, particularly in areas such as embedded systems. C facilitates writing code that is very efficient and powerful and, given the ubiquity of C compilers, can be easily ported to many different platforms. Also, there is an enormous code-base of C programs developed over the last 30 years, and many systems that will need to be maintained and extended for many years to come.
The second key objective is to introduce the basic concepts of software design. At one-level this is C-specific: to learn to design, code and debug complete C programs. At another level, it is more general: to learn the necessary skills to design large and complex software systems. This involves learning to decompose large problems into manageable systems of modules; to use modularity and clean interfaces to design for correctness, clarity and flexibility.