Copyright © 2012 Pearson Education, Inc.
Chapter 1
INTRODUCTION
TO COMPUTING
AND ENGINEERING
PROBLEM SOLVING
Copyright © 2012 Pearson Education, Inc.
Outline
Objectives
1. Historical Perspective
2. Recent Engineering Achievements 3. Computing Systems
4. Data Representation and Storage 5. An Engineering Problem-Solving
Methodology
Copyright © 2012 Pearson Education, Inc.
Objectives
Introduce computing and engineering problem solving, including:
• A brief history
• Recent engineering achievements
• A discussion of Numbering Systems
• A discussion of hardware and software
• A five-step problem-solving methodology
Historical Perspective
Copyright © 2012 Pearson Education, Inc.
Charles Babbage, (1792-1871, above)
designed the Analytical Engine
(left) to process decimal numbers.
Augusta Ada Byron (1815-1852, below) wrote the first computer program.
Charles Babbage, Esq.
1792-1871
• English mathematician.
• Designed the Analytical Engine in the early 1800s.
• Published “Of the Analytical Engine” in 1864.
Copyright © 2012 Pearson Education, Inc.
Analytical Engine
• Designed to process base ten numbers.
• Consisted of four parts:
– Storage unit
– Processing unit – Input device
– Output device
Copyright © 2012 Pearson Education, Inc.
Analytical Engine
• Luigi F. Menabrea, French engineer and mathematician, described Babbage’s
vision of a machine capable of solving any problem using:
– Inputs – Outputs
– Programs written on punch cards
Copyright © 2012 Pearson Education, Inc.
Augusta Ada Byron 1815-1852
• Wrote the English translation of Menabrea’s Sketch of the Analytical Engine.
• Envisioned the multidisciplinary potential of the Analytical Engine.
• Wrote detailed instructions for performing
numerical computations using the Analytical Engine.
Copyright © 2012 Pearson Education, Inc.
Digital Computers
• ABC (Atanasoff Berry Computer)
• Developed at Iowa State University between 1939 and 1942 by John Atanasoff and Clifford Berry.
• Weighed 700 pounds.
• Executed one instruction every 15 seconds.
Copyright © 2012 Pearson Education, Inc.
Digital Computers
• ENIAC(Electronic Numerical Integrator And Calculator)
• Developed by research team lead by John Mauchly and J. Presper Eckert during the early 1940s.
• Weighed 30 tons.
• Executed hundreds of instructions every second.
Copyright © 2012 Pearson Education, Inc.
ENIAC vs. Intel Pentium 4
Copyright © 2012 Pearson Education, Inc.
ENIAC executes hundreds of
operations per second (30 tons)
Today’s processors execute trillions of operations per second and weigh ounces.
Recent Engineering Achievements
Copyright © 2012 Pearson Education, Inc. Image credits: NASA/JPL/Malin Space Science Systems.
Recent Engineering Achievements
• Extraterrestrial Explorations
– First manned lunar
landing (July 21, 1969) – Mars Global Surveyor,
Mars Reconnaissance Orbiter, and Mars
Exploration Rovers
• Terrestrial Application Satellites
• Computer Axial
Tomography (CAT) Scanners
• Computer simulations
• Advanced composite materials.
• Speech understanding
• Weather, climate, and global change prediction
Copyright © 2012 Pearson Education, Inc.
Recent Engineering Achievements
• Digital computers facilitate
multidisciplinary engineering
achievements that:
– Improve our lives.
– Expanded the
possibilities for our future.
• Changing engineering environment requires engineers with:
– Communication skills.
– Skills for working in interdisciplinary teams.
– An awareness of ethic issues and environmental concerns.
– A global perspective.
Copyright © 2012 Pearson Education, Inc.
Computing Systems
Copyright © 2012 Pearson Education, Inc.
The von Neumann Computing Model
Computing Systems
• A computing system is a complete working system that includes:
– Hardware – Software
Copyright © 2012 Pearson Education, Inc.
Hardware
Hardware refers to the physical parts off the computing system that have mass (i.e. they can actually be
touched):
– Computer – Display – Mouse – Printer – …
Copyright © 2012 Pearson Education, Inc.
Hardware
Jon von Neumann computing model
– Input device(s) – Output device(s) – Memory Unit
– CPU (Central Processing Unit) consisting of:
• Control Unit
• ALU (Arithmetic Logic Unit)
Copyright © 2012 Pearson Education, Inc.
Software Interface to Computer Hardware
Copyright © 2012 Pearson Education, Inc.
Software
Computer software refers to programs that reside and execute electronically on the hardware.
– Compilers
– Translate source code
– Operating systems
– Provide the HCI (Human Computer Interface)
– Application programs
– Provide problem solutions
Copyright © 2012 Pearson Education, Inc.
Building a Program
• Computers only understand machine
language. High-level languages like C++
must be translated to machine language for execution.
Copyright © 2012 Pearson Education, Inc.
Key Terms
• Source Program
– printable/Readable Program file
• Object Program
– nonprintable machine readable file
• Executable Program
– nonprintable executable code
Copyright © 2012 Pearson Education, Inc.
Errors in Programs
• Syntax/Parse Errors
– Mistakes with the language.
– Always reported by the compiler
• Linking Errors
– Missing pieces prevent the final assembly of an executable program.
• Run-time Errors
– Occur when program is executing.
– May or may not be reported.
Copyright © 2012 Pearson Education, Inc.
Logic Errors
• Can be difficult to find.
• Debugging can be time consuming.
– Better tools for find bugs
• It is important to carefully check the output of your programs for errors.
– Even programs that appear to work correctly may have bugs!
Copyright © 2012 Pearson Education, Inc.
Debugging
• Process of eliminating logic errors (i.e. bugs) from programs.
• User-friendly programming environments such as Microsoft Visual C++ integrate the compiler with
– text processors and code editors
– special tools to help find bugs in programs (debugger) – testing tools
– and much more…
Copyright © 2012 Pearson Education, Inc.
Data Representation and Storage
00110101001001001010101111101110 10101011111011100011010100100100 11000110110101011111001001001010 10101011111101001001000101110001 00100110111110101010001101010011 01001001001010101111101110001101 10100001101010010010111010011111
Copyright © 2012 Pearson Education, Inc.
Data Representation and Storage
• Digital computers store information as a sequence of bits (binary digits).
• The value or state of a bit at any given time can be 0 or 1 (off or on).
• Data is stored as a sequence of bytes.
– A byte is a sequence of 8 bits.
Copyright © 2012 Pearson Education, Inc.
Memory Diagram
Address Space = 8 Word Size = 16
Copyright © 2012 Pearson Education, Inc.
Address Sixteen Bit Word
000 0000101011011101 001 1010001011010100 010 1011010010100101 011 0101001101010101 010 0101000111001110 010 1100110000111010 110 0100011101001001 111 0101110001001000
Data Representation
• Right most bit is referred to as the least significant bit.
• Left most bit is referred to as the most significant bit.
• Value stored at address 000 is
0000101011011101
2= 2781
10But what does it represent?
Copyright © 2012 Pearson Education, Inc.
Numbering Systems
• Base ten number system
• Ten decimal digits (0,1,2,3,4,5,6,7,8,9)
• Each digit multiplies a power of ten
– Example:
Copyright © 2012 Pearson Education, Inc.
245
10= 2*10
2+ 4*10
1+ 5*10
0Numbering Systems
• Base two (binary) number system
• Two binary digits (0,1)
• Each digit multiplies a power of two
– Example:
Copyright © 2012 Pearson Education, Inc.
10110
2= 1*2
4+ 0*2
3+ 1*2
2+ 1*2
1+ 0*2
0
= 1*16 + 0*8 + 1*4 + 1*2 + 0*1 = 16 + 0 + 4 + 2 + 0
= 22
10Numbering Systems
• Base eight number system
• Eight octal digits (0,1,2,3,4,5,6,7)
• Each digit multiplies a power of eight
– Example:
Copyright © 2012 Pearson Education, Inc.
245
8= 2*8
2+ 4*8
1+ 5*8
0
= 2*64 + 4*8 + 5*1 = 128 + 32 + 5
= 165
8Numbering Systems
• Base sixteen number system
• Sixteen hex digits (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)
• Each digit multiplies a power of sixteen
– Example:
Copyright © 2012 Pearson Education, Inc.
2FB
16= 2*16
2+ F*16
1+ B*16
0
= 2*256 + F*16 + B*1 = 512 + 240 + 11
= 763
10Practice with Number Systems
100
2= ?
83716
8= ?
2110100111
2= ?
103A1B
16= ?
2Copyright © 2012 Pearson Education, Inc.
Practice with Number Systems
100
2= 4
83716
8= 011 111 001 110
2110100111
2= 423
103A1B
16= 0011 1010 0001 1011
2Copyright © 2012 Pearson Education, Inc.
Data Types
• Integer Data Type:
– Often represented in 4 bytes (System Dependent)
– Left most bit is reserved for the sign of the number
– Remaining 31 bits represent the magnitude of the number.
Copyright © 2012 Pearson Education, Inc.
Data Types
• Representation of data affects the efficiency of arithmetic and logic operations.
• For efficiency, negative integers are often represented in their 2’s complement
form.
• The 2’s complement of an integer is formed by negating all of the bits and adding one.
Copyright © 2012 Pearson Education, Inc.
Two’s Complement
• Form the 2’s complement
representation for the value -127
10assuming a word size of 8 bits for simplicity.
127
10= 01111111
2Negate bits: 10000000 Add 1: 10000001
• 2’s complement is 1000 0001
2Copyright © 2012 Pearson Education, Inc.
Two’s Complement
• Add 127
10to -127
10Copyright © 2012 Pearson Education, Inc.
01111111
2127
10+ 10000001
2 + -127
10= 00000000
2= 0
10Data Types
• Floating Point Data
– Floating point types represent real numbers, such as 1.25, that include a decimal point.
– Digits to the right of the decimal point form the fractional part of the number.
– Digits to the left of the decimal point form the integral part of the number.
Copyright © 2012 Pearson Education, Inc.
Practice with Decimals
Convert 12.25
10to binary.
Copyright © 2012 Pearson Education, Inc.
Practice with Decimals
Convert 12.25
10to binary.
First convert the integer part:
12
10=1100
2Then repeatedly multiply the fractional part by 2:
.25*2=0.5C0 .50*2=1.0C1 Therefore:
12.25
10=1100.01
2Copyright © 2012 Pearson Education, Inc.
Engineering
Problem-Solving Methodology
Copyright © 2012 Pearson Education, Inc.
Five Step
Problem-Solving Methodology
1. State the problem clearly.
2. Describe the input and output.
3. Work a hand example.
4. Develop a solution.
5. Test your solution.
Copyright © 2012 Pearson Education, Inc.