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.

Course ID: BSCCS1001

Course Credits: 4

Course Type: Foundational

Recommended Pre-requisites: 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, 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

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.

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