This course builds on top of MATH135

# SE212: Logic and Computation

This course 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: