All of this is good advice. I have something to add, though.
Research has shown that we go through "cycles" of sleep stages. Each cycle is approximately 90 minutes, give or take a few minutes. People who were awakened at the lightest part of the sleep cycle - ie, between cycles - were much more alert, able to get out of bed easier, and reported feeling less tired or sluggish during the day, whereas people who were awakened at random other points during the cycle were groggy and inclined to fall back asleep quickly.
So what you do is you pick a wakeup time. Say, 7 AM. Then you work back in 90-minute increments. 7 AM, 5:30 AM, 4 AM, 2:30 AM, 1 AM, 11:30 PM, 10 PM. So if you're going to wake at 7, your best times for going to sleep are 10 or 11:30 at night. It takes time to get used to this system, but it's actually worked pretty well for me.


