Computational Thinking
The students will be introduced to a number of programming concepts using illustrative examples which will be solved almost entirely manually. The manual execution of each solution allows for close inspection of the concepts being discussed.


Course ID: BSCCS1001
Course Credits: 4
Course Type: Foundational
Recommended Pre-requisites: None
What you’ll learn
Course structure & Assessments
12 weeks of coursework, weekly online assignments, 2 in-person invigilated quizzes, 1 in-person invigilated end term exam. For details of standard course structure and assessments, visit Academics page.
WEEK 1 | Variables, Initialization, Iterators, Filtering, Datatypes, Flowcharts, Sanity of data |
WEEK 2 | Iteration, Filtering, Selection, Pseudocode, Finding max and min, AND operator |
WEEK 3 | Multiple iterations (non-nested), Three prizes problem, Procedures, Parameters, Side effects, OR operator |
WEEK 4 | Nested iterations, Birthday paradox, Binning |
WEEK 5 | List, Insertion sort |
WEEK 6 | Table, Dictionar |
WEEK 7 | Graph, Matrix |
WEEK 8 | Adjacency matrix, Edge labelled graph |
WEEK 9 | Backtracking, Tree, Depth First Search (DFS), Recursion |
WEEK 10 | Object oriented programming, Class, Object, Encapsulation, Abstraction, Information hiding, Access specifiers |
WEEK 11 | Message passing, Remote Procedure Call (RPC), Cache memory, Parallelism, Concurrency, Polling, Preemption, Multithreading, Producer Consumer, Atomicity, Consistency, Race condition, Deadlock, Broadcasting |
WEEK 12 | Top-down approach, Bottom-up approach, Decision tree, Numerical prediction, Behaviour analysis, Classification |
About the Instructors

Madhavan Mukund studied at IIT Bombay (BTech) and Aarhus University (PhD). He has been a faculty member at Chennai Mathematical Institute since 1992.His main research area is formal verification. He has active research collaborations within and outside India and serves on international conference programme committees and editorial boards of journals.
He has served as President of both the Indian Association for Research in Computing Science (IARCS) (2011-2017) and the ACM India Council (2016-2018). He has been the National Coordinator of the Indian Computing Olympiad since 2002. He served as the Executive Director of the International Olympiad in Informatics from 2011-2014.
In addition to the NPTEL MOOC programme, he has been involved in organizing IARCS Instructional Courses for college teachers. He is a member of ACM India's Education Committee. He has contributed lectures on algorithms to the Massively Empowered Classroom (MEC) project of Microsoft Research and the QEEE programme of MHRD.
Other courses by the same instructor: BSCCS2002 - Programming, Data Structures and Algorithms using Python and BSCCS2005 - Programming Concepts using Java

Dr. Venkatesh is a Professor of Practice at IIT Madras, where he is involved with several projects in the field of education. He is also a Fellow and Director of Sasken Communication Technologies Ltd, a leading Indian R&D services provider, and a founder of Mylspot, an education technology startup that aims to bridge knowledge gaps of students through a mentored learning platform.
Dr Venkatesh is a graduate in electronics from IIT Madras, PhD in Computer Science from TIFR, Mumbai and was a faculty member of the Computer Science & Engineering Dept of IIT Bombay for 8 years where his research interests revolved around declarative languages and their application to the design of embedded systems. He moved to the industry when Sasken was being formed, where he led their technology activities for over two decades. He was a visiting/adjunct faculty at IIM Bangalore for 10 years and a Chair Professor in the department of EE at IIT Madras for 3 years.
Dr. Venkatesh was elected as a fellow of the Indian National Academy of Engineers in 2006 and the IETE in 2012. He won the Technomentor award of the Indian Electronics and Semiconductor Association in 2013 and the Vasvik award for industrial research in 2015. Dr. Venkatesh serves on a number of government, industry and investor committees and boards in the areas of microelectronics, telecommunications and education.
Other courses by the same instructor: BSCMS2001 - Business Data Management and BSCMS2002 - Business Analytics