What Every Engineer Should Know About Smart Cities