Nagesh Karmali




Nagesh Karmali is a Sr. Manager (Research) in the Dept. of CSE at IIT Bombay and heads the Fundamental Research Group. He is associated with IIT Bombay since 2005. His broad research areas are in the field of Parallel Databases, Big Data Analytics, Adaptive Recommendation Systems, Peer Evaluation Systems, etc. His interests also lies in Category Theory, Control Theory, System Dynamics, Music Theory, etc. He has mentored over 70 B Tech, DD, and M Tech theses since 2008. He maintains a wiki for his research projects, which can be accessed at He also likes to travel across villages and learn from the local people.

E.g., 2016-10-23
E.g., 2016-10-23
E.g., 2016-10-23
Sep 20th 2016

Learn how to structure and use algorithms to solve real life problems. Algorithms power the biggest web companies and the most promising startups. Interviews at tech companies start with questions that probe for good algorithm thinking.

No votes yet
Jul 19th 2016

Learn how to write correct and efficient data structures manipulation using existing standard template library (STL) of C++. Get introduced to the power of STL and make your code more solid, reusable, and robust. In this Computer Science course, you will learn about implementation of all major abstract data structures using object-oriented programming paradigm of C++.

Average: 6 (2 votes)
May 17th 2016

Learn the best way to structure and represent data. Data structures provide a means to manage large amounts of data for use in databases and internet indexing services. Efficient data structures are key for designing efficient algorithms and obtaining maintainable software design. In this Computer Science course, you will start by learning basic data types, such as numbers, and gradually build a conceptual framework for organizing and managing efficient structures.

Average: 10 (1 vote)
Self Paced

Learn basic computer programming skills and master the art of writing C/C++ programs to solve real world problems. Basic concepts of computer programming are introduced, starting with the notion of an algorithm. Emphasis is on developing the ability to write programs to solve practical computational problems.

Average: 9.2 (5 votes)
Self Paced

Learn the principles of programming for building large and extensible systems. Go beyond the basics of programming to understand object-oriented methodology, the approach to modular and reusable software systems.

Average: 10 (2 votes)