Security scan is checking this page.

Chapter 1

Introduction to Computer Science

Read chapter 1 in the book

Summary

Computer science (CS) is the study of computing, which includes all phenomena related to computers, such as the Internet. With foundations in engineering and mathematics, computer science focuses on studying algorithms, which are instructions that enable computing. This includes computer hardware and software and the way these are used to process information. Three perspectives on computers include the hardware perspective, software perspective, and theoretical perspective.

Key terms

software
algorithmic principles that determine how results are computed
hardware
physical, real-world materials that enable computation
computer science (CS)
study of the phenomena surrounding computers
computing
all phenomena related to computers
algorithm
sequence of precise instructions
artificial intelligence (AI)
development of computer functions to perform tasks, such as visual perception and decision-making processes, that usually are performed by human intelligence
social determination of technology
belief that technologies are inherently neutral, and that it is the people who use a technology who ultimately make it “good” or “bad”
adversarial attack
sample input (e.g., an image) that is designed to cause a system to behave problematically

Chapter 2

Computational Thinking and Design Reusability

Read chapter 2 in the book

Summary

Computational thinking is a set of tools or strategies for solving (and learning how to solve) complex problems that relate to mathematical thinking in its use of abstraction, decomposition, measurement, and modeling Characterization of computational thinking is the three As: abstraction, automation, and analysis Decomposition is a fundamental concept in computational thinking, representing the process of systematically breaking down a complex problem or system into smaller, more manageable parts or subproblems Abstraction is a computational thinking technique that centers on focusing on important information while ignoring irrelevant details

Key terms

computational thinking
problem-solving and cognitive process rooted in principles derived from computer science that involves breaking down complex problems into smaller, more manageable parts and…
automation
using a program or computer application to perform repetitive tasks or calculations
decomposition
solving of a complex problem by breaking it up into smaller, more manageable tasks
abstraction
simplified representation of complex systems or phenomena
system architecture
deals with application and data, and how they are related to each other and what business process they support together
solutions continuum
strategy where existing solutions, components, or patterns are leveraged and adapted for use in different contexts
elementary business process (EBP)
fundamental and indivisible activity within a business that is not further subdivided into smaller processes
monolithic structure
system or application architecture where all the components are tightly integrated into a single unit

Chapter 3

Data Structures and Algorithms

Read chapter 3 in the book

Summary

Linear data structures organize elements in a line, ideal for implementing the list abstract data type. Linear data structures include array lists and linked lists Abstract data types include lists, sets, maps, priority queues, and graphs Data structures represent complex data types for solving real-world problems.

Key terms

data structure
complex data type with specific representation and specific functionality
linear data structure
category of data structures where elements are ordered in a line
data type
determines how computers process data by defining the possible values for data and the possible functionality or operations on that data
linear
type of order of growth where the resources required to run the algorithm increases at about the same rate as the size of the problem increases
linked list
data structure that does not necessarily store elements next to each other and instead works by maintaining, for each element, a link to the next element in the list
set
represents an unordered collection of unique elements and allows adding, retrieving, and removing elements from the set
map
represents unordered associations between key-value pairs of elements, where each key can only appear once in the map
list
ordered sequence of elements and allows adding, retrieving, and removing elements from any position in the list

Chapter 4

Linguistic Realization of Algorithms: Low-Level Programming Languages

Read chapter 4 in the book

Summary

There are hardware models, programming language models, and abstract models Programming language paradigms are approaches for organizing source code A computational model defines what an algorithm or program does. Low-level programming means writing machine code that can be understood by a CPU directly, or something very near to that.

Key terms

low-level programming language
programming language that operates at a low level of abstraction, meaning that code is similar to machine code
abstract model
technique that derives simpler high-level conceptual models for a computer while exploring the science of what new algorithms can or cannot do
machine code
sequence of binary digits (bits) that can be understood and executed directly by a computer
hardware model
design for a how a specific physical computer executes algorithms
computational model
system for defining what an algorithm does and how to run it
source code
text of a program written in a programming language
programming language paradigm
philosophy and approach for organizing code

Chapter 5

