# SE212: Logic and Computation

This course builds on top of MATH135. It’s is about Logic and sets, and their use in software engineering and computer science. We study the use of logic for:

- Specifying the behaviour of systems
- Checking the correctness of programs

https://student.cs.uwaterloo.ca/~se212/

The 4 major topics of the course:

- Propositional Logic
- Predicate Logic
- Set Theory and Formal Specification
- Program Correctness using Floyd-Hoare Logic

Link to course notes here.

**Specification**= describing what the software is supposed to do, see Formal Specification**Correctness**= the software does what it is supposed to do, see Program Correctness- We check correctness in 3 ways.

- Inspection
- Testing Blackbox Testing and Whitebox Testing
- Formal Verification $→$ What we learn SE212

### Concepts

- Syllogism
- Formal Verification
- george
- Module 2: Propositional Logic
- Module 3: Predicate Logic
- Module 4: Theory
- Module 5: Set Theory
- Module 6: Formal Specification in Z
- Module 7: Program Correctness

### Related

- These are concepts that are not covered, but that the professor mentioned
- Spatial Temporal Reasoning

As I was studying for my final exam, I started thinking about Semantics and Artificial Intelligence

- Well, there are strides in NLP, the AI manages to learn about these ideas in some sort of Latent Space

Precedence for this course: