Computational Thinking
Fundamentals of Computational Thinking is an introductory course for first-semester undergraduate students at Plaksha. It introduces programming and builds foundations in computational thinking and problem solving for advanced work in algorithms and programming, as well as for students pursuing other majors.
Students learn fundamental programming approaches, including conditional branching, iteration, recursion, and exhaustive search, and use them to solve problems. The course uses C and develops programming logic through illustrative problems such as checking whether a string is a palindrome.
Course Overview
Computational thinking is a systematic approach to solving problems. The course introduces programming paradigms and illustrates how they can be applied to a range of problems using C. Topics include conditional branching, iteration, divide and conquer, recursion, and exhaustive search.
The course combines theory and laboratory work: lectures introduce problem-solving approaches, and labs give students hands-on practice designing, implementing, and testing programs.
Learning Objectives
Understand the elements and paradigms of programming and how they can be applied to problem solving.
Apply programming concepts to solve problems.
Synthesize programs that combine different programming concepts.
Learning Outcomes
After completing this course, students should be able to:
1. Explain how programming can solve problems in simple domains.
2. Explain the elements and paradigms of programming.
3. Explain how to synthesize programs to solve problems.
4. Demonstrate problem solving through programming.
5. Design programs that combine programming elements and paradigms.
Recommended Textbooks
Kelly and Pohel, A Book on C, 4th edition.
Additional Reading
Deitel and Deitel, C How to Program, 8th edition.
G. Venkatesh and Madhavan Mukund, Computational Thinking: A Primer for Programmers and Data Scientists.
Peter J. Denning and Matti Tedre, Computational Thinking.
Assessment and Grading
Exams: 30% (final comprehensive exam).
Lab participation: 9%.
Attendance: 10%.
Quizzes: 21% (three theory quizzes, 7% each).
Assignments: 30% (two programming assignments, 15% each).
