For courses in Computer Programming with Python.<br><br>This package includes MyProgrammingLabยฎ<br><br>Social Computing and Programming with Python<br><br>Introduction to Computing and Programming in Python is a uniquely researched and up-to-date volume that is widely recognized for its successful i
Introduction to Computing Systems and Programming in Python
โ Scribed by Shafiei, Amir Keivan
- Publisher
- Independently Published
- Year
- 2023
- Tongue
- English
- Leaves
- 255
- Category
- Library
No coin nor oath required. For personal study only.
โฆ Synopsis
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.
โฆ Table of Contents
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
๐ SIMILAR VOLUMES
<em>An Active Learning Approach to Teaching the Main Ideas in Computing </em><strong>Explorations in Computing: An Introduction to Computer Science and Python Programming</strong> teaches computer science students how to use programming skills to explore fundamental concepts and computational appro
"This text helps beginners develop their own Python programs. Experiments with fully completed programs are provided at the beginning of each chapter, allowing instructors to use the text in CS0 courses where students do not learn programming. Programming projects appear later in each chapter. Stude
This book introduces students with little or no prior programming experience to the art of computational problem solving using Python and various Python libraries, including PyLab. It provides students with skills that will enable them to make productive use of computational techniques, including so
This book introduces students with little or no prior programming experience to the art of computational problem solving using Python and various Python libraries, including numpy, matplotlib, random, pandas, and sklearn. It provides students with skills that will enable them to make productive use