An integrated course on parallel and distributed processing