# Logic and Computational Thinking

## About This Course

Understanding how a computer "thinks" is one of the first steps to becoming an excellent computer programmer. A foundation in logic is crucial in developing this understanding. Mastering logic is more than learning a set of rules. It involves learning how to break problems into smaller chunks, figuring out how repeatable processes can save time and improve quality, and understanding how to organize problems into the right size.

In this course, you'll learn how to do all those things and use computers to make them easier. After all, logical tasks are what computers are best at doing!

This is not a programming course, but it will teach you how to approach critical thinking as both a lifestyle and an aide to better programming and testing.

## What you'll learn

- Logical form and how to construct arguments
- Deductive and inductive argument forms
- The basics of critical thinking
- How to break down problems into simpler tasks
- Recognizing patterns and understanding why this is important
- How to use an algorithm to solve problems
- The relation of logic to fundamentals in computer science

## Course Syllabus

- Module 0: Introduction to the course
- What this course is about
- Analytic logic and its relation to computer science
- Critical thinking as both a lifestyle and aide to better programming and testing
- Let's get started: critical thinking and logical reasoning
- What does it mean to think critically?
- An overview of definition, induction, and deduction
- Computer programming and logical thinking
- Module 1: Logic and Computer Science
- Formal Logic and Computer Science
- Introduction and prolegomena
- What is a Turing Machine?
- Bits and Bytes
- Algorithms
- Logic and Computer Science
- Introduction to Formal Logic
- Introduction to Logic
- Arguments
- Statements
- Propositions
- Truth Value
- Review Questions
- Symbolizing and Logical Operators
- Symbolization
- Introduction to Operators
- Negation Operator
- Conjunction Operator
- Disjunction Operator
- Conditional Operator
- Sidebar: Operator of the largest scope
- Truth Tables
- Review Questions
- Module 2: Deductive and Inductive Arguments
- Types of arguments
- Arguments again
- Review Questions
- Deductive Arguments
- Valid and invalid arguments
- Soundness
- Sound deductive arguments
- First two deductive syllogisms
- Sidebar: formal fallacies
- Two more deductive argument forms
- Deductive arguments and computer programs
- Review questions
- Inductive Arguments
- Introduction to inductive arguments
- Strong and weak arguments
- Cogency
- Determining strength
- Review questions
- Module 3: Categorical Logic
- Introduction to Categorical Logic
- What is categorical logic?
- Aristotle's theory of forms
- Some, all, and none
- Quantity and quality
- Review questions
- Categorical form and syllogisms
- Standard categorical form
- The categorical syllogism
- Forms of categorical syllogisms
- Review questions
- Venn Diagrams
- Categorical statements and validity
- Venn diagrams: I and O statements
- Venn diagrams: A and E statements
- Using Venn diagrams with categorical syllogisms
- Venn diagrams: testing categorical syllogism for validity
- Review questions
- Module 4: Introduction to Critical Thinking
- What is Critical Thinking?
- Introduction to critical thinking
- Socrates and critical thinking
- Socrates's definition of truth
- The Socratic Method
- Two Socratic questions
- Applying the Socratic Method to computer science
- Inductive Reasoning Applied
- Forms of inductive reasoning
- The logic of science
- Confirmation and disconfirmation
- Mill's Method
- Mill's method: agreement
- Mill's method: difference
- Mill's method: variation
- A Case Study
- Module 5: The Final Exam