Computer-based Problem Solving Process
eBook - ePub

Computer-based Problem Solving Process

  1. 368 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

Computer-based Problem Solving Process

Book details
Book preview
Table of contents
Citations

About This Book

The author looks at the issues of how computing are used and taught, with a focus on embedding computers within problem solving process by making computer language part of natural language of the domain instead of embedding problem domain in the computer by programming. The book builds on previous editions of system software and software systems, concepts and methodology and develops a framework for software creation that supports domain-oriented problem solving process adapting Polya's four steps methodology for mathematical problem solving:

-->

  • Formalize the problem;
  • Develop an algorithm to solve the problem;
  • Perform the algorithm on the data characterizing the problem;
  • Validate the solution.

-->

to the computer use for problem solving in any domain, including computer programming.

Contents:

  • Systems Methodology:
    • Introduction to System Software
    • Formal Systems
    • Ad Hoc Systems
    • Common Systems in Software Development
  • Computer Architecture and Functionality:
    • Hardware System
    • Functional Behavior of Hardware Components
    • Algorithmic Expression of a Hardware System
    • Using Computers to Solve Problems
  • Software Tools Supporting Program Execution:
    • Computer Process Manipulation by Programs
    • Memory Management System
    • I/O Device Management System
    • Computation Activity and Its Management Tools
  • Software Tools Supporting Program Development:
    • Problem Solving by Software Tools
    • Web-Based Problem Solving Process
    • Software Tool Development Illustration
    • Software Tools for Correct Program Development
  • Computer Operation by Problem Solving Process:
    • Using First Computers to Solve Problems
    • Batch Operating System
    • Problem of Protection
    • Timing Program Execution
    • Efficiency of Batch Operating Systems
    • Convenience of the BOS
    • Real-Time Systems


Readership: Student, general public and professional.
Key Features:

  • This is one of the few books in the market that promote programming as a problem solving process following Polya for mathematical problem solving
  • This book consolidates the concepts of system methodology, computer architecture, system tools program execution into workflow of the four steps Polya problem solving process
  • This book insists to hold the hands of readers to walk through the internal working of a computer system from problem deposition to hardware state transitions, a view that has been lost in most computer science curricula currently taught in universities and colleges

Frequently asked questions

Simply head over to the account section in settings and click on “Cancel Subscription” - it’s as simple as that. After you cancel, your membership will stay active for the remainder of the time you’ve paid for. Learn more here.
At the moment all of our mobile-responsive ePub books are available to download via the app. Most of our PDFs are also available to download and we're working on making the final remaining ones downloadable now. Learn more here.
Both plans give you full access to the library and all of Perlego’s features. The only differences are the price and subscription period: With the annual plan you’ll save around 30% compared to 12 months on the monthly plan.
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Yes, you can access Computer-based Problem Solving Process by Teodor Rus in PDF and/or ePUB format, as well as other popular books in Biological Sciences & Science General. We have over one million books available in our catalogue for you to explore.

Information

Publisher
WSPC
Year
2015
ISBN
9789814663755
 
 
 
 
PART 1
Systems Methodology
Chapter 1
Introduction to System Software
System software is a collection of software tools with the goal of making computers convenient and efficient by:
  • allowing programmers to develop programs using a human logic;
  • allowing hardware to execute programs using a machine logic.
After more that 50 years of computer use during problem solving process the question one may raise is: does the system software really make computers convenient to computer users?
Postponing the answer to the previous question, we say that today goal of system software should be: allow application domain experts so solve their problems by manipulating concepts and abstractions of their own problem domains using a computer platform.
This means move the computer process involved within problem solving from the computer environment within the application domain environment. For example, rather than developing a C or Fortran program to solve a second degree equation ax2 + bx + x = 0 a high-school students should do by typing:
computer: solve equation ax2 + bx + c = 0
Likewise, a mechanical engineer should be able to solve differential equations without writing (conventional) Fortran programs!
So, how do we develop (engineer) system software? Is this approach amenable to developing software tools that can be used by application domain experts independent of their computer education?
While developing software tools we should use the same approach as for any other engineering activity, that is:
  • Define the artifacts (objects) handled by system software;
  • Develop a methodology for handling system software artifacts;
  • Develop tools to perform this activity.
We use systems methodology for system software development. The rationale for using systems methodology for software tool development are:
  • Systems describe complex relationship among things and systems abound in computer industry;
  • A system can be formally defined in the framework of universal algebra;
  • Similarity of the objects manipulated by algebra and computer science, which are abstractions;
  • Reuse of the theories developed by algebraic methodology in the framework provided by system software;
  • Universality of algebraic methodology for science discovery.
1.1Abstraction Manipulation
Since software objects are abstractions the first thing we need is a mechanism for abstraction manipulation. This mechanism is provided by the algebraic methodology where:
  • Abstract objects are manipulated by their representations. The representation of a concrete or abstract object is an item of information that stands for that object.
  • Representations are characterized by the tuple 〈Value, Literal, Type〉:
  • The Value is an entity that measures the represented object thus allowing us to relate abstract objects to each other;
  • The Literal is a notation allowing us to refer to the object while manipulating it;
  • The Type indicates a set of operations we can use while manipulating the object.
