Oh, THAT tilde. You will see it in some textbooks and the such. In this case is shows that さん and ご, amongst other things, are suffixes. So the tilde represents things like names, nouns and the such. It doesn't actually mean anything specific when written that way...you should place whatever is related there; as nice gaijin has said, it's a placeholder.
*EDIT* That's why it says "... years old", which means that, for example, if you want to say 20 years old, you would say 二十 + さい (The tilde here is replaced with 20, removing the placeholder).
*EDIT 2* As for why せんせい has い at the end, that's how the word is actually spelt and pronounced. Sometimes you see a romanization of "sensee" but that is just trying to help with pronunciation; it's not actually え at the end but い.
*EDIT 3* Same case with "kookoo". I've seen many resources, Genki included, where the romanization is more towards making things more understandable for English-users. "kookoo" is indeed actually "koukou". It has two Kanji in it; 高 and 校, both of which are pronounced こう ("kou") in this case.
P.S. Don't worry yourself about why it says "kookoo" and "こうこう". The "kookoo" is meant to help you, but if you already learned how to read Hiragana and Katakana, you should try to avoid looking at the Romaji and look at the Hiragana for the proper way of writing it.