Application for the next batch of the Diploma Program is now open.

Applications open now for next batch of the Diploma Program

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: BSCS1001

Course Credits: 4

Course Type: Foundational

Recommended Pre-requisites: None

What you’ll learn VIEW COURSE VIDEOS

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, 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
+ Show all weeks

About the Instructors

Madhavan Mukund
Director, 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.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: BSCS2002 - Programming, Data Structures and Algorithms using Python and BSCS2005 - Programming Concepts using Java

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: BSMS2001 - Business Data Management and BSMS2002 - Business Analytics