Hardware Realizations of Algorithms: Computer Systems Design

Read chapter 5 in the book

Summary

Computer processors operate at various levels of abstraction going from the digital logic level up to the microarchitecture level and the machine language level. The main components of a computer system include the processor, the main memory, the disk, and I/O devices They just differ as it comes to how powerful each piece is, how many CPUs are there, the size of the memory and disk, and so on The levels from problem definition to assembly language are related to the computer science field.

Key terms

assembly language
low-level language that is designed to be computer friendly
abstraction
removal of unimportant elements of a program or computer code that distract from its process
microarchitecture
architecture, or design, of the processor or microprocessor
disk
storage mechanism for data
processor
another name for the CPU
dynamic library
collection of libraries that may be linked during execution or while the program is running
flash memory
type of nonvolatile storage that can be electronically erased and reprogrammed is called
library
collection of files, functions, or scripts that are cited within a program’s code

Chapter 6

Infrastructure Abstraction Layer: Operating Systems

Read chapter 6 in the book

Summary

Operating systems provide both mechanism and policy. Policy is how to use the mechanism in specific situations Server virtualization places a software layer called a hypervisor (e.g., virtual machine monitor or VMM) between a machine (e.g., server) hardware and the operating systems that run on it An operating system (OS) is at the core of all of the connected hardware and software

Key terms

policy
controls how to use a mechanism in specific situations, that is, choose what activities need to be done
operating system (OS)
core piece of software that typically manages the interconnection of hardware and software on a given computer
virtualization
allows a system to run different types of applications used by multiple users at a time on the same computer
mechanism
activities that enforce policies and often depend on the hardware on which the operating system runs
hypervisor
software layer between machine hardware and the operating systems that run on it
access enforcement
part of the OS that is responsible for enforcing access controls and protecting authentication and authorization information
allocation
method that defines how data is stored in the memory by providing a set of requests for resources and identifying which processes should be given which resources to make the most…
cache-only memory architecture (COMA)
computer memory architecture where all memory is treated as cache, which allows for the dynamic allocation of data for optimized access and performance in multiprocessor…

Chapter 7

High-Level Programming Languages

Read chapter 7 in the book

Summary

HLLs give us the ability to make use of abstraction to build algorithms in a close-to-English representation HLLs are shipped with application programming interfaces (APIs) that contain useful tools and objects to help program them for their purpose There are criteria that are used for selecting the proper HLL for the required tasks. These can include scalability, cost, flexibility, efficiency, portability, and maintainability

Key terms

interface
construct which resembles a class definition but contains only methods which are constructed as abstract methods
abstraction
way of thinking and expressing algorithms to indicate what the programmer wants the hardware to do
busy waiting
condition of a process that is continually looking to see if it has access to a critical section, taking processor time from all processes
tokens
front-end compilation product that are sequences of compiler recognizable atomic symbols which make it much easier for the next steps to recognize them
garbage collection
process used to destroy unneeded objects and recover memory when there are no longer any references to them in the code
functional programming
programming model in which the key concept is that programs are constructed by composing functions and applying them
encapsulation
attributes and behaviors of classes and objects are self-contained and go along with them throughout their lifetime
late binding
when all methods are resolved dynamically at runtime, not by the compiler; sometimes referred to as dynamic binding

Chapter 8

Data Management

Read chapter 8 in the book

Summary

There are various data management roles: information architect, database designer, data owner, data steward, database administrator, computer scientist, and data scientist Data governance is a set of clear roles, policies, and responsibilities that enables the enterprise to manage and safeguard data quality To make a decision, data should be formatted and converted to information. Metadata are data about data and are stored in catalogs.

Key terms

data
information and facts that are stored digitally by a computer
data management
study of managing data effectively
data steward
person who ensures that the enterprise's actual business data and the metadata are accurate, accessible, secure, and safe
information architect
(also, data architect or information analyst ) a person responsible for designing the conceptual data model (blueprints) to bridge the gap between the business processes and the…
data governance
set of clear roles, policies, and responsibilities that enables the enterprise to manage and safeguard data quality
database designer
person responsible for creating, implementing, and maintaining the database management system
data owner
person with the authority to ultimately decide on the access to, and usage of, the data
computer scientist
person who has theoretical and practical knowledge of computer science

