وبلاگ بلیان

Introduction to Computing Systems and Programming in Python

معرفی کتاب «Introduction to Computing Systems and Programming in Python» نوشتهٔ Shafiei, Amir Keivan، منتشرشده توسط نشر Independently published در سال 2023. این کتاب در فرمت epub، زبان انگلیسی ارائه شده است. «Introduction to Computing Systems and Programming in Python» در دستهٔ بدون دسته‌بندی قرار دارد.

Welcome to Introduction to Computing Systems and Programming in Python! This book is designed to provide a comprehensive introduction to computing systems and programming using Python, a popular and versatile programming language. Whether you are a beginner or have some prior programming experience, this book is a great starting point to learn the fundamentals of computer systems and programming. We will cover the basic principles of programming, including data types, control structures, functions, and object-oriented programming. Additionally, we will delve into more advanced topics such as data structures, algorithms, and file input/output. Throughout the book, we will use Python to illustrate these concepts and provide hands-on experience with programming. You will learn how to write Python programs, debug errors, and test your code. By the end of the book, you will have gained a solid foundation in programming and be able to apply these skills to a wide range of computing systems. ACKNOWLEDGMENTS i 1 Introduction 1 1.1 What are Computing Systems and Programming? 1 1.2 Why Python? 2 1.3 Book Structure 3 1.4 Conclusion 7 2 Binary Representation 8 2.1 The Binary Number System 9 2.2 Binary Arithmetic 12 2.3 Binary to Decimal Conversion 13 2.4 Decimal to Binary Conversion 14 2.5 Conclusion 16 2.6 Exercise 17 3 Data Representation 18 3.1 Signed Numbers 20 3.2 Floating-Point Numbers 21 3.3 ASCII Encoding 23 3.5 Conclusion 28 3.6 Exercise 28 4 Computer Architecture 30 4.1 The Central Processing Unit (CPU) 32 4.2 Memory 33 4.3 Input/Output (I/O) 35 4.4 Machine Language 37 4.5 Instruction Set Architecture (ISA) 38 4.6 Boot Process 39 4.7 Conclusion 41 4.8 Exersises 42 5 Logical Digital Structures 44 5.1 Logic Gates 45 5.3 Digital Circuits 49 5.4 Combinational Circuits 50 5.6 Exercises: 53 6 The Foundational Von Neumann Architecture 55 6.1 CPU, Memory, and I/O Devices 57 6.2 Fetch-Decode-Execute Cycle 59 6.3 Instruction Set 61 6.4 Pipeline 62 6.5 Conclusion 63 6.6 Exercises 64 7 Introduction to Programming 65 7.1 Python Environment Setup 66 7.2 Basic Syntax 66 7.3 Variables and Data Types 68 7.3.1 Numeric 69 7.3.2 Sequence 71 7.3.3 Text 72 7.3.3 Mapping 73 7.3.4 Set 75 7.3.5 Precedence of operators 78 7.4 First Program in Python 80 4.4.1 User Input 81 7.5 Conclusion 82 7.5 Exercises 83 8 The Art of Control Structures 84 8.1 Conditional Statements: 85 8.2 Looping Statements: 86 8.4 Nested Loops: 91 8.5 Conclusion 92 8.6 Exercises 93 9 Functions 95 9.1 Defining and Calling Functions 95 9.2 Function Parameters 97 9.3 Calling Functions 98 9.4 Return Statements 99 9.5 Default Parameters 101 9.6 Variable Scope 102 9.7 Recursive Functions 104 9.8 Lambda Functions 107 9.9 Conclusion 109 9.10 Exercises 109 10 Pointers and Arrays in Python 111 10.1 Understanding Pointers and Arrays in Python 111 10.2 Working with Pointers in Python 112 10.3 Creating and Using Arrays 115 10.4 Multidimensional Arrays in Python 116 10.5 Pointers and Arrays in Functions 117 10.6 Array slicing 119 10.7 Arrays in NumPy 120 10.7.1 Creating NumPy Arrays 121 10.7.2 Indexing and Slicing NumPy Arrays 123 10.7.3 Operations on NumPy Arrays 123 10.8 Conclusion 126 10.9 Exercises 127 11 Troubleshooting 128 11.1 Introduction 128 11.1.1 The importance of troubleshooting in programming 128 11.1.2 Common types of errors 129 11.2 Debugging Tools: 130 11.2.1 Print Statements 131 11.2.2 Breakpoints 132 11.2.3 IDE Debuggers 132 11.2.4 Traceback Module 135 11.3 Debugging Strategies 136 11.4 Handling Exceptions 139 11.4.1 try-except blocks 140 11.4.2 Handling specific exceptions 141 11.4.3 Raising exceptions 141 11.5 Conclusion 142 11.6 Exercise 142 12 Input and Output 143 12.1 Standard Input and Output 143 12.1.1 The print() Function 145 12.1.2 The input() Function 146 12.2 File Input and Output 147 12.2.1 Opening and Closing Files 148 12.2.2 Writing to Files 150 12.2.3 Reading from Files 152 12.2.4 File Modes 154 12.4 Working with Directories 156 Creating a Directory 156 Removing a Directory 157 Listing the Contents of a Directory 157 Changing the Current Working Directory 157 Checking if a Directory Exists 158 12.5 Understanding CSV and JSON File Formats 159 12.5 Conclusion 160 12.6 Exercises 161 13 Linked Lists 163 13.1 Introduction to Linked Lists 163 13.2 Singly Linked Lists 165 13.3 Doubly Linked Lists 168 13.4 Circular Linked Lists 171 13.4.1 Circular Singly Linked Lists 172 13.4.2 Circular Doubly Linked Lists 173 13.5 Applications of Linked Lists 175 13.5.1 Dynamic Memory Allocation: 175 13.5.2 Implementation of Stacks and Queues: 176 13.5.3 Sparse Matrix: 176 13.5.4 Image Compression: 176 13.5.5 Polynomial Manipulation: 177 13.7 Conclusion 177 13.8 Exercises 178 14 Algorithms 179 14.1 Introduction to Algorithms 179 14.1.1 Characteristics of Good Algorithms 181 14.1.2 Algorithm Analysis 182 14.2 Sorting Algorithms 183 14.2.1 Bubble Sort 183 14.2.2 Selection Sort 185 14.2.3 Insertion Sort 187 14.2.4 Merge Sort 189 14.2.5 Quick Sort 192 14.2.6 Heap Sort 193 14.3 Searching Algorithms 195 14.3.1 Linear Search 195 14.3.2 Binary Search 196 14.3.3 Interpolation Search 197 14.4 Graph Algorithms 199 14.4.1 Breadth-First Search 199 14.4.2 Depth-First Search 203 14.4.3 Dijkstra's Algorithm 204 14.4.4 Bellman-Ford Algorithm 207 14.5 Dynamic Programming 210 14.5.1 What is Dynamic Programming? 210 14.5.2 Fibonacci Sequence 211 14.5.3 Longest Common Subsequence 212 14.5.4 Knapsack Problem 215 14.6 Conclusion 217 14.7 Exercises 218 15 Compiler and Assembler and Interpreter 220 15.1 Introduction to Compiler, Assembler, and Interpreter 220 15.2 Compiler 221 15.2.1 How does a Compiler work? 222 15.2.2 Advantages and Disadvantages of Compilers 223 15.2.3 Examples of Compilers 224 15.3 Assembler 224 15.3.1 How does an Assembler work? 225 15.3.2 Types of Assemblers 225 15.3.3 Advantages and Disadvantages of Assemblers​226 15.3.4 Examples of Assemblers 227 15.4 Interpreter 227 15.4.1 How does an Interpreter work? 227 15.4.2 Advantages and Disadvantages of Interpretation 228 15.5 Comparison of Compiler, Assembler, and Interpreter 229 15.5.1 Speed and Efficiency 229 15.5.2 Portability 230 15.5.3 Debugging 230 15.5.4 Summary 231 15.6 Conclusion 231 15.7 Exercises 232 16 Conclusion 234 16.1 Recap of the Book's Main Topics and Themes 234 16.2 Reflection on the Importance of Computer Science in Modern Society 235 16.3 Future Trends and Challenges in Computer Science​236 Appendix A Python Built-In Functions 239 Appendix B Glossary of Terms 257 Appendix C Further Reading 260
دانلود کتاب Introduction to Computing Systems and Programming in Python