Welcome back for the second entry of my SLOG! We are about a month into CSC165 and fortunately my brain hasn't imploded, and the emotional/mental breakdowns have been few and far between. This time around, I'd like to address two topics that have actually helped prevent my brain from imploding. These are negation, and truth tables!
Negation is not not fun!
The concept of negation is a very simple one. The idea of negation is to take a given proposition, for example "Male" and convert it into everything that is not it ("Not Male"). In other words, it moves the focus from the element, to it's complement. At first, I didn't see any practical applications of negation. I thought, well if you negate a statement to evaluate it, it's the same thing as just evaluating the statement except it's complement. Boy was I wrong! I've realized, through trying to understand the readings in the course notes, that in some cases; proving the negation is FALSE is easier to grasp then proving that the original statement is true. It also relates directly to situations I've experienced while programming.
For example, I wanted to pop off all of the elements in a stack. The stack object has a pop method and an is_empty method. We can create a while loop and say: "while not stack.is_empty():" and proceed to pop items off of the stack. This is significantly easier to conceptualize and implement then trying to get the function body to run when the "stack has elements" .
I am excited to further grasp negation and implement it in my understanding of logic. Negation has helped me better understand the course notes, but to segue into a concept that has been the MOST beneficial to my understanding, I have to talk about truth tables!
The Glorious Truth Table
The Glorious Truth Table
If a person were to find my notebook and flip through it, they'd be surprised to find endless amounts of truth tables (as well as some semi-phallic shaped doodles that are the result of sitting beside hooligans in class).
**Bonus Points for the implication?**
I love truth tables. I was once scared of truth tables and I feel like an idiot for not learning them sooner. What the venn diagram brings in spatial representation of a problem, the truth table brings in concrete undeniability.
They were an invaluable resource as I was trying to grasp the manipulation rules in Chapter 2. For every single one of the rules, even the intuitive ones, I created a truth table. This helped me internalize the manipulation rules in a way that I know I could not have done before. I plan on using truth tables whenever I am stumped by a statement.
We've gone over negation and truth tables, and their impact on my learning. Both are tools that have increased my logical comprehension. Join me next time where we will see if these strategies will help me take on Proofs!
They were an invaluable resource as I was trying to grasp the manipulation rules in Chapter 2. For every single one of the rules, even the intuitive ones, I created a truth table. This helped me internalize the manipulation rules in a way that I know I could not have done before. I plan on using truth tables whenever I am stumped by a statement.
We've gone over negation and truth tables, and their impact on my learning. Both are tools that have increased my logical comprehension. Join me next time where we will see if these strategies will help me take on Proofs!