The Second Edition of Using C in Software Design provides a creative approach to learning the C programming language by emphasizing software engineering. This inexpensive book, extensively tested in several academic and professional settings, provides a gentle, but complete, introduction to the C language in both the original edition published by Academic Press Professional and the current ebook edition. It provides enough information for a practicing scientist or engineer to be able to write substantial programs to solve scientific programs using C libraries. Extensive program examples are included to illustrate the major concepts of the C programming language. This book also illustrates the way that modern software engineering is typically done, by showing how a major software design and development project can be implemented in the C language. (Note that this ebook is the successor to the original first edition, which is technically out of print, although some copies may be available from various booksellers. It has been retitled to indicate that it, in fact, a second edition. It has been assigned an ISBN in order to better track both domestic and international sales.) ??This book is designed for those learning C as a second language and ANSI C users. Numerous thought-provoking problems are included at the end of each chapter. The book is divided into two parts. The first part emphasizes the simpler software engineering aspects of C, allowing the reader to begin writing interesting programs quickly. The second section discusses advanced C topics, such as pointers, structures, and the design of larger C programs that extend over several source code files.??Key features include:? 1. All of the material has been class-tested to ensure accuracy and usability. ? 2. As much as feasible, the book discusses the C language in general and avoids most implementation-specific features of the language. 3. A software project is introduced early in the book and appears throughout as new features of C are covered. 4. A separate chapter on larger programming using the “make” facility or the Visual Studio “project” for separate compilation is included. 5. A few judiciously chosen programs deliberately seeded with bugs or errors are used to illustrate potential errors and how they can be fixed to create programs that work correctly. 6. Special emphasis is placed on the design and implementation of user-defined libraries. 7. A brief introduction to C++ is included.