Chapter1 Introduction of Computer Science 1
1.1 History of Computer Science 1
1.2 Areas of Computer Science 4
1.2.1 Theoretical Computer Science 4
1.2.2 Applied Computer Science 6
1.3 Is Computer Science Science? 7
1.3.1 Common Understandings of Science 7
1.3.2 Internal Disagreement 10
1.3.3 Computer Science Thrives on Relationships 10
1.3.4 Validating Computer Science Claims 11
1.4 The Future of Computer Science 12
1.4.1 Introduction 12
1.4.2 Innovative Research Projects 14
1.4.3 Theoretical Foundation 17
1.4.4 An Interview 18
1.5 Key Terms and Review Questions 22
References 25
Chapter2 Computer Architecture and Networks 27
2.1 Introduction 27
2.1.1 Computer Architecture 27
2.1.2 Design Goals 28
2.2 Computer System 29
2.2.1 Hardware 29
2.2.2 Software 31
2.3 Computer Networking 33
2.3.1 Network Hardware 34
2.3.2 Network Protocols 35
2.3.3 Internet and TCPIP 37
2.4 Wireless Network 40
2.4.1 Wireless LAN Networking Basics 40
2.4.2 Mobile Network 41
2.4.3 Wireless Sensor Network 42
2.5 Key Terms and Review Questions 46
References 51
Chapter3 Operating System 52
3.1 Definition and Function 52
3.1.1 What is Operating System? 52
3.1.2 Functions of Operating System 53
3.1.3 Types of Operating Systems 55
3.2 Tasks of an Operating System 57
3.2.1 Processor Management 57
3.2.2 Process Management 59
3.2.3 Memory and Storage Management 60
3.2.4 Device Management 61
3.2.5 Application Interface 62
3.2.6 User Interface 63
3.3 Examples of Popular Modern Operating Systems 65
3.3.1 UNIX and UNIX-like Operating Systems 65
3.3.2 Microsoft Windows 67
3.4 Comparison of Windows and UNIX Environments 69
3.5 Key Terms and Review Questions 82
References 84
Chapter4 Algorithms, Data Structures and Software Engineering 86
4.1 Algorithm 86
4.1.1 Introduction 86
4.1.2 Definition of Algorithms 87
4.1.3 Specifying Algorithms 89
4.1.4 Examples Sorting Algorithms 90
4.1.5 Algorithm Analysis 98
4.2 Data Structures 100
4.2.1 Definition 100
4.2.2 Types of Data Structure 102
4.3 Programming 106
4.3.1 Evolution of Programming Language 106
4.3.2 Basic Components and Structure of a Program 107
4.3.3 Object-oriented Programming 112
4.4 Software Engineering 116
4.4.1 Life Cycle of Software 116
4.4.2 Software Development Models 118
4.4.3 Software Quality Characteristics 121
4.5 Key Terms and Review Questions 123
References 127
Chapter 5 Databases and Information Retrieval 129
5.1 Database System 129
5.1.1 Database 129
5.1.2 Relational Database 130
5.1.3 Database Management System 133
5.1.4 SQL 135
5.2 Information Retrieval 136
5.2.1 Introduction 136
5.2.2 An Example of Information Retrieval 138
5.2.3 Open Source IR System 143
5.2.4 Performance Measure 144
5.3 Web Search Basics 145
5.3.1 Background and History 145
5.3.2 Web Search Features 147
5.3.3 Web Crawling and Indexes 150
5.4 Key Terms and Review Questions 152
References 155
Chapter 6 Artificial Intelligence 156
6.1 Introduction 156
6.1.1 History of AI 156
6.1.2 Research Branches of AI 157
6.2 Turing Test 161
6.2.1 Introduction 161
6.2.2 Alan Turing 161
6.2.3 Inception of the Turing Test 162
6.2.4 ProblemsDifficulties with the Turing Test 163
6.2.5 The Current State of the Turing Test 165
6.2.6 Artificial Intelligence Computer System Passes Visual Turing Test 166
6.3 Knowledge Representation and Reasoning 168
6.3.1 How to Represent Knowledge 168
6.3.2 Representation 169
6.3.3 Reasoning about Knowledge 170
6.3.4 KBS 170
6.3.5 MYCINA Case Study 172
6.4 Case-based Reasoning 173
6.4.1 Introduction 173
6.4.2 Fundamental of Case-based Reasoning 174
6.4.3 The CBR Process 175
6.4.4 Example-based Machine Translation 177
6.5 Robotics 180
6.5.1 Components of Robot 180
6.5.2 Control System 184
6.5.3 Environmental Interaction and Navigation 185
6.5.4 Top 10 Humanoid Robots 187
6.6 Computer Vision 192
6.6.1 Brief Introduction 192
6.6.2 Tasks of Computer Vision 194
6.6.3 An Example Facial Recognition System 196
6.7 Existential Risk from Artificial General Intelligence 198
6.7.1 Overview 198
6.7.2 Risk Scenarios 199
6.7.3 Different Reactions on the Thesis 203
6.8 Key Terms and Review Questions 204
References 208
Chapter 7 Computer Graphics and Visualization 210
7.1 Computer Graphics 210
7.1.1 What Is Computer Graphics 210
7.1.2 Types of Graphics 211
7.1.3 Techniques Used in CG 214
7.1.4 Computer-aided Design 217
7.1.5 3D Modeling 219
7.2 Virtual Reality 221
7.2.1 What Is Virtual Reality? 222
7.2.2 Types of Virtual Reality 223
7.2.3 Equipment Used in Virtual Reality 225
7.2.4 Applications of Virtual Reality 227
7.2.5 Pros and Cons of Virtual Reality 228
7.3 Data Visualization 229
7.3.1 Characteristics of Effective Graphical Displays 230
7.3.2 Quantitative Messages 230
7.3.3 Visual Perception and Data Visualization 231
7.3.4 Examples of Diagrams Used for Data Visualization 232
7.4 Key Terms and Review Questions 237
References 240
Chapter 8 Human-Computer Interaction 241
8.1 Human-Computer Interaction 241
8.1.1 History of HCI 241
8.1.2 From Cabal to Community 242
8.1.3 Beyond the Desktop 243
8.1.4 The Task-artifact Cycle 245
8.1.5 A Caldron of Theory 246
8.1.6 Implications of HCI for Science, Practice, and Epistemology 247
8.2 User Interface Design Adaptation 248
8.2.1 Introduction 248
8.2.2 User InterfaceTaskPlatform Relations 251
8.2.3 Authoring Multi-Device Interactive Applications 251
8.2.4 Adaptation Rules 252
8.2.5 Model-based UI Design in Multi-Device Contexts 254
8.2.6 Vocal Interfaces 256
8.2.7 Multimodal User Interfaces 256
8.3 HRI 258
8.3.1 Introduction of HRI 258
8.3.2 HRI About not Romanticizing Robots 260
8.3.3 HRI There Is No Such Thing as Natural Interaction 261
8.3.4 HRI There Is a Place For Non-humanoid Robots 263
8.4 Key Terms and Review Questions 265
References 267
Chapter 9 Computer Security 269
9.1 Computer Security Issues 269
9.1.1 Basic Security Concepts 269
9.1.2 Threats and Attacks 271
9.1.3 A Model for Network Security 275
9.2 Security Countermeasure 277
9.3 Cryptography 282
9.3.1 Basic Concepts 283
9.3.2 History of Cryptography 283
9.3.3 Modern Cryptography 287
9.4 Top 10 Cyber-security Issues in 2016 290
9.5 Cyberwar 292
9.5.1 A Cybersecurity Wargame Scenario 292
9.5.2 The First Casualty of Cyberwar Is The Web 293
9.5.3 Building Digital Armies 294
9.5.4 How Cyber Weapons Work 296
9.5.5 When Is a Cyberwar Not a Cyberwar? 297
9.5.6 The Targets in Cyberwar 298
9.5.7 Cyberwar: Coming to a Living Room Near You? 298
9.6 Key Terms and Review Questions 299
References 303
Chapter 10 Latest Progresses in Computer Science 304
10.1 Quantum Information Science 304
10.1.1 Quantum Computing 304
10.1.2 Quantum Cryptography 308
10.2 Deep Learning 311
10.2.1 Introduction 311
10.2.2 Historical Trends in Deep Learning 315
10.3 Cloud Computing 319
10.3.1 The Vision of Cloud Computing 320
10.3.2 Defining a Cloud 322
10.3.3 A Closer Look 323
10.3.4 The Cloud Computing Reference Model 325
10.4 Big Data 326
10.4.1 Let the Data Speak 326
10.4.2 Definition and Characteristic of Big Data 329
10.4.3 Value of Big Data 330
10.4.4 Risk of Big Data 332
10.5 Key Terms and Review Questions 333
References 337