How to construct a prg? Does the adversary know the random seed s? If he does not, isn't one possible construction simply the random seed itself? if the output needs to be bigger than random seed s cant I just add a hardcore bit to the random seed s? Also, regardless of the number of leading bits of the output that are revealed (even n-1 where n is length of output), will the output be computationally indistinguishable from a truly random string?
Does the adversary know the random seed s?


No. Let $G$ be an arbitrary PRG. Given the seed $s$ and a string $y$, it is trivial to check whether $y = G(s)$, thus the output of a PRG cannot be indistinguishable from random if the seed is known. Therefore, this definition would be uninstantiable and thus not useful.


  If he does not, isn't one possible construction simply the random seed itself?


A family of functions $G : \{0,1\}^{i(\lambda)} \to \{0,1\}^{o(\lambda)}$ needs to have two properties to be called a PRG. 


It needs to be expanding, i.e. it must hold that $o(\lambda)&gt;i(\lambda)$.
It must hold that or a uniformly chosen seed $s\gets\{0,1\}^{i(\lambda)}$, the value $G(s)$ is computationally indistinguishable from a uniformly chosen string $y \gets \{0,1\}^{o(\lambda)}$.


The PRG you are suggesting is the identity function, which does indeed fulfill property 2 from, above, but not property 1.


  if the output needs to be bigger than random seed s cant I just add a hardcore bit to the random seed s?


Well, the identity function does not have any hardcore predicates, so this does not work.


  Also, regardless of the number of leading bits of the output that are revealed (even n-1 where n is length of output), will the output be computationally indistinguishable from a truly random string?


By definition of a secure PRG, the entire output is computationally indistinguishable from a truly random string. So by a trivial reduction, so is any prefix of the output.