The aim of this course is to expose students to the essential and well established operating system (OS) concepts, their application and the issues related to realizing them on modern hardware. 

The course is aimed at teaching the mechanics underlying collections and associated algorithms available in high-level languages and their efficiency characteristics, so that students can choose the most appropriate data representation and algorithms to solve a given problem efficiently. Further the course will also discuss algorithm design issues.