23CSE101 COMPUTATIONAL PROBLEM SOLVING L-T-P-C: 3-0-2-4 2 Course Objectives The objective of this course is to introduce the computational aspects of problem solving to the students. The course exposes computational thinking to the students through systematic treatment on algorithms, logical reasoning and solutions. The course then introduces Python language which will be used as a computational tool for both designing algorithms and solving problems. 3 Course Outcomes CO1: Apply algorithmic thinking to understand, define and solve problems. CO2: Design and implement algorithm(s) for a given problem. CO3: Apply the basic programming constructs for developing solutions and programs. CO4: Analyze an algorithm by tracing its computational states, identifying bugs and correcting them. 4 5 Unit 1 Problem Solving and Algorithmic Thinking Overview – Algorithms - Properties, Constituents of Algorithms: Sequence, Selection and Repetition - Designing Algorithms, Expressing and Analyzing Algorithms - Algorithms vs Programs - Logical Reasoning - Logical Errors - Problem Definition Problem Understanding and Analysis - Designing Solutions. 6 Unit 2 Overview of Programming Paradigms - Introduction to Python - Variables - Strings, IO - Control Flow - Data Abstraction: Working with Lists/Arrays, Dictionaries, Tuples and Sets - Functions Recursion - Files - Debugging - Computational Tracing of Python Programs. 7 Unit 3 Problem Solving with Algorithms - Searching and Sorting - Applied Computational Thinking Problems: Python Libraries, Text Processing, Data Processing and Analysis, Chatbot etc. 8 Textbook(s) Sofia De Jesus and Dayrene Martinez, “Applied Computational Thinking with Python: Design algorithmic solutions for complex and challenging real-world problems”, Packt Publishing, November 2020. 9 Reference(s) Thomas Mailund, “Introduction to Computational Thinking: Problem Solving, Algorithms, Data Structures, and More”, Apress, 2021. Karl Beecher, “Computational Thinking: A beginner's guide to problem-solving and programming”, BCS, The Chartered Institute for IT, 2017. Curzon P, McOwan PW, “The Power of Computational Thinking: Games, Magic and Puzzles to help you become a computational thinker”, World Scientific Publishing Company; 2017. 10 Computational Thinking Computational Thinking is the thought processes involved in formulating a problem and expressing its solution(s) in such a way that a computer – human or machine can effectively carry out. 11 Computational Thinking To solve a problem we need to apply the following: ❖ Logical Thinking ❖ Ordered Approach ❖ Out of the box Thinking 12 Logical Thinking Logical thinking is the ability to see a problem as a sequence of instructions that will change the state of a problem. Logic is a system used for distinguishing between correct and incorrect arguments. 1. Socrates is a man. 2. All men are mortal. 3. Therefore, Socrates is mortal. 13 Ordered Approach It is the process of breaking the problem into simple steps and follow them in the correct order. 14 Out of the Box Thinking Out of box thinking is the ability to look beyond the problem to find the approach to solve it. Don’t allow the problem to lock you in with unnecessary boundaries. 15 Example 16 - Did you solve it?? - Did you limit yourself by thinking the animals can only go in one direction? Thinking the animal can go back is an example of “Thinking out of box”. 17 Solution 18 Four Steps in Computational Thinking: 1. Decomposition: Breaking a complex problem down into smaller, more manageable parts. 2. Pattern Recognition: Identifying patterns or trends within a problem. 3. Abstraction: Getting rid of useless information that is not going to contribute to the solution. 4. Algorithm: Develop step-by-step instructions for solving the problem. 19 Decomposition 20 Pattern Recognition 21 Patterns An algorithm that draws such an image might therefore look like this: 1. Draw circle with radius 30 at position 50,50 with line thickness 2. 2. Draw circle with radius 6 at position 40,40 with line thickness 1. 3. Draw circle with radius 3 at position 40,40 filled black. 4. Draw circle with radius 6 at position 60,40 with line thickness 1. 5. Draw circle with radius 3 at position 60,40 filled black. 6. Draw red line from position 30,70 to position 70,70 with line thickness 1. 22 Abstraction An online video service like YouTube or Netflix can recommend videos to a user because it has built an abstract model of them. An ideal model of the user would include a perfect replica of their neurons and brain chemistry, so it would know with uncanny accuracy which videos they would like to watch at any moment. Or, failing that, maybe a complete and thorough biography including a run-down of every book, film and TV show they’ve ever consumed. 23 Problem Solving and Algorithmic Thinking Overview Algorithm: a sequence of clearly defined steps that describe a process to follow a finite set of unambiguous instructions with clear start and end points. 24 Algorithm Example 25 Recall Computational Thinking ❖Logical Thinking ❖Ordered Approach ❖Out of the box Thinking Steps in Computational Thinking ❖Decomposition ❖Pattern Recognition ❖Abstraction ❖Algorithm 26 Additional References https://www.cs.cmu.edu/~15110-s13/Wing06-ct.pdf https://www.learning.com/blog/defining-computational-thinking/ https://www.researchgate.net/publication/274309848_Computational_Thinking https://digitalpromise.org/initiative/computational-thinking/computational-thinking-for-nextgeneration-science/what-is-computationalthinking/#:~:text=Computational%20thinking%20is%20an%20interrelated,participating%20in%2 0a%20computational%20world. 27 Queries 28 29