The original content for this book was created by Kenneth Leroy Busbee and written specifically for his course based on C++. The goal for this second edition is to make it programming-language
neutral, so that it may serve as an introductory programming textbook for students using any of a variety of programming languages, including C++, C#, Java, JavaScript, Python, and Swift. Other languages will be considered upon request.
Programming concepts are introduced generically, with logic demonstrated in pseudocode and flowchart form, followed by examples for different programming languages. Emphasis is placed on a modular, structured approach that supports reuse, maintenance, and self-documenting code.
As you begin to review this edition, please keep the audience in mind. If something is missing, think about whether that concept applies to programming in general or only to certain programming languages, and whether it is a fundamental, first-semester programming concept or something better addressed in a more advanced textbook.
You are encouraged to make use of the Comments page at the end of the book whenever you have suggestions or concerns regarding content or approach. All suggestions will be reviewed and
considered.
Conditions of Use
This book is licensed under a Creative Commons License (CC BY-NC-SA). You can download the ebook Programming Fundamentals, 2nd Edition for free.
- Title
- Programming Fundamentals, 2nd Edition
- Subtitle
- A Modular Structured Approach
- Author(s)
- Dave Braunschweig, Kenneth Leroy Busbee
- Published
- 2018-12-15
- Edition
- 1
- Format
- eBook (pdf, epub, mobi)
- Pages
- 422
- Language
- English
- License
- CC BY-NC-SA
- Book Homepage
- Free eBook, Errata, Code, Solutions, etc.
Programming Fundamentals Programming Fundamentals Contents Contents About this Book Kenneth Leroy Busbee and Dave Braunschweig Author Acknowledgements Kenneth Leroy Busbee and Dave Braunschweig Introduction to Programming Overview Chapter Outline Learning Objectives Systems Development Life Cycle Kenneth Leroy Busbee Program Design Kenneth Leroy Busbee Program Quality Dave Braunschweig Pseudocode Kenneth Leroy Busbee Flowcharts Kenneth Leroy Busbee Software Testing Kenneth Leroy Busbee Integrated Development Environment Kenneth Leroy Busbee Version Control Dave Braunschweig Input and Output Kenneth Leroy Busbee Hello World Dave Braunschweig C++ Examples Dave Braunschweig C Examples Dave Braunschweig Java Examples Dave Braunschweig JavaScript Examples Dave Braunschweig Python Examples Dave Braunschweig Swift Examples Dave Braunschweig Practice: Introduction to Programming Kenneth Leroy Busbee and Dave Braunschweig Data and Operators Overview Chapter Outline Learning Objectives Constants and Variables Kenneth Leroy Busbee and Dave Braunschweig Identifier Names Kenneth Leroy Busbee and Dave Braunschweig Data Types Kenneth Leroy Busbee and Dave Braunschweig Integer Data Type Kenneth Leroy Busbee and Dave Braunschweig Floating-Point Data Type Kenneth Leroy Busbee and Dave Braunschweig String Data Type Kenneth Leroy Busbee and Dave Braunschweig Boolean Data Type Kenneth Leroy Busbee and Dave Braunschweig Nothing Data Type Dave Braunschweig Order of Operations Kenneth Leroy Busbee and Dave Braunschweig Assignment Kenneth Leroy Busbee Arithmetic Operators Kenneth Leroy Busbee and Dave Braunschweig Integer Division and Modulus Kenneth Leroy Busbee Unary Operations Kenneth Leroy Busbee Lvalue and Rvalue Kenneth Leroy Busbee Data Type Conversions Kenneth Leroy Busbee and Dave Braunschweig Input-Process-Output Model Dave Braunschweig C++ Examples Dave Braunschweig C Examples Dave Braunschweig Java Examples Dave Braunschweig JavaScript Examples Dave Braunschweig Python Examples Dave Braunschweig Swift Examples Dave Braunschweig Practice: Data and Operators Kenneth Leroy Busbee and Dave Braunschweig Functions Overview Chapter Outline Learning Objectives Modular Programming Kenneth Leroy Busbee and Dave Braunschweig Hierarchy or Structure Chart Kenneth Leroy Busbee Function Examples Dave Braunschweig Parameters and Arguments Dave Braunschweig Call by Value vs. Call by Reference Dave Braunschweig Return Statement Dave Braunschweig and Kenneth Leroy Busbee Void Data Type Kenneth Leroy Busbee and Dave Braunschweig Scope Kenneth Leroy Busbee Programming Style Kenneth Leroy Busbee and Dave Braunschweig Standard Libraries Kenneth Leroy Busbee and Dave Braunschweig C++ Examples Dave Braunschweig C Examples Dave Braunschweig Java Examples Dave Braunschweig JavaScript Examples Dave Braunschweig Python Examples Dave Braunschweig Swift Examples Dave Braunschweig Practice: Functions Kenneth Leroy Busbee and Dave Braunschweig Conditions Overview Chapter Outline Learning Objectives Structured Programming Kenneth Leroy Busbee and Dave Braunschweig Selection Control Structures Kenneth Leroy Busbee and Dave Braunschweig If Then Else Kenneth Leroy Busbee Code Blocks Kenneth Leroy Busbee and Dave Braunschweig Relational Operators Kenneth Leroy Busbee Assignment vs Equality Kenneth Leroy Busbee Logical Operators Kenneth Leroy Busbee and Dave Braunschweig Nested If Then Else Kenneth Leroy Busbee Case Control Structure Kenneth Leroy Busbee Condition Examples Dave Braunschweig C++ Examples Dave Braunschweig C Examples Dave Braunschweig Java Examples Dave Braunschweig JavaScript Examples Dave Braunschweig Python Examples Dave Braunschweig Swift Examples Dave Braunschweig Practice: Conditions Kenneth Leroy Busbee Loops Overview Chapter Outline Learning Objectives Iteration Control Structures Kenneth Leroy Busbee and Dave Braunschweig While Loop Kenneth Leroy Busbee Do While Loop Kenneth Leroy Busbee and Dave Braunschweig Flag Concept Kenneth Leroy Busbee For Loop Kenneth Leroy Busbee Branching Statements Kenneth Leroy Busbee Increment and Decrement Operators Kenneth Leroy Busbee Integer Overflow Kenneth Leroy Busbee Nested For Loops Kenneth Leroy Busbee Loop Examples Dave Braunschweig C++ Examples Dave Braunschweig C Examples Dave Braunschweig Java Examples Dave Braunschweig JavaScript Examples Dave Braunschweig Python Examples Dave Braunschweig Swift Examples Dave Braunschweig Practice: Loops Kenneth Leroy Busbee Arrays Overview Chapter Outline Learning Objectives Arrays and Lists Kenneth Leroy Busbee and Dave Braunschweig Index Notation Kenneth Leroy Busbee and Dave Braunschweig Displaying Array Members Kenneth Leroy Busbee and Dave Braunschweig Arrays and Functions Kenneth Leroy Busbee and Dave Braunschweig Math Statistics with Arrays Kenneth Leroy Busbee and Dave Braunschweig Searching Arrays Kenneth Leroy Busbee and Dave Braunschweig Sorting Arrays Kenneth Leroy Busbee and Dave Braunschweig Parallel Arrays Dave Braunschweig Multidimensional Arrays Kenneth Leroy Busbee Fixed and Dynamic Arrays Dave Braunschweig C++ Examples Dave Braunschweig C Examples Dave Braunschweig Java Examples Dave Braunschweig JavaScript Examples Dave Braunschweig Python Examples Dave Braunschweig Swift Examples Dave Braunschweig Practice: Arrays Kenneth Leroy Busbee Strings and Files Overview Chapter Outline Learning Objectives Strings Kenneth Leroy Busbee and Dave Braunschweig String Functions Dave Braunschweig String Formatting Kenneth Leroy Busbee and Dave Braunschweig File Input and Output Kenneth Leroy Busbee Loading an Array from a Text File Kenneth Leroy Busbee and Dave Braunschweig C++ Examples Dave Braunschweig C Examples Dave Braunschweig Java Examples Dave Braunschweig JavaScript Examples Dave Braunschweig Python Examples Dave Braunschweig Swift Examples Dave Braunschweig Practice: Strings and Files Kenneth Leroy Busbee Object-Oriented Programming Overview Chapter Outline Learning Objectives Objects and Classes Dave Braunschweig Encapsulation Dave Braunschweig Inheritance and Polymorphism Dave Braunschweig C++ Examples Dave Braunschweig C Examples Dave Braunschweig Java Examples Dave Braunschweig JavaScript Examples Dave Braunschweig Python Examples Dave Braunschweig Swift Examples Dave Braunschweig Practice Kenneth Leroy Busbee