Ever wondered how search engines like Google process your queries? Ever wondered how e-commerce sites like Amazon process your orders or how Ola/Uber cab dispatch systems work? This course concerns advanced programming with specific focus on building scalable software systems that facilitate real-world services, which you probably use often.
In this course, you will learn how to build such systems in a systematic manner and the design principles as well as trade-offs associated with building such systems. You will learn the key principles and concepts of software engineering and large-scale project management. You will also learn how to use different tools, which are popular for software development in the industry. The focus of the course will be on problem solving, designing real-world applications and systems design, implementation and testing and not on the syntax of any particular programming language. Object-oriented programming paradigm will also be covered in this course.
There will be mini-programming projects throughout the duration of the course to provide hands-on exposure of system-building to students. You will work on such system-building projects in groups.