A user-friendly, code-intensive introduction to C programming
- The Deitel signature live-code approach allows students to run full programs as they learn key concepts.
- UPDATED - The 9th Edition features 142 complete, working, real-world C programs. Each code example is followed with one or more sample executions.
- UPDATED - All code examples and code selections were checked using the clang-tidy static code analysis tool.
- NEW - Over 340 integrated Self-Check exercises with answers help students test and validate their understanding as they read.
- Fill-in-the-blank, true/false, and discussion Self Checks focus on concepts and terminology.
- Code-based Self Checks give students a chance to try out and reinforce programming techniques.
- A focus on performance issues prepares readers for professional software-development challenges and practices.
- UPDATED - Students are encouraged to think like developers by familiarizing themselves with popular open-source software and tools like Docker, GitHub, and StackOverflow.
Offers hundreds of real-world examples, exercises, and projects for hands-on practice
- UPDATED - Seventeen case studies in systems programming and applications programming give students fun, hands-on opportunities to use C as its intended to be used. New and enhanced case studies:
- Focus on data science including simulations with random-number generation, survey data analysis, natural language processing, and artificial intelligence (machine-learning with simple linear regression).
- Incorporate free open-source libraries and tools
- Focus on visualization with gnuplot
- UPDATED - Over 400 examples, exercises, and projects (EEPs) allow students to solve interesting, real-world problems working with real-world data.EEPs are drawn from an assortment of computer science, data science, and other fields to instruct and engage students.
Covers fundamental to advanced concepts in a flexible, modular format
- Rich coverage of C fundamentals emphasizes problem-solving and algorithm development to gives novice programmers a solid foundation in programming principles.
- Intermediate and advanced topics are included for use in higher-level courses or for further self-study.
- The modular presentation covers fundamental to advanced concepts in groups of related chapters. Instructors can easily adapt the content to a variety of courses and audiences.
- NEW - A one-page color Table of Contents chart on the inside front cover makes it easy to see the books modular architecture and lists all 17 case studies.
Up-to-date content aligns with contemporary standards, trends, operating systems, and development tools
- UPDATED - The book adheres to the C11/C18 standards to keep pace with expanded C capabilities. Terminology throughout has been updated to reflect the most recent C standard to help students prepare for programming as a career.
- UPDATED - All program code is compatible with Windows, macOS, and Linux operating systems and has been tested using the latest versions of the Visual C++, XCode, and GNU gcc compilers.
- UPDATED - Updated content aligns to the latest ACM/IEEE computing curricula recommendations, which call for covering security, data science, ethics, privacy, and performance concepts and using real-world data throughout the curriculum.
- UPDATED - Enhanced and updated coverage of secure C programming includes additional SEI CERT C Coding Standards. All security-related issues are called out with an icon in the text.
- UPDATED - Additional exercises ask students to use the Internet to research ethics and privacy issues in computing.
- UPDATED - Performance icons identify areas in the text that discuss performance-related issues. The case study on multithreading and multicore performance has been enhanced.
- NEW - Common errors and good software engineering practices are called out with new margin icons.
- NEW- A new tutorial helps MacOS and Windows users compile and run programs using gcc in the cross-platform GNU Compiler Collection Docker container.
- UPDATED - Expanded coverage of sorting algorithms and analysis of algorithms with Big O is included in a dedicated chapter (Chapter 13).
- NEW - Appendix E presents a user-friendly overview of object-oriented programming fundamentals to help introduce students to different programming paradigms.
This title is also available digitally as a standalone Pearson eText, or via MyLab, which includes the Pearson eText
MyLab® empowers you to reach every student. This flexible digital platform combines unrivaled content, online assessments, and customizable features so you can personalize learning and improve results, one student at a time. With MyLab Programming, students work through hundreds of short, auto-graded coding exercises and receive immediate and helpful feedback based on their work. Learn more about MyLab Programming.
Pearson eText is an easy-to-use digital textbook available within MyLab that lets students read, highlight, take notes, and review key vocabulary all in one place. If youre not using MyLab, students can purchase Pearson eText on their own or you can assign it as a course to schedule readings, view student usage analytics, and share your own notes with students. Learn more about Pearson eText.
Teach your course your way
- The Exercise Editor allows you to create new programming exercises. In addition to assigning the hundreds of programming exercises already available, you can create and assign programming exercises to customize your course.
- Dynamic grading and assessment let you effortlessly track student performance. Your students' submissions are automatically graded, both saving you time, and offering students immediate learning opportunities. A dynamic roster tracks their performance and maintains a record of submissions. The color-coded gradebook gives you a quick glance of your classes' progress. Easily drill down to receive information on a single student's performance or a specific problem. Gradebook results can be exported to Excel to use with your LMS.
- The Plagiarism Detection Tool alerts instructors of potential plagiarism issues by checking:
- Students average submission rate.
- Students average number of attempts until correct.
- Students average copy/paste rate.
Deliver trusted content
- Hundreds of short, auto-graded coding exercises are mapped to Pearsons Introduction to Programming textbooks by industry-leading authors. The exercises help students master programming fundamentals (syntax, flow of control), allowing instructors to focus on higher-level concepts (problem solving).
- VideoNotes are step-by-step video tutorials specifically designed to enhance the programming concepts presented in the text so students can view the entire problem-solving process outside of the classroom when they need help the most.
- Pearson eText is an easy-to-use digital textbook available within MyLab that lets students read, highlight, take notes, and review key vocabulary all in one place. Seamlessly integrated videos and media engage students and give them access to helpful learning tools. The mobile app lets students learn on the go, online or offline. Learn more about Pearson eText.
- Immediate, personalized feedback is provided as students practice programming. The error-specific messages include both the feedback from the compiler and plain English interpretations of likely causes for the students incorrect answer. Feedback for many exercises includes test case tables that show a students output against expected output.
- Copyright 2022
- Dimensions: 8" x 10"
- Pages: 832
- Edition: 9th
- ISBN-10: 0-13-739839-5
- ISBN-13: 978-0-13-739839-3
This print textbook is available for you to rent for your classes. The Pearson print rental program provides you with affordable access to learning materials, so you go to class ready to succeed.
C How to Program is a user-friendly, code-intensive introduction to C programming with case studies introducing applications and system programming. Like other texts of the Deitels How to Program series, the books modular presentation serves as a detailed beginner source of information for college students looking to embark on a career in coding, or instructors and software-development professionals seeking to learn how to program with C. The signature Deitel live-code approach presents concepts in the context of 142 full-working programs rather than incomplete snips of code. This gives you a chance to run each program as you study it and see how your learning applies to real-world programming scenarios.
Current standards, contemporary practice, and hands-on learning opportunities are integrated throughout the 9th Edition. Over 340 new integrated Self-Check exercises with answers allow you to test your understanding of important concepts and check your code as you read. New and enhanced case studies and exercises use real-world data and focus on the latest ACM/IEEE computing curricula recommendations, highlighting security, data science, ethics, privacy, and performance concepts.
Table of Contents
PART 1: (Introductory) Programming Fundamentals Quickstart
1. Introduction to Computers and C: Test-Driving Microsoft Visual Studio, Apple Xcode, GNU gcc, and GNU gcc in a Docker container
2. Intro to C Programming: Input, Output, Types, Arithmetic, Decision Making
3. Structured Program Development: Algorithmic Development, Problem Solving, if, if/else, while
4. Program Control: for, do/while, switch, break, continue, Logical Operators
5. Functions: Custom Functions, Simulation, Random-Number Generation, Enumerations, Function Call and Return Mechanism, Recursion, Recursive Factorial, Recursive Fibonacci
PART 2: (Intermediate) Arrays, Pointers, and Strings
6. Arrays: One- and Two-Dimensional Arrays, Passing Arrays to Functions, Searching, Sorting
7. Pointers: Pointers operators & and , Pass-By-Value vs. Pass-By-Reference, Array and Pointer Relationship
8. Characters and Strings: C Standard Library String- and Character-Processing Functions
PART 3: (Intermediate) Formatted Input/Output, Structures, and File Processing
9. Formatted Input/Output: scanf and printf formatting
10. Structures, Unions, Bit Manipulation and Enumerations: Creating Custom Types with structs and unions, Bitwise Operators, Named Constants
11. File Processing: Streams, Text and Binary Files, CSV Files, Sequential and Random-Access Files
PART 4: (Advanced) Algorithms and Data Structures
12. Data Structures: Dynamic Memory Allocation and Deallocation, Lists, Stacks, Queues, Binary Trees
13. Computer-Science Thinking: Sorting Algorithms and Big O Insertion Sort, Selection Sort, Merge Sort, Additional Algorithms including Quicksort in the Exercises
PART 5: (Advanced) Preprocessor and Other Topics
14. Preprocessor: #include, Conditional Compilation, Macros with Arguments, Assertions
15. Other Topics: Variable-Length Argument Lists, Command-line Arguments, Multiple-Source-Pile Programs, extern, exit/atexit, calloc/realloc, goto, Numeric Literal Suffixes, Signal Handling
Operator Precedence Chart
ASCII Character Set
Multithreading/Multicore and other C18/C11/C99 Topics
Intro to Object-Oriented Programming Concepts
F-H. Using the Visual Studio Debugger, Using the GNU gdb Debugger, and Using the Xcode Debugger
System Programming Case Studies
Systems Software: Building Your Own Computer
Systems Software: Building Your Own Compiler
Embedded Systems Programming: Robotics with the Webots Simulator
Performance with Multithreading and Multicore Systems
Applications Programming Case Studies
Random-Number Simulation: Building a Casino Game
Random-Number Simulation: Card Shuffling and Dealing
Random-Number Simulation: The Tortoise and the Hare Race
Intro to Data Science: Survey Data Analysis
Direct-Access File Processing: Transaction-Processing System
Visualizing a Sorting Algorithm: Merge Sort
Artificial Intelligence/Data Science: NLP: Who Wrote Shakespeare's Works?
Artificial Intelligence/Data Science: Machine Learning with the GNU Scientific Library
Game Programming: SpotOn Game with the raylib Library
Game Programming: Cannon Game with the raylib Library
Security and Cryptography: Implementing a Vigenère Cipher
Visualization with gnuplot: Law of Large Numbers Animation
Web Services and the Cloud: libcurl and OpenWeatherMap