xxiii, 293 s. :
Essential Computer Science
â Scribed by Crucher et al
- Year
- 2021
- Tongue
- English
- Leaves
- 303
- Category
- Library
No coin nor oath required. For personal study only.
⌠Table of Contents
Table of Contents
About the Authors
About the Contributors
About the Technical Reviewer
Acknowledgments
Introduction
Chapter 1: Fundamentals of a Computer System
von Neumann Architecture
CPU: Fetch, Decode, Execute, and Store
Fetch
Instruction Set Architecture
Registers
Decode, Execute, and Store
Controlling the Flow
The Stack
Instruction Pipeline
Flynnâs Taxonomy
Main Memory and Secondary Storage
Input and Output (I/O)
Summary
References and Further Reading
Chapter 2: Programming
Programming Language Fundamentals
Hello, World!
Compile, Link, and Load
High-Level Languages
Programming Paradigms
Imperative Programming
Declarative Programming
Object-Oriented Programming
Interpreted Programming
Parallel Programming
Machine Learning
Summary
References and Further Reading
Chapter 3: Algorithm and Data Structure
What Is an Algorithm
Good and Not So Good Algorithm
Time/Space Complexity
Asymptotic Notation
Fundamental Data Structures and Algorithms
Store (Data Structure)
Stack
Queue
Tree
Graph
Linked List
Array
Dictionary
Making Use of the Data: Searching, Sorting
Problem Solving Techniques
Recursion
Divide and Conquer
Brute Force
Greedy Algorithms
Class of Problems
NP-Complete and NP-Hard Problems
Databases
Persistence and Volume
Fundamental Requirements: ACID
Brief History of Database System Evolution
Most Prominent Current Database Systems
Relational Data and SQL
Structured Data/Unstructured Data
NoSQL
Examples of NoSQL Databases
Graph DB: Neo4j
Column Family DB: Bigtable and Cassandra
Document DB: CouchDB and MongoDB
Summary
References and Further Reading
Chapter 4: Operating System
What Is an Operating System
OS Categories
Why We Need an OS
Purpose of an OS
Complex and Multiprocessor Systems
Multitasking and Multifunction Software
Multiuser Systems
Why Is It Important to Know About the OS?
Responsibilities of an OS
Scheduling
Program and Process Basics
Process States
Process Control Block (PCB)
Context Switching
Scheduling
Scheduling Criteria
Thread Concepts
Memory Management
Address Binding
Logical vs. Physical Address
Inter-process Communication
Shared Memory Method
Message Passing Method
Further Reading
I/O Management
I/O Subsystem
Block Devices
Character Devices
Special Instruction I/O
Memory-Mapped I/O
Direct Memory Access (DMA)
Polled vs. Interrupt I/Os
I/O and Performance
Synchronization Concepts
Critical Sections
Mutex
Semaphore
Deadlocks
File Systems
File Concepts
Directory Namespace
Access Control
Concurrency and Cleanup Control
Access and Protection
Rings: User Mode and Kernel Mode
Virtualization
Protection
User Interface and Shell
Some OS Specifics
Summary
References and Further Reading
Chapter 5: Computer Networks and Distributed Systems
History and Evolution of Networks and the Internet
Protocols: Stateful and Stateless
Internet Protocol (IP): TCP and UDP
Host, IP Address, MAC Address, Port, Socket
DNS and DHCP
Proxy, Firewall, Routing
Distributed Systems: Prominent Architectures
Client Server
Peer to Peer
N-Tiered
Distributed System Examples
FTP
The World Wide Web
Case Study: Web Application
System Architecture
HTML, CSS, and JavaScript
Front End
Back End
Summary
References and Further Reading
Chapter 6: Computer Security
Access Control
Confidentiality
Integrity
Availability
Symmetric Key Cryptography
Asymmetric Key Cryptography
Digital Signatures
Digital Certificates
Certificate Chains
Salts and Nonces
Random Numbers
Security in Client Computing Systems
Malware, the Bad Apples of Software
Security of Data at Rest
Security of Data in Use
Application vs. Kernel vs. Drivers
User Authentication and Authorization
Trusted Execution Environments and Virtual Machines
Secure Boot
Secure I/O
Digital Rights Management
Communication Security: Security of Data in Motion
Transport Layer Security
Virtual Private Network
IP Security
Writing Secure Programs: Where Do We Start?
Summary
References and Further Reading
Chapter 7: Cloud Computing
Cloud Computing Models
IaaS
PaaS
Serverless
SaaS
Comparison of Cloud Computing Models
Benefits of Cloud Computing
Cost
Scalability
Velocity
Reliability and Availability
Productivity
Performance
Ease of Use and Maintenance
Cloud Deployment Configurations
Private Cloud
Public Cloud
Hybrid Cloud
Ideal Cloud Deployment Configuration
Multi-cloud Model
Cloud Configuration Interface/Mechanism
Cloud Service Providers
Considerations in Choosing a CSP
Motivation for Switching CSPs
Usage and Pricing Change
CSP Ecosystem Change
Regulatory, Privacy, and Business Dynamics Change
Considerations for Developing Portable and Interoperable Cloud Solutions
Interoperability vs. Portability
Interoperability Challenges
Portability Challenges
Containers, Docker, and Kubernetes
Benefits of Containers and Container Orchestration
Security
Scalability
The Way Forward
Recommendations
Summary
References and Further Reading
Chapter 8: Machine Learning
Brief History of Machine Learning
Artificial Intelligence, Machine Learning, and Deep Learning
Fundamental Tenets of Machine Learning
Models
Training
Prediction (Inference)
Categories of Machine learning
Supervised Learning
Unsupervised Learning
Semi-supervised Learning
Reinforcement Learning
Machine Learning in Practice
Leading Machine Learning Frameworks
Machine Learning and Cloud Computing
The Way Forward
Summary
References
Appendix A: Software Development Lifecycle
Planning
Analysis
Architecture and Design
Implementation
Test
Deploy
Maintenance
Appendix B: Software Engineering Practices
Planning and Management Practices: Agile
Scrum
Kanban
Analysis and Design
Scaling Agile Practices
Documentation
Requirements, Design, and Architecture
Comments and Code
User
Testing
Phases and Categories of Testing and Goals
Algorithm Testing, Unit Testing, Integration Testing, and the Like
Test-Driven Development
Developing for Debug
Asserts and Exceptions
Logging and Tracing
Source Control Management
Purpose and Mechanism
Tools
Perforce Helix
Git
Build Optimizations and Tools
Purpose and Mechanism
Tools
Make
Gradle
Cmake and Ninja
Continuous Integration and Continuous Delivery
Purpose and Mechanism
Tools
Jenkins
CircleCI
GitLab CI/CD
Appendix C: ACPI System States
Global and System States
Device States
Processor States
Appendix D: System Boot Flow
Index
đ SIMILAR VOLUMES
This book introduces readers to the mathematics of computer science and prepares them for the math they will encounter in other college courses. It includes applications that are specific to computer science, helps learners to develop reasoning skills, and provides the fundamental mathematics necess
This book introduces readers to the mathematics of computer science and prepares them for the math they will encounter in other college courses. It includes applications that are specific to computer science, helps learners to develop reasoning skills, and provides the fundamental mathematics necess