diff --git a/Leon/tut1/examples.pl b/Leon/tut1/examples.pl
new file mode 100644
index 0000000000000000000000000000000000000000..0f98fbbbe5f32836d60009a1eaf2419976bed68e
--- /dev/null
+++ b/Leon/tut1/examples.pl
@@ -0,0 +1,96 @@
+peter.
+
+%?- peter.
+
+likes(peter, mary).
+likes(peter, sophie).
+cool(X) :- likes(peter,X).
+
+%?- trace, cool(sophie).
+
+%?- trace, cool(X).
+
+has_wheels(mybike, 2).
+has_wheels(mytricycle, 3).
+has_wheels(mytoycar, 4).
+has_wheels(mycar, 4).
+has_motor(mybike).
+has_motor(mycar).
+car(X) :- has_wheels(X, 4), has_motor(X).
+
+%?- trace, car(Y).
+
+
+% Cool cool cool, but how can we code with this?
+% The answers is for the most part...RECURSION!
+
+nat(zero).
+nat(s(X)) :- nat(X).
+
+% add(X, Y, Z) -> X + Y = Z
+add(X, zero, X).
+add(X, s(Y), s(Z)) :- add(X, Y, Z).
+
+% We see, there is no "return" in Prolog, only predicates.
+% For every predicate please state in a comment which parameters
+% are input and which are output.
+
+
+%% List comprehension:
+% list e.g. [1,2,3] or [jamie,cersei], empty list = []
+% pattern matching with lists:
+% [Head|Tail], where Head is an element and Tail is a List!
+% Also works with first 2 elements [X1, X2 | T]
+
+append([],L2,L2).
+append([H|T],L2,[H|Res]):-
+	append(T,L2,Res).
+
+
+
+
+
+% A practical example
+
+% Signature for our problem:
+% countN(N : int, L : List[int]) -> int
+% counts the occurrences of N in L and returns the result.
+% With Prolog-like lists: countN(N, [H | T]) -> int
+
+% L = [2, 3, 5, 2, 7, 1, 2, 2, 5, 9]
+% countN(3, L) -> 1
+% countN(2, L) -> 4
+% countN(8, L) -> 0
+% countN(5, L) -> 2
+
+% Delcarative Approach
+% countN(N, L) -> res
+% res = 0
+% for e in L:
+%    if e == N:
+%      res += 1
+% return res
+
+% Functional / Recursive Approach
+% Base Cases:
+% countN(N, []) -> return 0
+% Recursive Case:
+% countN(N, [H | T]) ->
+%  if N == H
+%    return countN(N, [T]) + 1
+%  else
+%    return countN(N, [T])
+
+
+% ... in prolog we can't "return", so we need another variable in the predicate
+% countN(N, L, RES) the number of occurrences of N in list L
+% will be "returned/safed" in RES (Will be in relation with RES)
+
+% Base Cases:
+countN(_, [], 0).
+%?- trace, countN(2, [], X).
+% Recursive Case:
+countN(N, [N | T], RES) :- countN(N, T, OLDRES), RES is OLDRES + 1.
+countN(N, [M | T], RES) :- not(N=M), countN(N, T, RES).
+% Point out: "N" in first line list compr. "is" can be very useful
+%?- trace, countN(2, [2], X).
diff --git a/Leon/tut1/presentation-handout.pdf b/Leon/tut1/presentation-handout.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..c9a7c727c478742718ef5c43b739b7aff9ed231b
Binary files /dev/null and b/Leon/tut1/presentation-handout.pdf differ