I don't understand the difference between EF and EX in CTL. The tutorial says almost the same about the two (but they do give different results in a running program)
EF p , on the other hand, requires than there exists some path ( E ) that eventually in the future satisfies p
and for EX
EX p , requiring that condition p is true in all or in some of the next states reachable from the current state.
Could you help me understand maybe if you provide good examples?
Short answer: In CTL, $\mathsf{EF\,} p$ considers the truth of $p$ in every future state of a computation path, including the current one, whereas $\mathsf{EX\,} p$ only considers the truth of $p$ in the next state (the one that comes right after the current one). That is, $\mathsf{F}$ as in "future" and $\mathsf{X}$ as in "next," with the caveat that in CTL the present is included in the future.
Longer answer: The semantics of CTL is defined on Kripke structures. We say that $\mathsf{EF\,} p$ holds at state $s$ of structure $K$, written
$$ K,s \models \mathsf{EF\,} p \enspace,$$
if and only if there exists an infinite path $\pi$ in $K$ that starts at $s$ and such that some state along $\pi$ satisfies $p$; that is, there exists $s'$ along this path such that $K,s' \models p$.
Translating $\mathsf{EF\,} p$ into English, we often say "$p$ may eventually happen." CTL being a temporal logic, it is customary to interpret states reached from a state following transitions of $K$ as future states.
For $\mathsf{EX\,} p$, the definition is that $K,s \models \mathsf{EX\,} p$ if and only if there is an infinite path $\pi$ in $K$ starting from $s$ and such that the immediate successor state of $s$ along $\pi$ satisfies $p$. If the immediate successor is $s'$, then we write this as $K,s' \models p$.
We use $K,s \models \mathsf{EF\,} p$ when we don't want to impose a bound on the number of transitions it may take for $p$ to take place. We just claim that a state where $p$ holds is reachable in $K$ from $s$.
If we want to exclude the current state from consideration, we write $\mathsf{EX\,}\mathsf{EF\,} p$. As an another example, if we want to say that from $s$ it always remains possible to reach a state where $p$ holds, no matter what path is followed, we write something equivalent to
$$ K,s \models \neg \mathsf{EF\,} \neg \mathsf{EF\,} p \enspace. $$
This may also be written more concisely as
$$ K,s \models \mathsf{AG\,} \mathsf{EF\,} p \enspace, $$
as you have already seen, or will see soon if you continue to explore CTL. We may read either formula as follows: No matter what path we follow from $s$, we are always in a state from which there exist a path to a state where $p$ holds.
We use $\mathsf{EX}$ when we want to specify a bound on the number of transitions. For instance, to say that $p$ occurs in one to three transitions along some path that starts from $s$, we may write
$$ K, s \models \mathsf{EX\,} (p \vee \mathsf{EX\,} (p \vee \mathsf{EX\,} p)) \enspace.$$
Final note: if we interpret transitions in the Kripke structure as moving to the "next time" we are inherently assuming that time is discretized: that there is a notion of "next time instant." This notion is essential for the definition of $\mathsf{EX}$, whereas we could still define $\mathsf{EF}$ without that notion, though it wouldn't be classic CTL any more.