Qualifier Applications for the second batch are now open.   

Qualifier Applications for the second batch are now open.   

Foundational Level Course

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.

by Madhavan Mukund , G Venkatesh

Course ID: BSCCS1001

Course Credits: 4

Course Type: Foundational

Prerequisites: None

What you’ll learn

Applying a procedural approach to real life problems: sequencing basic steps, identifying common patterns.
Communicating procedural descriptions: flowcharts, pseudo-code.
Understanding underlying abstractions used in programming, through examples: variables, iteration, accumulation, filtering, parametrised procedures, polymorphism and state.
Selecting appropriate data structures to store relationships between data: lists, trees, matrices, graphs.
Identifying algorithmic techniques to solve a given problem: searching, sorting, indexing, matching.
Decomposing problems into smaller units to find a solution: recursion, divide and conquer.
Understanding and checking algorithms: predict their behaviour, design tests to verify their output, perform simple debugging.

Course structure & Assessments

12 weeks of coursework, weekly online assignments, 3 in-person invigilated quizzes, 1 in-person invigilated end term exam. For details of standard course structure and assessments, visit Academics page.

WEEK 1 - Click Here Introduction to course and datasets, concept of variables, Iterators, Filtering, Sanity of data
WEEK 2 Local operations, Max in single iteration, Max in double iterations (non nested)
WEEK 3 Flowcharts, Pseudocodes, Procedures, Parameters
WEEK 4 Construction of flowcharts and pseudocode from a recipe, DIY manual, Conversion from a flowchart to pseudocode
WEEK 5 Data dependencies, Three prize problem, Lists, Nested iterations, Pattern recognition
WEEK 6 Relationships among data using a bipartite graphs e.g. loyal customer, competing shops, best discount
WEEK 7 Data similarities and duplication using trees e.g. similar sentences, occurrences of a person or pronoun, movie’s summary comparison to find similar movies
WEEK 8 Matrix, Graphs and optimization e.g. direct trains, best route, travel or total time, low fares
WEEK 9 Searching (Linear and Binary), Sorting (Insertion and Selection), Indexing, Hashing
WEEK 10 Recursion, Divide and Conquer
WEEK 11 BFS, DFS, Backtracking
WEEK 12 Evaluating arithmetic expressions, Soundex algorithm, Course wrap-up

About the Instructors

Madhavan Mukund
Professor, Department of Computer Science & Engineering, Chennai Mathematical Institute

Madhavan Mukund studied at IIT Bombay (BTech) and Aarhus University (PhD). He has been a faculty member at Chennai Mathematical Institute since 1992, where he is presently Deputy Director and Dean of Studies. 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.

...  more

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 , BSCCS2005 - Programming Concepts using Java and BSCMA1001 - Mathematics for Data Science I

G Venkatesh
Professor of Practice, Department of Humanities and Social Sciences, IIT Madras

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.

...  more

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