Constructing secure key exchange protocol
Well, the obvious way to do this is:


Before the protocol occurs, Alice runs the $Gen$ procedure to create a public and a private key
For her round, Alice sends her public key to Bob
For his round, Bob selects a random symmetric key $\in \{0,1\}^n$, encrypts it with Alice's public key, and sends that encryption to Alice.
Alice decrypts the message that Bob sent her with her private key.


Now, Alice and Bob share a random symmetric key (Bob knows it because he created it, Alice knows it because she decrypted it).  In addition, Eve has no information on the key; the only thing that could possibly give her information about it is the encrypted version in round 2; and because we assume $\Pi$ is semantically secure, that gives her no information.