Thursday, July 30, 2009

Basic Concepts and Notations

In creating a solution in the problem solving process, there is a need for representing higher level data from basic information and structures available at the machine level. There is also a need for synthesis of the algorithms from basic operations available at the machine level to manipulate higher-level representations. These two play an important role in obtaining the desired result. Data structures are needed for data representation while algorithms are needed to operate on data to produce correct output.

In this lesson we will discuss the basic concepts behind the problem-solving process, data types, abstract data types, algorithm and its properties, the addressing methods, useful mathematical functions and complexity of algorithms.

Problem Solving Process

Programming is a problem-solving process, i.e., the problem is identified, the data to manipulate and work on is distinguished and the expected result is determined. It is implemented in a machine known as a computer and the operations provided by the machine is used to solve the given problem. The problem solving process could be viewed in terms of domains – problem, machine and solution.

Problem domain includes the input or the raw data to process, and the output or the processed data. For instance, in sorting a set of numbers, the raw data is set of numbers in the original order and the processed data is the sorted numbers.

The machine domain consists of storage medium and processing unit. The storage medium – bits, bytes, words, etc – consists of serially arranged bits that are addressable as a unit. The processing units allow us to perform basic operations that include arithmetic, comparison and so on.

Solution domain, on the other hand, links the problem and machine domains. It is at the solution domain where structuring of higher level data structures and synthesis of algorithms are of concern.

No comments:

Post a Comment