Chapter 9

Software Engineering

Read chapter 9 in the book

Summary

Software engineering is concerned with how to effectively develop software Software engineering is about solving practical issues that arise in software development, while computer science is more about theoretical principles used in software A good software engineer should have a solid background in computer science and must have good practical skills in areas such as computer programming Software is usually developed in a team in which people have different roles and responsibilities

Key terms

embedded software
software that is integrated with hardware and can include both application and system software features
black box testing
manner of testing where the tests are based on the requirements and the functionality of what is being tested without the need to focus on the code itself; input-output testing…
closed-source
form of software licensing that prohibits access to underlying source code; this type of software is typically developed for organizations or for software that is meant to be sold
code review
process whereby the source code written by one developer is manually inspected by another developer or a team of reviewers
construction phase
framework activity in which the design documents are used to write corresponding source code in a programming language and to create any supporting assets
crosscutting activity
(also: umbrella activity ) activity that crosscuts the entire software development process but is not part of the main building steps themselves
detail-level design (DLD)
focuses on detailing or expanding upon the HLD; as part of the DLD, every element of a system is provided with detailed specifications, and the logic for each component within…
dynamic quality
nonfunctional feature that relates to the qualitative behavior of software while it is in use, which means that it also depends on the hardware that the system runs on

Chapter 10

Enterprise and Solution Architectures Management

Read chapter 10 in the book

Summary

Design-centric patterns are organized in a pattern hierarchy that includes architectural styles, architectural patterns, and design patterns. Implementation-centric pattern hierarchy includes implementation styles, implementation patterns, and idioms An enterprise architecture (EA) is a conceptual blueprint that defines the structure and operation of organizations A pattern documents a recurring problem/solution pairing within a given context

Key terms

idiom
phrase or expression whose meaning cannot be inferred from the literal definitions of its individual words, but instead is understood through common usage within a language
architectural style
abstract patterns located at the top of the pattern hierarchy; they capture sets of characteristics and features that make a structure identifiable
enterprise architecture (EA)
conceptual blueprint that defines the structure and operation of organizations
pattern hierarchy
architectural styles, architectural patterns, and design patterns
enterprise architecture framework (EAF)
ensures that enterprise solutions are in alignment with the evolving vision and strategy of the organizations that use these solutions to operate and conduct day-to-day business
pattern catalog
collection of patterns organized according to specific characteristics and according to how the relationships between them are defined
subsystem
set of collaborating components that perform a given task included in software systems, and it is a separate entity within a software architecture
data architecture
design framework that structures how data is collected, stored, managed, and utilized within a system

Chapter 11

Web Applications Development

Read chapter 11 in the book

Summary

The Web is defined by phases, each denoted by its principal usage—Web 1.0 for reading content, Web 2.0 regarding social interaction, and Web 3.0 as an open, decentralized, and trusted web Traditional web architectures rendered web pages on the server, with each client request resulting in a new HTML page being sent from the server to the browser. Single-page applications (SPAs) load one web page in the browser, manipulating the UI and fetching data through APIs. The Model-View-Controller (MVC) pattern was often used for server-side development

Key terms

Web
defined by phases, each denoted by its principal usage—Web 1.0 for reading content, Web 2.0 regarding social interaction, and Web 3.0 as an open, decentralized, and trust
Web 1.0
phase of the Web where the user’s interaction was limited primarily to reading and selecting web pages
web page
document commonly written in HTML and viewed in a browser
View
presentation layer that handles the user interface
Metro bundler
bundles the JavaScript code that is deployed on the mobile device or emulator when the React Native front-end application is successfully created
optimistic rollup
protocol that increases transaction output by bundling multiple transactions into batches, which are processed off-chain
stateless application
state is not maintained by the system and previous actions do not impact future ones
zero-knowledge rollup (zk-rollup)
protocol that bundles transactions into batches that are executed off the mainnet

Chapter 12

Cloud-Native Applications Development

