The smart home infrastructure features the automatic control of various household appliances in the advanced metering infrastructure, which enables the connection of individual smart home systems to a smart grid. In such an infrastructure, each smart meter receives electricity price from utilities and uses a smart controller to schedule the household appliances accordingly. This helps shift the heavy energy load from peak hours to nonpeak hours. Such an architecture significantly improves the reliability of the power grid through reducing the peak energy usage, while benefiting the customers through reducing electricity bills. This paper presents a tutorial on the development of the smart controller to schedule household appliances, which is also known as smart home scheduling. For each individual user, a dynamic programming-based algorithm that schedules household appliances with discrete power levels is introduced. Based on it, a game theoretic framework is designed for multi-user smart home scheduling to mitigate the accumulated energy usage during the peak hours. The simulation results demonstrate that it can reduce the electricity bill by 30.11% while still improving peak-to-average ratio (PAR) in the power grid. Furthermore, the deployment of smart home scheduling techniques in a big city is discussed. In such a context, the parallel computation is explored to tackle the large computational complexity, a machine assignment approximation algorithm is proposed to accelerate the smart home scheduling, and a new hieratical framework is proposed to reduce the communication overhead. The simulation results on large test cases demonstrate that the city level hierarchical smart home scheduling can achieve the bill reduction of 43.04% and the PAR reduction of 47.50% on average.