Question about keyed hash functions Maybe the answer to my question is obvious, but I have doubt...

I have noticed that hash functions are studied in two forms, keyed hash functions or unkeyed. In general, lecture notes present hash function without key.

Is there a key generation algorithm for a keyed hash function?
I think that you may be referring to hash functions with (not secret) keys as presented in any theoretically rigorous text on cryptography. In practice, hash functions do NOT have keys. However, if you try to define collision resistance without keyed hash functions, then it is impossible to achieve. This is because there always exists an adversary who finds a collision (this is an adversary who has a collision hardwired in its code). You may not be able to FIND such an adversary, but they certainly exist. We therefore define hash functions to have keys which are chosen after the adversary is fixed. (See textbooks for more discussion; it's an annoying technicality, but very not trivial.)

There a few ways to bridge this theory and practice. One is to say that the IV in practical hash functions is the key. I like this one, but most people don't (so I'm in the minority). Another is this paper by Rogaway http://web.cs.ucdavis.edu/~rogaway/papers/ignorance.pdf. Anyway, the introduction to that paper will also help explain the problem.