PREFACE\t1 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