CS1001 · Foundation · 4 credits

Computational Thinking

How to break a problem into steps a computer can follow — the ideas behind programming, taught before any language.

Instructor Prof. Madhavan Mukund & Prof. G Venkatesh Term Every term Prereq none

§ 1Calendar

  • Quiz 1—
  • Quiz 2—
  • End-term examination—

§ 2Previous Year Questions

§ 3Resources

Course material3

Notes3

CS1001 · Foundation · 4 credits

Syllabus

The official course syllabus, transcribed from the IITM BS Data Science & Applications course booklet.

§ 1Course Description

Students will be introduced to key programming concepts through illustrative examples, most of which are worked out manually. This step-by-step approach enables close examination and deeper understanding of the concepts discussed.

Lectures-Tutorials-Practicals-Credits: 4-0-0-4

§ 2Faculty

§ 3Week-by-week

Week 1: Introduction to datasets, variables, filtering and iteration; flowcharts; data types and data integrity.

Week 2: Iterative problem solving; conditional logic, aggregation (max, counts), and introduction to pseudocode.

Week 3: Tabular data representation; multi-step analysis, hypothesis testing, and modular programming with procedures.

Week 4: Nested iterations and computational complexity; optimization techniques like binning; real-world text and data matching problems.

Week 5: Introduction to collections; list data structures and basic operations.

Week 6: Advanced list operations; sorting, ordered data, and data-driven hypothesis testing.

Week 7: Dictionaries and key-value data structures; applications in real-world data relationships.

Week 8: Advanced dictionary operations; combining lists and dictionaries; side effects and structured data processing.

Week 9: Graph data structures; representation, relationships, and real-world network modeling.

Week 10: Graph representations and traversal strategies; adjacency structures and path-finding approaches.

Week 11: Recursion and depth-first search; algorithm design using recursive procedures.

Week 12: Comprehensive problem solving and revision across programming fundamentals, data structures, and algorithms.