The coverage includes the conceptual fundamental of fog computing, its practical applications, cooperative and distributed computation algorithms using optimization, swarm intelligence, matching theory, and reinforcement learning methods. Discussions are also provided on remaining challenges and open research issues for designing and developing the efficient distributed computation solutions in the next-generation of fog-enabled IoT systems.