# 1.1 Logic Part 1 - IP

Video Activity
Join over 3 million cybersecurity professionals advancing their career
or Time
2 hours 57 minutes
Difficulty
Beginner
CEU/CPE
3
Video Transcription
00:00
>> Hello everyone and welcome back to
00:00
Intro to Python here on Cybrary on-demand.
00:00
I am your instructor as always, Joe Perry.
00:00
Today we're going to begin Lesson 1,
00:00
programming basics logic.
00:00
In this lesson, we're going to learn about
00:00
Boolean logic and logical operations.
00:00
Those operations are going to be AND,
00:00
OR and NOT and we're going to learn to
00:00
implement those logical operations in Part 2,
00:00
by learning what the logical laws
00:00
and the derived operations,
00:00
most specifically XOR is going to be
00:00
the one that really focus on.
00:00
What is Boolean logic?
00:00
I've used that term in a couple of these videos already
00:00
and it's important to understand
00:00
what it is and where it comes from.
00:00
00:00
George Boole in the book and
00:00
the mathematical analysis of logic,
00:00
which is a page turner,
00:00
I assure you. [LAUGHTER] It's not.
00:00
It's an incredibly dry and extremely boring book.
00:00
It was published in 1847 and
00:00
like most things, it's terrible.
00:00
That was mean to say,
00:00
but I'm going to stick to it.
00:00
Stick to my guns. [LAUGHTER] More seriously though,
00:00
is influenced by a Sanskrit philologist, Panini.
00:00
I think that's how you pronounce that name,
00:00
but honestly, my Sanskrit is rusty.
00:00
I haven't taken it since high school.
00:00
You know how it goes?
00:00
Panini was a philologist,
00:00
is a person who is a grammarian.
00:00
They study the evolution in
00:00
the design of languages and grammar and how
00:00
they function and he
00:00
was quite possibly the first person to
00:00
apply formal logic to
00:00
the concept of linguistics and grammar.
00:00
Over the course of creating
00:00
that work and over the course of documenting that,
00:00
Panini developed the concepts
00:00
of truth and falsity that were then
00:00
adopted to create Boolean algebra and Boolean logic.
00:00
There are only two values in Boolean logic.
00:00
It's not like normal math where there's
00:00
an infinite number of
00:00
numbers and arrays and things like that.
00:00
In Boolean algebra and Boolean logic,
00:00
there are only two possible values,
00:00
one and zero,
00:00
and then there are only three possible operations.
00:00
There's AND, which is
00:00
represented in formal logic by a period
00:00
and usually in shorthand or informal or programming,
00:00
it's represented by an ampersand.
00:00
There's OR, which is represented by
00:00
the plus sign or by the pipe.
00:00
That's the straight line, up and down.
00:00
Usually it's going to be on
00:00
the same place as your forward
00:00
slash and then NOT,
00:00
which is usually represented by a tilde.
00:00
So those are the only two values and
00:00
the only three fundamental operations of Boolean logic.
00:00
But from those very simple concepts,
00:00
were actually able to derive all
00:00
of modern computer science,
00:00
all Turing complete machines,
00:00
and a pretty substantial chunk of mathematics.
00:00
Now, there is, for those of you who are really
00:00
excited about the most modern technology,
00:00
quantum computing does play with that a little bit and
00:00
introduces a relativistic and probabilistic states.
00:00
But fortunately, this is an intro to
00:00
Python video and not a quantum computing video.
00:00
So save your hate mail for when I earn it later.
00:00
[NOISE] In this lesson,
00:00
we're going to spend a lot of time on truth tables.
00:00
If you've never had the joy of
00:00
going through a CS101 class,
00:00
a truth table is exactly what you see in front of you.
00:00
It's a table of some number of values and
00:00
statements which is used to
00:00
represent every possible state of the equation.
00:00
In this case we have two inputs,
00:00
A and B, and you'll see those use pretty often.
00:00
With A and B, we represent every possible combination of
00:00
those two Boolean factors
00:00
or Boolean values, true or false.
00:00
By the way, in computer science,
00:00
when I talk about true and false,
00:00
that's the ones and the zeros of binary.
00:00
Binary is an implementation of that Boolean logic.
00:00
We're going to use one or zero instead of
00:00
true and false in most of these places.
00:00
Don't let that trip you up too much.
00:00
So here you can see we have two ones
00:00
and two zeros under A.
00:00
If we just had A in this table,
00:00
it would just be two lines of one and zero.
00:00
But because we have two factors,
00:00
we have to represent every possible
00:00
combination and for those of you
00:00
who know binary and understand how to read binary,
00:00
you know that with two digits you're
00:00
capable of representing four numbers,
00:00
0, 1, 2 and 3.
00:00
In a useful equation when you're building
00:00
your truth tables is however many inputs you have,
00:00
it'll be that power of two number of rows,
00:00
which is to say, well, that power
00:00
of two number of possible combinations.
00:00
So that many rows, which is to say,
00:00
for example, if you have three
00:00
inputs is going to be eight.
00:00
If you have four, it will be 16.
00:00
If you have five, it'll be 32,
00:00
on and on and on and on.
00:00
If you have five inputs,
00:00
I generally don't recommend
00:00
building a single truth table.
00:00
We're not going to deal with any truth tables larger than
00:00
three inputs and two or three statements at a time.
00:00
Your statement is going to have
00:00
the same number of rows as
00:00
00:00
going to be whatever equation you're doing.
00:00
We'll see that it'll make a little more sense,
00:00
I think in the next couple of slides,
00:00
we'll see that play out.
00:00
But your statement is going to be just all of
00:00
the solutions with those inputs.
00:00
As an example here, we have the first logical operation.
00:00
We see that we have true
00:00
and false represented with A and B the same way
00:00
we do in this previous slide with ones and
00:00
zeros and we see that and evaluates to true,
00:00
that is, and evaluates to one if and only if so,
00:00
only in the case that all of
00:00
its input values are also true or one.
00:00
On this table you can see that on our first row,
00:00
A is one and B is one.
00:00
So that's representing the binary number 3.
00:00
The AND, A and B we're going to
00:00
represent here, [NOISE] is one.
00:00
Because of the fact that both of the inputs were true.
00:00
The output of AND is true, pretty straightforward.
00:00
The next row we have A is one which,
00:00
helps us to evaluate this,
00:00
but B is zero.
00:00
Now, I'll say again and evaluates to true
00:00
only in the case that all input values are true.
00:00
Which means that with B being zero,
00:00
A and B is also zero.
00:00
As you can see on the next row,
00:00
A is zero, B is one,
00:00
still have a zero in it and on the final one,
00:00
of course both of them are zero,
00:00
therefore AND is zero.
00:00
A useful shorthand is that generally speaking,
00:00
if you add all of your inputs together in a truth table,
00:00
you're generally only ever going to have
00:00
one row evaluate to true.
00:00
It's not 100 percent the case,
00:00
there are complex inputs that can mess with that.
00:00
But as a basic rule,
00:00
you can generally trust
00:00
that and I want to mention real fast.
00:00
I always skipped it, AND is often referred to as
00:00
the logical conjunction in formal logic classes.
00:00
So if you hear that, that's what that's referencing.
00:00
Now, OR logical disjunction OR is similar to
00:00
AND in that it evaluates to
00:00
true based on whether or not an input is true.
00:00
It's different in the sense that if any of the inputs to
00:00
OR are true OR will evaluate to true.
00:00
So not exactly the inverse of AND,
00:00
to some extent it feels that way and it
00:00
looks that way on the truth table as well.
00:00
For example, on our first row
00:00
we have A and B both equaling one.
00:00
Now, it doesn't matter if both of them are true,
00:00
so long as one of them is true.
00:00
So A or B evaluates to true.
00:00
On the next row, we see that A is one and B is zero.
00:00
Now with, and you'll remember that evaluated to
00:00
zero because one of the inputs was false.
00:00
However, because one of the inputs is true for OR,
00:00
it evaluates to true.
00:00
The next row, same thing with B being
00:00
true instead of A and then the final row,
00:00
because none of its inputs are
00:00
true or will evaluate to false.
00:00
The third and final fundamental logical operation
00:00
of Boolean logic is NOT,
00:00
or the logical inversion.
00:00
NOT evaluates to true if and only if,
00:00
only in the case that it's input is false.
00:00
NAND is generally used for single inputs or it is
00:00
used for the results of an equation.
00:00
For example, you can see here that I have NAND and NOR,
00:00
which are two very commonly used gates in logic.
00:00
Gates and operations are differentiated in
00:00
that a gate is something that
00:00
is actually physically constructable.
00:00
Even though the AND,
00:00
OR and NOT are the fundamental operations,
00:00
NAND and, NOR are the two most commonly
00:00
used fundamental physical gates of logic.
00:00
Don't get wrapped around the axle with that,
00:00
you aren't going to need to learn how to create
00:00
a circuit board or a circuit diagram.
00:00
Don't worry about that at all in this class.
00:00
Point is, NAND and NOR are
00:00
two very commonly used logical operations
00:00
which are derived from the three fundamental.
00:00
So here you can see that NAND,
00:00
which is NOT AND,
00:00
is going to be evaluated based on the input from AND.
00:00
So, AND we already established is
00:00
going to be 1, 0, 0, 0.
00:00
NAND is just the logical inversion of that.
00:00
We have 0, 1, 1, and 1.
00:00
Very straightforward, very easy
00:00
00:00
seen it a couple of times,
00:00
A or B, you can probably guess because it's 1,
00:00
1, 1, 0 and NOR is the logical inversion of that.
00:00
We're going to have 0, 0, 0 and 1.
00:00
At the next lesson, we're going to do some math.
00:00
We're going to jump in and really start
00:00
00:00
We're going to learn about some
00:00
>> fundamental laws of logic.
00:00
>> Here I've included a comic from the inimitable XKCD.
00:00
There are going to be a lot of
00:00
XKCD throughout this course.
00:00
Because Randall Munroe is frankly
00:00
a genius who has made the world a better place.
00:00
That's said before we go onto the next lesson,
00:00
we're going to take a second,
00:00
we're going to do a knowledge check.
00:00
We're going to break these videos upload
00:00
or the next part of this lesson.
00:00
Break these videos up a
00:00
little bit just so you have time to
00:00
digest it and make sure you've learned
00:00
the actual material.
00:00
Which operation is the logical inversion of AND?
00:00
What is derived from the combination of AND and NOT?
00:00
00:00
[NOISE] What are
00:00
the two possible values of Boolean logic?
00:00
There are only two, [NOISE] true and false.
00:00
What are the three fundamental operations
00:00
of Boolean logic?
00:00
There are lots of possible operations.
00:00
There are only three that are fundamental.
00:00
AND logical conjunction,
00:00
OR logical disjunction, NOT logical inversion.
00:00
Summary in this video we cover basically
00:00
what you just checked out on that last slide,
00:00
the two possible values,
00:00
the three possible operations,
00:00
and discuss some of the derivations from those.
00:00
Again, in the next video, we're going to come back.
00:00
We're going to learn about the laws of
00:00
logic or we're going to apply them.
00:00
Until then, I am as
00:00
always thrilled to have you here and
00:00
hope to see you back in our next video.
00:00