Example abstract objects:
  • Numbers: values are units of, literals are strings of digits, types are operations with numbers;
  • Blue prints (what do blue-prints represent?): values are concrete object represented, literals are graphic designs used to represent the objects, types are operations used to manipulate the objects;
  • C-language constructs (what do C language constructs represent?): values are computation entities represented by the C language construct, literals are string of terminal characters denoting C language constructs, types are operations used to combine C language constructs getting other C language constructs.
System software tools manipulate abstractions obtained by mapping real world objects into computation representations by the mechanism of abstraction manipulation that operates with:
  • Mental representations, M;
  • Computational representations, C;
  • Explanatory representations, E.
That is, system software tools manipulate abstractions represented by the scheme
figure
. Here we sketch properties Value, Literal, Type for each of M, C, and E. V alue(M) is a brain representation of the object represented; Literal(M) is the language representation of the object represented; Type(M) is the collection of operation brain can perform on the object represented. Similarly, V alue(C) is measured by the intellectual meaning of the object represented; Literal(C) is the language expression of the object represented, such as a natural language expression or a computational language expression, or a musical language expression, etc., depending upon what M is; Type(C) is the collection of operations allowed by the language used to represent C. The tuple 〈V alue, Literal, Type〉 applied to E can be defined within the framework of knowledge manipulation.
The generic approach for abstraction manipulation through system software tools consist of:
  • Develop a semantic model for the object you want to represent (one world), W1.
  • Develop a syntactic model for the object you want to represent (another world), W2.
  • Put them together: R : W1W2.
  • Manipulate W2 as you would do with W1.
Examples abstraction manipulation in everyday life are:
(1)Handling numbers: represent them, define operations on them i.e, develop the arithmetic as a tuple
Arithmetic = 〈ConstantsVariablesExpressions;=, :=, +, −, etc
and study properties of expressions with numbers.
(2)Handling logical objects: define the logical values (true, false), constants, variables, and operations on them (∧, ∨, ¬, …) thus developing the propositional logic as the tuple
Logic = 〈{true, false} ⊕ VariablesExpressions; =, :=, ∧, ∨, ¬〉
and study the properties of logic expressions.
(3)Handling lists: define lists, define list notation, define operations for list creation and manipulation, study properties of list expressions.
Challenge: identify in each of the examples above the three elements involved in abstraction manipulation: W1 (semantics), W2 (syntax), and E : W1W2 their association mechanism.
1.2Systems Methodology
Informally a methodology is a collection of methods, principles and rules, as those of an art or science (see Webster). Example methodologies are a high school algebra methodology, high school geometry methodology, C language programming methodology, house building methodology, etc. Note that principles and rules of a methodology are determined by:
  • the model of the problem to be solved;
  • relations between agents manipulating principles and rules while solving problems.
Consequently we need to understand the concept of a problem.
1.2.1Problem solving
Following Polya [Polya (1957)] we say that to have a problem means to search consciously for some action (solution) appropriate to attain a given aim (purpose). Note that hidden in this phrase are three things that characterize a problem: unknown, action, purpose. To solve a problem means to find such an action. Example problem is C programming: unknown is the C program, action is the C program development, and the goal is solving problems by C programming. A problem is thus characterized by three elements :
(1)unknown, (what is a C program?);
(2)data, (what do we need to know in order to write C programs?);
(3)purpose, (what are conditions satisfied by unknown and data according to the goal of C program development) or (how do we or how does the C compiler recognize a valid C p...

Table of contents

  1. Cover Page
  2. Title Page
  3. Copyright Page
  4. Dedication
  5. Preface
  6. Contents
  7. Part 1 Systems Methodology
  8. 1. Introduction to System Software
  9. 2. Formal Systems
  10. 3. Ad Hoc Systems
  11. 4. Common Systems in Software Development
  12. Part 2 Computer Architecture and Functionality
  13. 5. Hardware System
  14. 6. Functional Behavior of Hardware Components
  15. 7. Algorithmic Expression of a Hardware System
  16. 8. Using Computers to Solve Problems
  17. Part 3 Software Tools Supporting Program Execution
  18. 9. Computer Process Manipulation by Programs
  19. 10. Memory Management System
  20. 11. I/O Device Management System
  21. 12. Computation Activity and Its Management Tools
  22. Part 4 Software Tools Supporting Program Development
  23. 13. Problem Solving by Software Tools
  24. 14. Web-Based Problem Solving Process
  25. 15. Software Tool Development Illustration
  26. 16. Software Tools for Correct Program Development
  27. Part 5 Computer Operation by Problem Solving Process
  28. 17. Using First Computers to Solve Problems
  29. 18. Batch Operating System
  30. 19. Problem of Protection
  31. 20. Timing Program Execution
  32. 21. Efficiency of Batch Operating Systems
  33. 22. Convenience of the BOS
  34. 23. Real-Time Systems
  35. Bibliography
  36. Index