Thor Teaches Study Guide CISSP Domain 8
Thor Teaches Study Guide CISSP Domain 8
• Programming concepts:
• Machine Code:
• Software executed directly by the CPU, 0s and 1s understood by the CPU.
• Source Code:
• Computer programming language, written in text and is human understandable,
translated into machine code.
• Assembler Language:
1|Page
https://thorteaches.com/
CISSP Domain 8 Lecture notes
• Short mnemonics like ADD/SUB/JMP, which are matched with the full-length
binary machine code; assemblers convert assembly language into machine
language. A disassembler does the reverse.
• Compiler Languages:
• Translates the higher-level language into machine code and saves, often as
executables, compiled once and run multiple times.
• Interpreted languages:
• Similar to compiler languages but interprets the code each time it is run into
machine code.
• Programming concepts:
• Bytecode:
• An interpreted code, in intermediary form, converted from source code to
interpreted, but still needs to be converted into machine code before it can run
on the CPU.
• Procedural languages (Procedure-oriented):
• Uses subroutines, procedures and functions.
• Object-oriented Programming (OOP):
• Based on the concept of objects, which may contain data, in the form of fields,
often known as attributes, and code, in the form of procedures, often known as
methods.
• An object's procedures can access and often modify the data fields of the
objects with which they are associated.
• In OOP, computer programs are designed by making them out of objects that
interact with one another.
• Programming concepts:
• 4th Generation languages (4GL):
• Fourth-generation languages are designed to reduce programming effort and
the time it takes to develop software, resulting in a reduction in the cost of
software development.
• Increases the efficiency by automating the creation of machine code.
• Often uses a GUI, drag and drop, and then generating the code, often used for
websites, databases and reports.
• Programming concepts:
• CASE (Computer-Aided Software Engineering):
2|Page
https://thorteaches.com/
CISSP Domain 8 Lecture notes
• Similar to and were partly inspired by computer-aided design (CAD) tools used
for designing hardware products.
• Used for developing high-quality, defect-free, and maintainable software.
• Often associated with methods for the development of information systems
together with automated tools that can be used in the software development
process.
• CASE software is classified into 3 categories:
• Tools support specific tasks in the software life cycle.
• Workbenches combine two or more tools focused on a specific part of
the software life cycle.
• Environments combine two or more tools or workbenches and support
the complete software life cycle.
• Programming concepts:
• Top-Down Programming:
• Starts with the big picture, then breaks it down into smaller segments.
• An overview of the system is formulated, specifying, but not detailing, any first-
level subsystems.
• Each subsystem is then refined in yet greater detail, sometimes in many
additional subsystem levels, until the entire specification is reduced to base
elements.
• Procedural programming leans toward Top-Down, you start with one function
and add to it.
• Bottom-Up Programming:
• Piecing together of systems to build more complex systems, making the original
systems a sub-system of the overarching system.
• The individual base elements of the system are first specified in great detail,
they are then linked together to form larger subsystems, which then in turn are
linked, sometimes in many levels, until a complete top-level system is formed.
• OOP leans tends toward Bottom-Up, you start by developing your objects and
build up.
• Programming concepts:
• Software release:
Open source:
• We release the code publicly, where it can be tested, improved and corrected,
but it also allows attackers to find the flaws in the code.
• Closed Source:
• We release the software, but keep the source code a secret, may be sound
business practice, but can also be security through obscurity.
• Proprietary software:
3|Page
https://thorteaches.com/
CISSP Domain 8 Lecture notes
• Software protected by intellectual property and/or patents, often used
interchangeably with Closed Source software, but it really is not. It can be both
Open and Closed Source software.
• Any software not released into the public domain is protected by copyright.
• Programming concepts:
• Software release:
• Free software:
• Freeware:
• Actually, free software, it is free of charge to use.
• Shareware:
• Fully functional proprietary software that is initially free to use.
• Often for trials to test the software, after 30 days you have to
pay to continue to use.
• Crippleware:
• Partially functioning proprietary software, often with key
features disabled.
• The user is required to make a payment to unlock the full
functionality.
• EULAs (End-User License Agreements):
• Electronic form where the user clicks “I agree” to the software terms
and conditions while installing the software.
• Programming concepts:
• Software licenses:
• Open source software can be protected by a variety of licensing agreement.
• GNU (General Public License): Also called GPL or GPL
• Guarantees end users the freedom to run, study, share and
modify the software.
• A copyleft license, which means that derivative work can only
be distributed under the same license terms.
• BSD (Berkeley Software Distribution):
• A family of permissive free software licenses, imposing minimal
restrictions on the use and redistribution of covered software.
• This is different than copyleft licenses, which have reciprocity
share-alike requirements.
• Apache:
• Software must be free, distribute, modify and distribute the modified
software.
• Requires preservation of the copyright notice and disclaimer.
4|Page
https://thorteaches.com/
CISSP Domain 8 Lecture notes
• There is a wide range of software development
methodologies used today.
• In the past the Waterfall method was widely used, it is a
very linear process, and does not work very well with
the iterative nature of software development.
• To remedy that problem other methods were developed
Spiral, Sashimi, Agile and Scrum.
• The individual phases are different from organization to
organization, understand how each methodology works
and the phases flow.
• Waterfall:
• Very linear, each phase leads directly into the next.
• The unmodified waterfall model does not allow us to go back to the previous
phase.
5|Page
https://thorteaches.com/
CISSP Domain 8 Lecture notes
• What is valued in the manifesto?
• Individuals and Interactions more than
processes and tools.
• Working Software more than
comprehensive documentation.
• Customer Collaboration more than
contract negotiation.
• Responding to Change more than following
a plan.
• The twelve principles in the manifesto:
• Customer satisfaction by early and continuous delivery of
valuable software.
• Welcome changing requirements, even in late development.
• Working software is delivered frequently (weeks rather than
months).
• Close, daily cooperation between businesspeople and
developers.
• Projects are built around motivated individuals, who should be
trusted.
6|Page
https://thorteaches.com/
CISSP Domain 8 Lecture notes
• Scrum is a framework for managing software development. Scrum is
designed for teams of approximately 10 individuals, and generally relies
on two-week development cycles, called "sprints", as well as short daily
stand-up meetings.
• The three core roles in the Scrum framework.
• The product owner:
• Representing the product's stakeholders, the voice of
the customer, and is accountable for ensuring that the
team delivers value to the business.
• Development team:
• Responsible for delivering the product at the end of
each sprint (sprint goal).
• The team is made up of 3–9 individuals who do the
actual work (analysis, design, develop, test, technical
communication, document, etc.).
7|Page
https://thorteaches.com/
CISSP Domain 8 Lecture notes
• Programming in pairs or doing extensive code review.
• Unit testing of all code.
• Avoiding programming of features until they are actually
needed.
• Flat management structure.
• Code simplicity and clarity.
• Expecting changes in the customer's requirements as time
passes and the problem is better understood.
• Frequent communication with the customer and among
programmers.
8|Page
https://thorteaches.com/
CISSP Domain 8 Lecture notes
• The SDLC is not really a methodology, but a
description of the phases in the life cycle of software
development.
• These phases are (in general), investigation, analysis,
design, build, test, implement, maintenance and
support (and disposal).
• Can have security built into each step of the process,
for the exam it always does.
• If an answer about SDLC does not list secure or
security, it would be wrong and can be eliminated.
• Has a number of clearly defined and distinct work
phases which are used by systems engineers and
systems developers to plan for, design, build, test, and deliver information
systems.
9|Page
https://thorteaches.com/
CISSP Domain 8 Lecture notes
• A project is a temporary
endeavor, with a finite
start and end that is
focused on creating a
unique product, service,
or result.
• A program is a collection
of related projects.
Like a project, a program is temporary, when the collection of projects is
complete, the program is complete.
• A portfolio is a collection of projects and programs that are managed as a group
to achieve strategic objectives.
10 | P a g e
https://thorteaches.com/
CISSP Domain 8 Lecture notes
• They are often used by open-source software projects and other multi-
developer projects to handle various versions. They help developers submit
patches of code in an organized fashion.
11 | P a g e
https://thorteaches.com/
CISSP Domain 8 Lecture notes
changes throughout the development and operational lifecycle of products and
systems, may also be referred to as a change control board.
• Configuration Item Identification – for selecting and naming configuration items
that need to be placed under CM.
• Configuration Change Control – Process for managing updates to the baseline
configurations for the configuration items.
• Configuration Monitoring – Process for assessing or testing the level of
compliance with the established baseline configuration and mechanisms for
reporting on the configuration status of items placed under CM
• Databases:
• An organized collection of data.
• It is the collection of schemas, tables,
queries, reports, views, and other
objects.
• The data are typically organized to model
aspects of reality in a way that supports
processes requiring information, this
could be modelling the availability of
rooms in hotels in a way that supports
finding a hotel with vacancies.
• Databases:
• DBMS (database management system):
• A computer software application that interacts with the user, other applications,
and the database itself to capture and analyze data.
• A general-purpose DBMS is designed to allow the definition, creation, querying,
update, and administration of databases.
• MySQL, PostgreSQL, MongoDB, MariaDB, Microsoft SQL Server, Oracle, Sybase,
SAP HANA, SQLite and IBM DB2.
• Databases:
12 | P a g e
https://thorteaches.com/
CISSP Domain 8 Lecture notes
• Database management systems are often classified according to the database model
they support, the most common database systems since the 1980s have all supported
the relational model as represented by the SQL language.
• A database model is a type of data model that determines the logical structure of a
database and fundamentally determines in which manner data can be stored,
organized, and manipulated. The most popular example of a database model is the
relational model (the SQL version), which uses a table-based format.
• Common logical data models for databases include:
• Navigational databases: Hierarchical database model, Network model, Graph
database.
• Relational model.
• Entity–relationship model, Enhanced entity–relationship model.
• Object model.
• Document model.
• Entity–attribute–value model.
• Star schema.
• Databases:
• Relational model:
• Organizes data into one or more tables (or relations) of columns and rows, with
a unique key identifying each row.
• Rows are also called records or tuples.
• Generally, each table/relation represents one entity type.
• The rows represent instances of that type of entity
and the columns representing values attributed to
that instance.
• Foreign key:
• They are in relational databases the
matching primary key of a parent
database table.
• It is always the primary key in the local
DB.
• The SSN is Primary key in the
Paygrade/scale table, but Foreign Key in
the Name one, seen from the Paygrade/scale table.
• Databases:
• Integrity:
13 | P a g e
https://thorteaches.com/
CISSP Domain 8 Lecture notes
• Referential integrity:
• When every foreign key in
a secondary table matches
a primary key in the
parent table.
• It is broken if not all
foreign keys match the
primary key.
• Semantic integrity:
• Each attribute value is
consistent with the
attribute data type.
• Entity integrity:
• Each tuple (row) has a unique primary value that is not null.
• Databases:
• Integrity:
• User-defined integrity
• A set of rules specified by a user, which do not belong to the entity,
domain and referential integrity categories.
• If a database supports these features, it is the responsibility of the
database to ensure data integrity as well as the consistency model for
the data storage and retrieval.
• If a database does not support these features, it is the responsibility of
the applications to ensure data integrity while the database supports
the consistency model for the data storage and retrieval.
• Having a single, well controlled, and well-defined data-integrity system
increases:
• Stability: One centralized system performs all data integrity operations
• Performance: All data integrity operations are performed in the same
tier as the consistency model.
• Re-usability: All applications benefit from a single centralized data
integrity system.
• Maintainability: One centralized system for all data integrity
administration.
• Databases:
• Integrity:
• Modern databases support these features, and it has become the de facto
responsibility of the database to ensure data integrity.
• If our databases are older, we can use companies or database systems, who
offer products and services to migrate legacy systems to modern databases.
14 | P a g e
https://thorteaches.com/
CISSP Domain 8 Lecture notes
• Databases normally run multiple threads simultaneously and they are all
capable of altering data.
• When two threads try to change the same record, the DBBMS will attempt to
commit the update.
• If the commit is unsuccessful, the DBMSs can do rollbacks/aborts and restore
from a save point.
• A database journal is a log of all database transactions.
• If a database become corrupted, the database can be reverted to a back-up
copy, and then transactions are replayed from the journal, restoring database
integrity.
• Databases:
• Database normalization:
• Used to clean up the data in a database table to make it logically concise,
organized, and consistent.
• Removes redundant data and improves the integrity and availability of the
database.
• Normalization has three forms (rules):
• First Normal Form: Divides the base data into tables, primary key is
assigned to most or all tables.
• Second Normal Form: Move data that is partially dependent on the
primary key to another table.
• Third normal Form: Remove data that is not dependent on the primary
key.
• The major benefits of using normalization include:
• Greater overall database organization
• Reduction of redundant data
• Data consistency within the database
• A much more flexible database design
• A better handle on database security
• Databases:
• Database Views:
• Database tables may be queried, what we see when we query them is called a
database view.
• They can give users a view of the parts of the database they are allowed to
access.
• For a normal employee this could be their own employee data, where HR can
access all employee's data. Remember the need to know principle, even if you
have the access that doesn't mean you are allowed to access it.
• Data Dictionary:
• Contains a description of the database tables (metadata).
15 | P a g e
https://thorteaches.com/
CISSP Domain 8 Lecture notes
• It has the database view information, information about authorized database
administrators, user accounts names and privileges, auditing information,
database schema ...
• Database schema:
• Describes the attributes and values of the database tables.
• Names should only contain letters, in the US SSN’s should only contain 9
numbers, …
• Databases:
• Database query language:
• Allow the creation, modification and deletion of database tables, the read/write
access for those tables, ...
• Database query languages have at least two subsets of commands:
• Data Definition Language (DDL):
• A standard for commands that define the different structures in a
database.
• Creates, modifies, and removes database objects such as tables,
indexes, and users.
• Common DDL statements are CREATE, ALTER, and DROP.
• Data Manipulation Language (DML).
• Used for selecting, inserting, deleting and updating data in a database.
• Common DML statements are SELECT, DELETE, INSERT, UPDATE.
• SQL or a SQL derivative are by far the most common query languages.
• Databases:
• Hierarchical Databases
• Use a tree-like structure for how data is organized.
• The data is stored as records which are connected to one another through links.
• A record is a collection of fields, with each field containing only one value.
• The entity type of a record defines which fields the record contains.
• Object-Oriented Databases (Object Database Management
Systems):
• Object databases store objects rather than data such as
integers, strings or real numbers.
• Objects are used in object-oriented languages such as
Smalltalk, C++, Java, ...
• Objects, in an object-oriented database, reference the
ability to develop a product, then define and name it.
• The object can then be referenced, or called later, as a
unit without having to go into its complexities.
• Databases:
• Object-Oriented Databases:
16 | P a g e
https://thorteaches.com/
CISSP Domain 8 Lecture notes
• Objects basically consist of the following:
• Attributes:
• Data which defines the characteristics of an object.
• This data may be simple such as integers, strings, and real numbers or it
may be a reference to a complex object.
• Methods:
• Defines the behavior of an object and are what was formerly called
procedures or functions.
• Objects contain both executable code and data.
• Classes:
• Define the data and methods the object will contain; they are the
template for the object.
• Does not itself contain data or methods but defines the data and
methods contained in the object.
• Databases:
• We covered these in domain 7:
• Database shadowing:
• Exact real time copy of the database or files to another location.
• It can be another disk in the same server, but best practices dictate
another geographical location, often on a different media.
• Electronic vaulting (e-vaulting):
• Using a remote backup service, backups are sent off-site electronically
at a certain interval or when files change.
• Remote journaling:
• Sends transaction log files to a remote location, not the files
themselves. The transactions can be rebuilt from the logs if we lose the
original files.
• Databases:
• Coupling:
• The degree of interdependence between software modules, a measure of how
closely connected two routines or modules are.
• Cohesion:
• Refers to the degree to which the elements inside a module belong together.
• Measures the strength of relationship between pieces of functionality within a
given module.
• In highly cohesive systems functionality is strongly related.
• Coupling is usually contrasted with cohesion.
• Low coupling often correlates with high cohesion, and vice versa.
17 | P a g e
https://thorteaches.com/
CISSP Domain 8 Lecture notes
• Low coupling is often a sign of a well-structured computer system and a good design,
and when combined with high cohesion, supports the general goals of high readability
and maintainability.
• Databases:
• ORB (Object Request Broker):
• Middleware which allows program calls to be made from one computer to
another via a network, providing location transparency through remote
procedure calls.
• ORBs promote interoperability of distributed object systems, enabling such
systems to be built by piecing together objects from different vendors, while
different parts communicate with each other via the ORB.
• Common object brokers included .net remoting, COM, DCOM, and CORBA.
• COM (Component Object Model):
• A language-neutral way of implementing objects that can be
used in environments different from the one in which they were
created, even across machine boundaries.
• It is used to enable inter-process communication object creation
in a large range of programming languages.
• Databases:
• ORB (Object Request Broker):
• DCOM (Distributed COM)
• The networked sequel to COM which adds to support
communication among objects on different computers—on a
LAN, a WAN, or even the Internet.
• The application can be distributed at locations that make the
most sense to your customer and to the application itself.
• DCOM includes Object Linking and Embedding (OLE), a way to
link documents to other documents.
• Both COM and DCOM are slowly being replaced by
Microsoft.NET, which can interoperate with DCOM, but offers
more advanced functionality than COM and DCOM.
• Databases:
• ORB (Object Request Broker):
• CORBA (Common Object Request Broker Architecture):
• Open vendor neutral ORB standard defined by the Object
Management Group (OMG) designed to facilitate the
communication of systems that are deployed on diverse
platforms.
• Enables collaboration between systems on different operating
systems, programming languages, and computing hardware.
18 | P a g e
https://thorteaches.com/
CISSP Domain 8 Lecture notes
• CORBA uses an object-oriented model although the systems
that use the CORBA do not have to be object-oriented.
• Databases:
• OOAD (Object-oriented analysis and design):
• Iteration after iteration, the outputs of OOAD activities, analysis models for OOA
and design models for OOD respectively, will be refined and evolve continuously
driven by key factors like risks and business value.
• OOA (Object-oriented analysis):
• Creates a model of the system's functional requirements that is
independent of implementation constraints.
• Organizes requirements around objects, which integrate both behaviors
(processes) and states (data) modeled after real world objects that the
system interacts with.
• The primary tasks are:
• Find the objects, organize the objects, describe how the objects
interact, define the behavior of the objects, define the internals of the
objects.
• Databases:
• OOAD (Object-oriented analysis and design):
• OOD (Object-oriented design):
• The developer applies the constraints to the conceptual model
produced in object-oriented analysis.
• Such constraints could include the hardware and software platforms,
the performance requirements, persistent storage and transaction,
usability of the system, and limitations imposed by budgets and time.
• Concepts in the analysis model which is technology independent, are
mapped onto implementing classes and interfaces resulting in a model
of the how the system is to be built on specific technologies.
• Important topics during OOD also include the design of software
architectures by applying architectural patterns and design patterns
with object-oriented design principles.
• OOM (Object-oriented modeling):
• Common approach to modeling applications, systems, and business
domains by using the object-oriented paradigm throughout the entire
development life cycles.
• Heavily used by both OOA and OOD activities in modern software
engineering.
19 | P a g e
https://thorteaches.com/
CISSP Domain 8 Lecture notes
• A1 Injection.
• A2 Broken Authentication and Session Management.
• A3 Cross-Site Scripting (XSS).
• A4 Broken Access Control.
• A5 Security Misconfiguration.
• A6 Sensitive Data Exposure.
• A7 Insufficient Detection and Response (NEW still being worked on).
• A8 Cross-Site Request Forgery (CSRF).
• A9 Using Components with Known Vulnerabilities.
• A10 Underprotected APIs (Application Programming Interfaces) (NEW
still being worked on).
20 | P a g e
https://thorteaches.com/
CISSP Domain 8 Lecture notes
• Software vulnerabilities and Attacks
• OWASP:
• A3 Cross-Site Scripting (XSS).
• Attackers inject client-side scripts into web pages viewed by other
users.
• Vulnerability may be used by attackers
to bypass access controls such as the
same-origin policy.
• To prevent XSS we can use proper input
validation and data typing.
• Set our server to, redirect invalid
requests, detect a simultaneous login
from two different IP addresses and
invalidate the sessions, require users to
enter their passwords again before changing their registration
information and set cookie with HttpOnly flag to prevent access from
JavaScript.
21 | P a g e
https://thorteaches.com/
CISSP Domain 8 Lecture notes
• Unnecessary features are enabled or installed, this could be open ports,
services, pages, accounts, privileges, ...
22 | P a g e
https://thorteaches.com/
CISSP Domain 8 Lecture notes
• Software vulnerabilities and Attacks
• OWASP:
• A9 Using Components with Known Vulnerabilities.
• Developers using deprecated code or objects that are known to be
unsecure, but they use them because they are used to it or the library,
they use has the objects in it.
• A10 Underprotected APIs (NEW).
• Badly coded APIs.
• Not using in depth API code reviews and auditing.
• Not using SSL/TLS.
• Forgotten and abandoned APIs that still have access to backend
systems.
23 | P a g e
https://thorteaches.com/
CISSP Domain 8 Lecture notes
• If this overwrites adjacent data or executable code, this may result in erratic
program behavior, including memory access errors, incorrect results, and
crashes.
• By sending in data designed to cause a buffer overflow, it is possible to write
into areas known to hold executable code and replace it with malicious code.
24 | P a g e
https://thorteaches.com/
CISSP Domain 8 Lecture notes
• No disclosure: Attackers finding a vulnerability would try to exploit it and keep it
secret as long as possible.
25 | P a g e
https://thorteaches.com/
CISSP Domain 8 Lecture notes
• CMM:
• Level 5: Optimizing
• Processes at this
level focus on
continually
improving process
performance
through both
incremental and
innovative technological changes/improvements.
• Addressing statistical common causes of process variation and changing
the process to improve process performance.
26 | P a g e
https://thorteaches.com/
CISSP Domain 8 Lecture notes
• Does the software perform as expected in our production
environment vs. the development environment?
27 | P a g e
https://thorteaches.com/
CISSP Domain 8 Lecture notes
• The same questions and then some should be asked:
• How good are they? Have they done this before? How secure are they?
Etc.
• Do we own the code, or do we rent it when it is done?
• What happens if they go out of business?
• Who will support it?
• Do you have capable staff that can support and tweak the software?
• Is it secure or is it security through obscurity?
• Many code shops are just that, only code shops, once the software is
accepted it is your problem to do the day to day maintenance, they may
contract for updates, but that is it.
• AI (Artificial intelligence):
• Intelligence exhibited by machines, rather than humans or other
animals.
• What true AI is, is a topic of discussion, what was considered AI
years ago we have achieved and when once goal is reached the
AI definition is tweaked a little.
• From what we are seeing published we do in my mind not
currently have true AI, but very highly simulated intelligence,
that being said IBM and Google do seem to be getting a lot
closer.
• It is also used when a machine mimics cognitive functions that
humans associate with other human minds, such as learning and problem solving.
• AI currently defined as advice that perceives its environment and takes actions that
maximize its chance of success at some goal, not through experience/programming, but
through reasoning.
• AI (Artificial intelligence):
• Expert systems:
• A computer system that emulates the decision-making ability of a human
expert.
• Designed to solve complex problems by reasoning about knowledge,
represented mainly as if–then rules rather than through conventional
procedural code.
• An expert system is divided into two subsystems:
• The knowledge base represents facts and rules.
• The inference engine applies the rules to the known facts to deduce new facts
and can also include explanation and debugging abilities.
• AI (Artificial intelligence):
• ANN's (Artificial neural networks):
28 | P a g e
https://thorteaches.com/
CISSP Domain 8 Lecture notes
• Computing systems inspired by the biological neural networks that constitute
animal brains, we make decisions based on 1000’s of memories, stories, the
situation and many other factors, the ANN tries to emulate that.
• The systems learn and progressively improve their performance, to do tasks,
generally without task-specific programming.
• They can learn to identify images that contain geckos by analyzing example
images that have been manually labeled as "gecko" or "no gecko" and using the
analytic results to identify geckos in other images.
• They are mostly used in areas that are difficult to express in a traditional
computer algorithm using rule-based programming.
• An ANN is based on a collection of connected units called artificial neurons.
• Each connection (synapse) between neurons can transmit a signal to another
neuron.
• Typically, neurons are organized in layers, different layers may perform different
transformations on their inputs.
• Signals travel from the first input, to the last output layer, at times after
traversing the layers multiple times.
• AI (Artificial intelligence):
• GP (Genetic Programming):
• A technique where computer programs are encoded as a set of genes that are
then modified (evolved) using an evolutionary algorithm often a GA (Genetic
Algorithm).
• The results are computer programs able to perform well in a predefined task.
• The methods used to encode a computer program in an artificial chromosome
and to evaluate its fitness with respect to the predefined task are central in the
GP technique and still the subject of active research.
• GP evolves computer programs, traditionally represented in memory as tree
structures.
• Trees can be easily evaluated in a recursive manner.
• Every tree node has an operator function and every terminal node has an
operand, making mathematical expressions easy to evolve and evaluate.
• Traditionally GP favors the use of programming languages that naturally
embody tree structures for example, Lisp or other functional programming
languages.
• AI (Artificial intelligence):
• GP (Genetic Programming):
• The process is in its simple form like this:
• Generate an initial population of random computer programs.
• Execute each program in the population and assign it a fitness value
according to how well it solves the problem.
• Create a new population of computer programs.
29 | P a g e
https://thorteaches.com/
CISSP Domain 8 Lecture notes
• Copy the best existing programs
• Create new computer programs by mutation.
• Create new computer programs by crossover.
• Genetic Algorithms and Genetic Programming have been used to program a
Pac-Man playing program, robotic soccer teams, networked intrusion detection
systems, and many others.
30 | P a g e
https://thorteaches.com/