First Order Predicate Logic :
This is a more expressive logic because it is mostly builds on propositional logic by allowing us to needs as constants, variables, predicates, functions and quantifiers in addition to the connectives we've already seen. For instance, in the sentence like: "Every Monday and Wednesday I go to John's house for dinner" can be written in first order predicate logic as:
∀X ((day_of_week(X, monday) ∨ day_of_week(X, wednesday))
→ (go_to(me, house_of(john)) ^ eat_meal(me, dinner))).
Hence there, the symbols monday, wednesday, me, dinner and john are all constants: base-level objects in the world about that we want to talk. There is the symbols of day_of_week, go_to and eat_meal are predicates that is represent relationships between the arguments that can be appear inside the brackets. For example we see that in eat_meal the relationship justify that a person's first argument eats a particular meal (second argument). Moreover, we have represented the fact in which me eats dinner. The symbol X is a variable, that can take on a range of values. This enables us to be much more expressive, and in particular, we can just quantify X with the 'for all' ∀ symbol, so that our sentence of predicate logic talks about all possible X's. And finally, the symbol of house_of is a function, and - if we can - we are just expected to swap house_of(john) with the output of the function (john's house) given the input to the function (john).
The syntax and semantics both are predicate of logic and they are covered in much more detail as part of the lectures on automated reasoning.