PREFACE 1
1 INTRODUCTION 1
1.1 WHAT IS COMPUTER SCIENCE? 1
1.2 VON NEUMANN MODEL 1
1.3 COMPUTER COMPONENTS 2
1.4 HISTORY AND DEVELOPMENT TRENDS 3
1.5 FRONTIERS OF COMPUTER TECHNOLOGY 5
1.6 MAJOR FIELDS OF COMPUTER SCIENCE 13
1.7 REFERENCES AND RECOMMENDED READINGS 14
1.8 SUMMARY 14
1.9 PRACTICE SET 15
2 NUMBER SYSTEMS AND CONVERSIONS 16
2.1 INTRODUCTION 16
2.2 POSITIONAL NUMBER SYSTEMS 17
2.3 NON-POSITIONAL NUMBER SYSTEMS 28
2.4 REFERENCES AND RECOMMENDED READINGS 29
2.5 SUMMARY 29
2.6 PRACTICE SET 30
3 DATA STORAGE AND COMPRESSION 32
3.1 BIT PATTERN 32
3.2 INTEGER IN COMPUTER 33
3.3 FLOATING-POINT IN COMPUTER 36
3.4 DATA STORAGE 39
3.5 CLOUD STORAGE AND BIG DATA STORAGE 50
3.6 REFERENCES AND RECOMMENDED READINGS 54
3.7 SUMMARY 55
3.8 PRACTICE SET 56
4 DATA OPERATIONS 59
4.1 LOGICAL OPERATIONS 59
4.2 ARITHMETIC OPERATIONS 66
4.3 SHIFT OPERATIONS 71
4.4 REFERENCES AND RECOMMENDED READINGS 74
4.5 SUMMARY 74
4.6 PRACTICE SET 75
5 COMPUTER COMPONENTS 78
5.1 THREE MAIN COMPONENTS 78
5.2 COMPONENTS INTERCONNECTION 89
5.3 MACHINE CYCLE 90
5.4 COMPUTER ARCHITECTURES 91
5.5 REFERENCES AND RECOMMENDED READINGS 92
5.6 SUMMARY 93
5.7 PRACTICE SET 94
6 COMPUTER NETWORKS 96
6.1 TYPES OF NETWORKS 96
6.2 TCP/IP MODEL 99
6.3 DEVICES IN NETWORKS 103
6.4 NEW DEVELOPMENT IN NETWORKS 105
6.5 REFERENCES AND RECOMMENDED READINGS 113
6.6 SUMMARY 113
6.7 PRACTICE SET 115
7 OPERATING SYSTEMS 117
7.1 CATEGORIES 117
7.2 COMPONENTS 119
7.3 POPULAR OPERATING SYSTEMS 127
7.4 REFERENCES AND RECOMMENDED READINGS 131
7.5 SUMMARY 131
7.6 PRACTICE SET 132
8 ALGORITHM 135
8.1 WHAT IS ALGORITHM? 135
8.2 THREE CONSTRUCTS 136
8.3 HOW TO EVALUATE ALGORITHMS 137
8.4 ALGORITHM REPRESENTATION 138
8.5 BASIC ALGORITHMS 139
8.6 CLASSIFICATION OF ALGORITHM 148
8.7 REFERENCES AND RECOMMENDED READINGS 152
8.8 SUMMARY 152
8.9 PRACTICE SET 153
9 PROGRAMMING LANGUAGES 155
9.1 DEVELOPMENT 155
9.2 PROGRAM TRANSLATION 157
9.3 LANGUAGES' LATEST RANKING, CATEGORIES AND FEATURES 158
9.4 COMMON CONCEPTS OF PROGRAMMING LANGUAGES 164
9.5 SEVERE SOFTWARE ERRORS 166
9.6 REFERENCES AND RECOMMENDED READINGS 169
9.7 SUMMARY 170
9.8 PRACTICE SET 170
10 SOFTWARE ENGINEERING 172
10.1 INTRODUCTION 172
10.2 SOFTWARE DEVELOPMENT LIFE CYCLE 173
10.3 SOFTWARE DEVELOPMENT MODELS 179
10.4 CMMI AND SOFTWARE PROCESS MANAGEMENT 182
10.5 IMPORTANCE OF DOCUMENTATION 184
10.6 SERVICE-ORIENTED ARCHITECTURE 185
10.7 REFERENCES AND RECOMMENDED READINGS 185
10.8 SUMMARY 186
10.9 PRACTICE SET 187
11 DATA AND FILE STRUCTURES 188
11.1 ABSTRACT DATA TYPES 188
11.2 LIST 189
11.3 STACK 192
11.4 QUEUE 192
11.5 TREE AND GRAPH 193
11.6 FILE STRUCTURE 197
11.7 REFERENCES AND RECOMMENDED READINGS 200
11.8 SUMMARY 201
11.9 PRACTICE SET 201
12 DATABASES 203
12.1 INTRODUCTION 203
12.2 DATABASE MANAGEMENT SYSTEMS 205
12.3 DATABASE ARCHITECTURE 205
12.4 THE HISTORY OF DATABASE SYSTEMS 206
12.5 DATABASE MODEL 208
12.6 RELATIONAL OPERATIONS 213
12.7 DATABASES FOR BIG DATA 214
12.8 REFERENCES AND RECOMMENDED READINGS 215
12.9 SUMMARY 216
12.10 PRACTICE SET 217
13 SECURITY 219
13.1 SECURITY GOALS 219
13.2 SECURITY THREATS 220
13.3 SECURITY SERVICES 225
13.4 CRYPTOGRAPHY 230
13.5 REFERENCES AND RECOMMENDED READINGS 234
13.6 SUMMARY 235
13.7 PRACTICE SET 237
14 THEORY OF COMPUTATION 239
14.1 THE TURING MACHINE 239
14.2 HALTING PROBLEM 244
14.3 SOLVABLE PROBLEMS 246
14.4 REFERENCES AND RECOMMENDED READINGS 248
14.5 SUMMARY 248
14.6 PRACTICE SET 248
15 ARTIFICIAL INTELLIGENCE 250
15.1 INTRODUCTION 250
15.2 KNOWLEDGE REPRESENTATION AND EXPERT SYSTEMS 251
15.3 PERCEPTION 253
15.4 REASONING 262
15.5 NATURE INSPIRED COMPUTATION 266
15.6 REFERENCES AND RECOMMENDED READINGS 271
15.7 SUMMARY 272
15.8 PRACTICE SET 273
16 INTERNET OF THINGS, CLOUD COMPUTING AND DATA SCIENCE 274
16.1 INTRODUCTION 274
16.2 OPPORTUNITIES IN IOT, CLOUD, AND DATA SCIENCE 279
16.3 CHALLENGES AND RESEARCH DIRECTIONS 281
16.4 IOT APPLICATIONS 284
16.5 CLOUD APPLICATION SERVICE MODELS 286
16.6 CLOUD APPLICATION DEPLOYMENT MODELS 287
16.7 BIG DATA TOOLS AND TECHNIQUES 287
16.8 INTEGRATION OF IOT, CLOUD COMPUTING, AND BIG DATA 289
16.9 REFERENCES AND RECOMMENDED READINGS 291
16.10 SUMMARY 291
16.11 PRACTICE SET 292