Source: https://media.geeksforgeeks.org/courses/syllabus/CIP-2.0.pdf