Topic 1- Video Lecture (1 hour)

SUMMARY

In this topic, you have learnt that on how to solving a problem.

When solving a computational problem, either suitable existing algorithms may be found or new algorithms must be developed. Example, for the Traveling Salesman problem, there are various (nontrivial) algorithms that can be utilized, as mentioned, for solving problems with tens of thousands of cities. Finally, for the game of chess, since it is infeasible to look ahead at the final outcomes of every possible move, there are algorithms that make a best guess at which moves to make. Algorithms that work well in general but are not guaranteed to give the correct result for each specific problem are called heuristic algorithms.

 

Program Implementation

Then, you are able to design decisions provide general details of the data representation and the algorithmic approaches for solving a problem. The details, however, do not specify which programming language to use, or how to implement the program. That is a decision for the implementation phase. Since we are programming in Python, the implementation needs to be expressed in a syntactically correct and appropriate way, using the instructions and features available in Python.

 

Program Testing

As humans, we have abilities that far exceed the capabilities of any machine, such as using common sense reasoning, or reading the expressions of another person. However, one thing that we are not very good at is dealing with detail, which computer programming demands. Therefore, while we are enticed by the existence of increasingly capable computing devices that unfailingly and speedily execute whatever instructions we give them, writing computer programs is difficult and challenging. As a result, programming errors are pervasive, persistent and inevitable. However, the sense of accomplishment of developing software that can be of benefit to hundreds, thousands, or even millions of people can be extremely gratifying. If it were easy to do, the satisfaction would not be as great.

Given this fact, software testing is a crucial part of software development. Testing is done incrementally as a program is being developed, when the program is complete, and when the program needs to be updated.

 

https://docs.google.com/presentation/d/1HiwjOcs0RmPKzsI8fV0FsUuXcfjY1WN8/edit?usp=share_link&ouid=105801180759338553524&rtpof=true&sd=true

Click Chapter 1_Intro to Problem Solving.pptx link to view the file.