Professional Documents
Culture Documents
2 Baic Concepts
2 Baic Concepts
Contents
• Introduction
Basic Concepts
• Computers
• Computer Organization
David T. Makota
• Computer programs
Faculty of Computing and Mathematics
The Institute of Finance Management • Programming
Dar Es Salaam, Tanzania • Programmer
• Programming languages
• Software development
CSU07101/ITU07101/CYU07106 - Problem CSU07101/ITU07101/CYU07106 - Problem
1 2
Solving Techniques Solving Techniques
Lecture i - ii Introduction
1
BCS 1, BCSec 1 & BIT 1 10/29/2023
Introduction Introduction
• People make decisions every day to solve problems • Steps to follow to ensure the best decision.
that affect their lives. – Identify alternative ways to solve the problem
– If a bad decision is made, time and resources are wasted • List should be as complete as possible.
• Steps to follow to ensure the best decision. • Alternative solutions must be acceptable ones.
– Identify the problem. – Select the best way to solve the problem from the
• If you don’t know what the problem is, you cannot solve it.
list of alternative solutions.
– Understand the problem.
• Identify and evaluate the pros and cons of each
• Knowledge base of the person or machine for whom possible solution
you are solving the problem.
• Select criteria for the evaluation.
• Your own knowledge base – Guidelines for evaluating each solution.
CSU07101/ITU07101/CYU07106 - Problem CSU07101/ITU07101/CYU07106 - Problem
5 6
Solving Techniques Solving Techniques
Introduction Introduction
• Steps to follow to ensure the best decision. • Types of Problems
– List instructions that enable you to solve the problem using – Problems solved with a series of actions such as balancing a
the selected solution. check book or baking a cake
• Must fall within the knowledge base. • Algorithmic solutions
• No instruction can be used unless the individual or the machine – Solution can be reached by completing the actions in steps
can understand it. – These steps are called the algorithm
– Evaluate the solution. – Problems that require reasoning built on knowledge and
• check its result to see if it is correct and satisfies the needs experience
• If the result is either incorrect or unsatisfactory • Heuristic solutions
– Review the list of instructions to see that they are correct or start the process – Such as how to buy the best stock or whether to expand the company
all over again
– The problem solver can use the six steps for both
algorithmic and heuristic solutions.
CSU07101/ITU07101/CYU07106 - Problem CSU07101/ITU07101/CYU07106 - Problem
7 8
Solving Techniques Solving Techniques
2
BCS 1, BCSec 1 & BIT 1 10/29/2023
Computers
• A computer is a device that can perform
computations and make logical decisions
billions of times faster than human beings can.
• The large computers introduced decades ago
were called mainframes
Basic Concepts
– Current versions are widely used today in homes,
Computers schools, business, government and industry.
Computers Computers
• Silicon chip technology has made computing • Many of today’s personal computers can
so economical perform several billion additions per second.
– More than a billion general-purpose computers • Today’s fastest supercomputers can perform
are in use worldwide. thousands of trillions (quadrillions) of
– Billions more special purpose computers are used instructions per second!
in intelligent electronic devices like car navigation
– To put that in perspective, a quadrillion-
systems, energy-saving appliances and game
instruction-per-second computer can perform
controllers.
more than 100,000 calculations per second for
every person on the planet!
CSU07101/ITU07101/CYU07106 - Problem CSU07101/ITU07101/CYU07106 - Problem
11 12
Solving Techniques Solving Techniques
3
BCS 1, BCSec 1 & BIT 1 10/29/2023
Computers Computers
• Computers process data under the control of • The programs that run on a computer are
sets of instructions called computer programs referred to as software.
– These programs guide the computer through • Hardware costs have been declining
orderly sets of actions specified by people called dramatically in recent years, to the point that
computer programmers. personal computers have become a
• A computer consists of various devices commodity.
referred to as hardware
– Keyboard, screen, mouse, hard disk, memory,
DVDs and processing units.
Computer Organization
4
BCS 1, BCSec 1 & BIT 1 10/29/2023
5
BCS 1, BCSec 1 & BIT 1 10/29/2023
Computer Programs
• A computer program is one or more instructions that
are intended for execution by a computer.
• Computer programs may result from the compilation
or interpretation of programming languages, direct
result of hardware processing, or manually input to
the central processor of a computer.
Basic Concepts • A computer program does nothing unless its
Computer Programs instructions are executed by a central processor.
6
BCS 1, BCSec 1 & BIT 1 10/29/2023
7
BCS 1, BCSec 1 & BIT 1 10/29/2023
Programming
• Computer programming is the iterative process of
writing or editing source code of computer
programs, followed by testing, analyzing and refining
this code.
• Many aspects of programming
– Programming is controlling
• Computer does exactly what you tell it to
Basic Concepts
– Programming is teaching
• Computer can only “learn” to do new things if you tell it how
Programming – Programming is problem solving
• Always trying to make computer do something useful — eg:
finding an optimal travel route
8
BCS 1, BCSec 1 & BIT 1 10/29/2023
Programming: cont
• Many aspects of programming: cont
– Programming is creative
• Must find a good solution out of many possibilities
– Programming is modelling
• Describe salient (relevant) properties and behaviours of a system
of components (objects)
– Programming is abstraction Basic Concepts
• Identify important features without getting lost in detail
– Programming is concrete
Programmer
• Must provide detailed instructions to complete task
Programmer Programmer
• A programmer or software developer is someone • Application versus system programming
who programs computers, that is, one who writes – Computer programmers often are grouped into two broad
computer software. types:
• Applications programmers
• The term computer programmer can refer to a
• Systems programmers
specialist in one area of computer programming or to
– Applications programmers
a generalist who writes code for many kinds of • Write programs to handle a specific job, such as a program to track
software. inventory within an organization.
• One who practices or professes a formal approach to – Systems programmers
programming may also be known as a programmer • Write programs to maintain and control computer systems
software, such as operating systems and database management
analyst, software engineer, computer scientist, or systems.
software analyst.
CSU07101/ITU07101/CYU07106 - Problem CSU07101/ITU07101/CYU07106 - Problem
35 36
Solving Techniques Solving Techniques
9
BCS 1, BCSec 1 & BIT 1 10/29/2023
Programming Languages
• Programming language
– Is an artificial language that can be used to control the
behavior of a machine, particularly a computer.
• Programming languages, like natural languages, are
defined by syntactic and semantic rules which
Basic Concepts
describe their structure and meaning
– Syntax
Programming Languages • Grammatical rules for forming instructions
– Semantics
• Meaning /interpretation of instructions
10
BCS 1, BCSec 1 & BIT 1 10/29/2023
Basic Concepts
Software Development
The Waterfall Model
11
BCS 1, BCSec 1 & BIT 1 10/29/2023
12
BCS 1, BCSec 1 & BIT 1 10/29/2023
Summary
• Introduction
• Computers
• Computer Organization
• Computer programs
Basic Concepts • Programming
Summary • Programmer
• Programming languages
• Software development
CSU07101/ITU07101/CYU07106 - Problem CSU07101/ITU07101/CYU07106 - Problem
51 52
Solving Techniques Solving Techniques
13