Read chapter 12 in the book

Summary

Monoliths can be deployed in the cloud as cloud-based applications but can be converted to leverage a microservices architecture as cloud-native applications Cloud-based applications leverage cloud platforms; however, they do not take full advantage of the inherent characteristics of the cloud like cloud-native applications. Components were used before in older architectures such as web service components and SOA. Features of cloud-native applications include they are microservices-based, container-based, API-based, and are dynamically orchestrated to scale and optimize the use of computing resources

Key terms

cloud-native application
uses microservices architecture that takes full advantage of the benefits of the cloud, such as scalability and on-demand services
web service
unit of software that is available as a resource over the Internet
monolith
application that conforms to a monolithic architecture
Backend as a Service (BaaS)
third-party service that can be integrated with an application where the BaaS code does not need to be managed, and there are no servers
container image
binary state that is built by “layering” an application and its dependencies on top of the required “layer” of binaries and libraries of the OS where there is a parent-child…
Function as a Service (FaaS)
compute platform for serverless where developers can run functions that are single units of deployment of the code, which is run by events
private cloud
cloud deployment model where resources are dedicated to one customer such as a single organization for internal use where cloud resources are accessed and managed by an…
public cloud
cloud deployment model where resources are remotely accessible by anyone offered through subscriptions or on-demand pricing plans

Chapter 13

Hybrid Multicloud Digital Solutions Development

Read chapter 13 in the book

Summary

Multicloud solutions allow businesses to connect and explore with multiple cloud vendors at once. Cloud mashup web-based application architecture allows a business to use different components coming from the multiple cloud providers in their application Hybrid cloud solutions provide a way for businesses to transform their infrastructure without putting all their resources and data into the cloud by allowing the coexistence and management between on-premises systems… This solution provides a way for the business to keep some infrastructure and data on premise and enjoy the scalability that cloud computing provides

Key terms

mashup
web-based application that combines features from two or more sources to present a new service
multicloud solution
mesh of several different computing environments to form a flexible working environment
3-D printing
(also: additive manufacturing ) process of designing static objects in three dimensions through additive processes in which successive layers of material are laid down under…
biomimetic robotics
focused on the design of robots that leverage principles that are common in nature such as what can be learned from the evolution and development of intelligence in animals and…
nanotechnology
focuses on matter at the molecular level to create structures and devices that are about 1 to 100 nm in size with fundamentally new organization, properties, and performance
relational database service (RDS)
database management service in which the relationship between data is strictly managed, often under a predefined data schema; most common type of database and includes Oracle DB…
spot/not urgent compute service
enables the user to get a task done, but keeps costs low by allowing the cloud provider to run the task without urgency when the time is convenient and cost-effective

Chapter 14

Cyber Resources Qualities and Cyber Computing Governance

Read chapter 14 in the book

Summary

To create an information security policy, organizations need the Technical Reference Model (TRM), which applies to their needs The qualities that comprise cyber resources include security, safety, performance, usability, reliability, and autonomy The security and control of a company start with an information security policy, which should outline security practices for employees and systems and apply to all architectural buckets in an organization, including… In 2022, IBM and Dell formed the Responsible Computing Framework, a systematic approach to design and development that addresses the soft skills needed in the industry.

Key terms

responsible computing
systemic approach addressing current and future challenges in computing, including sustainability, ethics, and professionalism
Technical Reference Model (TRM)
framework that details the technologies and standards used to develop a system and deliver services
information security
protecting the data, digital files, and other information maintained in a system
reliability
ability of the system to perform as needed and to specification
identity and access management (IAM)
roles and access privileges for each user, as well as the conditions under which they are granted or denied their privileges
nomadicity
ability to work in a self-contained environment or the ability to move the system from location to location, when system location is a requirement
extensibility
ability to modify the system to include new requirements or remove old requirements that are no longer needed
affordability
ability to create a system that is cost-efficient, not only monetarily but also with resource usage

Summaries and key terms on this page are taken from that chapter’s material already kept for this desk. They follow the OpenStax book. Margins is not affiliated with OpenStax. Resources, policy, and site safety