Dev Dives: Streamline document processing with UiPath Studio Web
1. computers introduction
1. 11
Lecture 1: IntroductionLecture 1: Introduction
OverviewOverview
History of ComputersHistory of Computers
Application AreasApplication Areas
Types of ComputersTypes of Computers
Computer ConfigurationsComputer Configurations
Computers as Information ProcessorsComputers as Information Processors
3. 33
Overview of Part 1Overview of Part 1
Number system:Number system: how is informationhow is information
represented in a computer.represented in a computer.
Boolean Algebra:Boolean Algebra: the basis for logic designthe basis for logic design
and manipulation of information.and manipulation of information.
Logic gates:Logic gates: what are the gates used, andwhat are the gates used, and
how circuits can be made from gates.how circuits can be made from gates.
Function simplification:Function simplification: to reduce the sizeto reduce the size
of design, increase speed, etc.of design, increase speed, etc.
4. 44
Overview of Part 1Overview of Part 1
Combinational circuits:Combinational circuits: simple circuitsimple circuit
design without memory.design without memory.
Sequential circuits:Sequential circuits: circuit design withcircuit design with
memory.memory.
Disk:Disk: storage techniques.storage techniques.
Bus:Bus: internal communication.internal communication.
I/O:I/O: devices, technology, etc.devices, technology, etc.
5. 55
History of ComputersHistory of Computers
AbacusAbacus invented in Babylonia in 3000BCinvented in Babylonia in 3000BC
Adding machineAdding machine byby Blaise PascalBlaise Pascal (1642)(1642)
Difference engineDifference engine and theand the analytical engineanalytical engine byby
Charles BabbageCharles Babbage (1842)(1842)
IBM first electromechanical computer (usingIBM first electromechanical computer (using
relays) designed byrelays) designed by Howard AikenHoward Aiken (1937) was(1937) was
based on punched cards.based on punched cards.
used to calculate tables of mathematical functionsused to calculate tables of mathematical functions
6. 66
History of ComputersHistory of Computers
11stst
Generation ComputersGeneration Computers (1940s to early 1950s) –(1940s to early 1950s) –
based onbased on vacuum tubesvacuum tubes technology.technology.
1943 – ENIAC: first fully electronic computer, designed by1943 – ENIAC: first fully electronic computer, designed by
John MauchlyJohn Mauchly
1944 – Mark I: Howard Aiken1944 – Mark I: Howard Aiken
1946 – EDVAC: first stored program computers, designed by1946 – EDVAC: first stored program computers, designed by
John von NeumannJohn von Neumann
22ndnd
Generation ComputersGeneration Computers (late 50s to early 60s) –(late 50s to early 60s) –
based onbased on transistorstransistors technology.technology.
more reliable, less expensive, low heat dissipationmore reliable, less expensive, low heat dissipation
IBM 7000 series, DEC PDP-1IBM 7000 series, DEC PDP-1
7. 77
History of ComputersHistory of Computers
33rdrd
Generation ComputersGeneration Computers (late 60s to early 80s) –(late 60s to early 80s) –
integrated circuitsintegrated circuits (IC).(IC).
IBM 360 series, DEC PDP-8IBM 360 series, DEC PDP-8
IC – many transistors packed into single containerIC – many transistors packed into single container
low prices, high packing densitylow prices, high packing density
44thth
Generation ComputersGeneration Computers (present day) LSI/VLSI(present day) LSI/VLSI
small size, low-cost, large memory, ultra-fast PCs tosmall size, low-cost, large memory, ultra-fast PCs to
supercomputerssupercomputers
55thth
Generation ComputersGeneration Computers (future)(future)
massively parallel, large knowledge bases, intelligentmassively parallel, large knowledge bases, intelligent
Japan, Europe and US advanced research programsJapan, Europe and US advanced research programs
8. 88
History of ComputersHistory of Computers
Web sitesWeb sites
History of ComputersHistory of Computers
(http://www.comp.nus.edu.sg/~sf100/c1f7.htm)(http://www.comp.nus.edu.sg/~sf100/c1f7.htm)
ACM Timeline of Computing HistoryACM Timeline of Computing History
(http://www.computer.org/computer/timeline)(http://www.computer.org/computer/timeline)
The Virtual Museum of ComputingThe Virtual Museum of Computing
(http://www.comlab.ox.ac.uk/archive/other/museums/computi(http://www.comlab.ox.ac.uk/archive/other/museums/computi
ng.html)ng.html)
IEEE Annals of the History of ComputingIEEE Annals of the History of Computing
(http://www.computer.org/annals/)(http://www.computer.org/annals/)
and others (surf the web)and others (surf the web)
9. 99
Application AreasApplication Areas
Scientific:Scientific: weather forecasting, simulation, space-weather forecasting, simulation, space-
program.program.
one of the earliest application areas.one of the earliest application areas.
heavy computation but small amount of data.heavy computation but small amount of data.
Commercial:Commercial: accounting, banking, inventory, sales.accounting, banking, inventory, sales.
changes nature of business – information is money.changes nature of business – information is money.
high data throughput, simple calculations.high data throughput, simple calculations.
Manufacturing:Manufacturing: numerical control, CAD/CAM,numerical control, CAD/CAM,
integration.integration.
graphics, interfacing, device-drivers, networks.graphics, interfacing, device-drivers, networks.
10. 1010
Application AreasApplication Areas
Real-time & Control System:Real-time & Control System: air-traffic control,air-traffic control,
aircraft,nuclear power station.aircraft,nuclear power station.
real time, very fast, safety-critical.real time, very fast, safety-critical.
Educational & RecreationalEducational & Recreational
CAI software, multi-media, games, Internet, World WideCAI software, multi-media, games, Internet, World Wide
Web.Web.
TelecommunicationTelecommunication
Network, SCV, Singapore One.Network, SCV, Singapore One.
11. 1111
Types of ComputersTypes of Computers
Supercomputers:Supercomputers:
very fast (Gflops) but expensive machine($10m), vector orvery fast (Gflops) but expensive machine($10m), vector or
parallel processors, used in scientific applications andparallel processors, used in scientific applications and
simulations.simulations.
Mainframes:Mainframes:
fast (>10mips) but expensive ($1m), high-throughput, usedfast (>10mips) but expensive ($1m), high-throughput, used
in large commercial organisations, support many concurrentin large commercial organisations, support many concurrent
users interactively.users interactively.
Mini-computers:Mini-computers:
fast but affordable ($200k), used in medium-sizedfast but affordable ($200k), used in medium-sized
organisations (e.g. SoC), support multiple users.organisations (e.g. SoC), support multiple users.
12. 1212
Types of ComputersTypes of Computers
Workstations:Workstations:
affordable ($20k) and fast single-user systems (20 riscsaffordable ($20k) and fast single-user systems (20 riscs
mips), good graphics capabilities, engineering, network-mips), good graphics capabilities, engineering, network-
based computing.based computing.
Micro/Personal/Home Computers:Micro/Personal/Home Computers:
cheap and affordable ($3k), transportable, home use, goodcheap and affordable ($3k), transportable, home use, good
for games and as educational tool, word processing, suitablefor games and as educational tool, word processing, suitable
for small enterprise.for small enterprise.
16. 1616
Computers as InformationComputers as Information
ProcessorsProcessors
Example: An automobile
augments our power of
locomotion.
A computer is a device
capable of solving problems
according to designed
program. It simply augments
our power of storage and
speed of calculation.
Driver
Programmer
17. 1717
Computers as InformationComputers as Information
ProcessorsProcessors
Unlike previous inventions, computers are specialUnlike previous inventions, computers are special
because they arebecause they are general-purposegeneral-purpose..
Could be used to perform a variety of tasks.Could be used to perform a variety of tasks.
Computer =Computer = Hardware + SoftwareHardware + Software..
HardwareHardware: physical components for computation/processing;: physical components for computation/processing;
should be simple, fast, reliable.should be simple, fast, reliable.
SoftwareSoftware: set of instructions to perform tasks to: set of instructions to perform tasks to
specifications; should be flexible, user-friendly,specifications; should be flexible, user-friendly,
sophisticated.sophisticated.
18. 1818
Computer as InformationComputer as Information
ProcessorsProcessors
Computer are Information Processors
Data Units:
1 bit (binary digit): one of two values (0 or 1)
1 byte: 8-bits
1 word: 1, 2, or 4 bytes, or more (depends on ALU)
Computer
system
Raw
data
Processed
information
19. 1919
Basic Machine HardwareBasic Machine Hardware
ArchitectureArchitecture
Main Components:Main Components:
CPUCPU (Central Processing Unit: controls devices and(Central Processing Unit: controls devices and
processes data).processes data).
MemoryMemory: stores programs and intermediate data.: stores programs and intermediate data.
Input DevicesInput Devices: accept data from outside world.: accept data from outside world.
Output DevicesOutput Devices: presents data to the outside world.: presents data to the outside world.
An analogy with Human Information Processors:An analogy with Human Information Processors:
CPU – brain’s reasoning powersCPU – brain’s reasoning powers
Memory – brain’s memoryMemory – brain’s memory
Input Devices – eyes, ears, sensory sub-systemInput Devices – eyes, ears, sensory sub-system
Output Devices – mouth, hands, facial and bodyOutput Devices – mouth, hands, facial and body
expressionsexpressions
22. 2222
Hardware – CPUHardware – CPU
CPU = control unit + ALU + registersCPU = control unit + ALU + registers
Control Unit :Control Unit : monitors and directs sequences ofmonitors and directs sequences of
instructionsinstructions
Execution CycleExecution Cycle (repeated):(repeated):
fetch (next instruction)fetch (next instruction)
decodedecode
executeexecute
23. 2323
Hardware – CPUHardware – CPU
ALU:ALU: performs simple arithmetic and logicalperforms simple arithmetic and logical
operations.operations.
Examples: Add, subtract, and, or, invert, increment etc.Examples: Add, subtract, and, or, invert, increment etc.
A B
ALU
select
R = A op B
n-bits operations
R
24. 2424
Hardware – CPUHardware – CPU
Registers:Registers: temporary results + status informationtemporary results + status information
ACC (accumulator) – current dataACC (accumulator) – current data
PC (program counter) – points to next instructionPC (program counter) – points to next instruction
IR (instruction register) – current instructionIR (instruction register) – current instruction
MA (memory address) – address to read/writeMA (memory address) – address to read/write
MB (memory buffer) – data to read/writeMB (memory buffer) – data to read/write
25. 2525
Hardware – Memory/StorageHardware – Memory/Storage
Purpose: to store program and data.Purpose: to store program and data.
Desirable Traits: fast access, large capacity,Desirable Traits: fast access, large capacity,
economical, non-volatile.economical, non-volatile.
However, most memory devices do not have all theseHowever, most memory devices do not have all these
traits.traits.
26. 2626
Hardware – Memory/StorageHardware – Memory/Storage
Solution: hierarchical combinationSolution: hierarchical combination
registers
main memory
disk storage
magnetic tapes
Fast, expensive
(small numbers),
volatile
Slow, cheap
(large numbers),
non-volatile
27. 2727
Hardware – Main MemoryHardware – Main Memory
FastFast BUTBUT volatilevolatile (need power to maintain data)(need power to maintain data)
Logical structure – table of memory cells/units.Logical structure – table of memory cells/units.
0
1
2
3
2m
-3
2m
-2
2m
-1
addresses
memory
cells
8 bits or more
M
A
R
M
B
R
address
data
28. 2828
Hardware – Main MemoryHardware – Main Memory
Memory cells may be grouped intoMemory cells may be grouped into pagespages (say 512(say 512
consecutive words per page).consecutive words per page).
UnitsUnits
1 KBytes = 1024 (or 21 KBytes = 1024 (or 21010
) bytes) bytes
1 MBytes = 1024 Kbytes (or 21 MBytes = 1024 Kbytes (or 22020
bytes)bytes)
1 GBytes = 1024 Mbytes (or 21 GBytes = 1024 Mbytes (or 23030
bytes)bytes)
30. 3030
Basic Machine SoftwareBasic Machine Software
SoftwareSoftware is the key to making computers generalis the key to making computers general
purpose.purpose.
Software are often built hierarchically, with layers ofSoftware are often built hierarchically, with layers of
software providing successive higher-level ofsoftware providing successive higher-level of
abstractions.abstractions.
This structure is reflected by the following onion layerThis structure is reflected by the following onion layer
view of software.view of software.
32. 3232
Software – FlowchartsSoftware – Flowcharts
The sequence of instructions of a software/programThe sequence of instructions of a software/program
can be graphically specified usingcan be graphically specified using flowchartsflowcharts..
The flowchart technique maybe a little outdated butThe flowchart technique maybe a little outdated but
could still be used in a clear manner for simplecould still be used in a clear manner for simple
problems.problems.
As an example, the procedure to find the roots of aAs an example, the procedure to find the roots of a
quadratic equation,quadratic equation, axax22
++ bxbx ++ cc = 0, can be written= 0, can be written
using the following equation:using the following equation:
aacbbroots 2/)4( 2
−±−=
33. 3333
Software – FlowchartsSoftware – Flowcharts
This procedure can be coded in the followingThis procedure can be coded in the following
flowchart:flowchart:
aacbbroots 2/)4( 2
−±−=
Read
a,b,c
a=0?
d:=b2
- 4ac
d>0
d=0
d<0
Write
real root
Write
complex roots
Write
real roots
= <
>
no
yes Write
not quadratic
34. 3434
Software – LanguagesSoftware – Languages
All programs will have to be coded in someAll programs will have to be coded in some
programming language – usually text-based.programming language – usually text-based.
The native language of machine is calledThe native language of machine is called machinemachine
languagelanguage..
This consists of a set of primitive instructions, codedThis consists of a set of primitive instructions, coded
in numbers.in numbers.
An example is "0310 0412 0512". But can youAn example is "0310 0412 0512". But can you
understand what it does?understand what it does?
35. 3535
Software – LanguagesSoftware – Languages
Possible to use more human-readable mnemonicPossible to use more human-readable mnemonic
instructions.instructions.
These are know asThese are know as assembly languageassembly language instructions.instructions.
Normally, assembly language has a 1-to-1Normally, assembly language has a 1-to-1
correspondence with machine language.correspondence with machine language.
Mnemonic Description
ADD 10 AC:=AC+C(10)
SUB 12 AC:=AC-C(12)
STO 12 C(12)=AC
36. 3636
Software – LanguagesSoftware – Languages
Assembly language is still very primitive.Assembly language is still very primitive.
Higher-level LanguagesHigher-level Languages, like Pascal, C, Fortran,, like Pascal, C, Fortran,
which are a little closer to English language havewhich are a little closer to English language have
been developed.been developed.
37. 3737
Software – LanguagesSoftware – Languages
An example Pascal program to find roots of quadraticAn example Pascal program to find roots of quadratic
equation:equation:
read(a,b,c);
if a=0
then writeln ("not a quadratic equation")
else
begin
d := sqr(b)-4*a*c;
if d>0 then writeln ("complex roots")
else if d=0 then writeln("single root =",-b/(2*a))
else writeln ("root1=",-b+sqrt(d)/(2*a),
"root2=", -b-sqrt(d)/(2*a));
end;
38. 3838
Software – Operating SystemsSoftware – Operating Systems
Operating SystemOperating System (OS) is situated directly above(OS) is situated directly above
hardware. It controls and manages the availablehardware. It controls and manages the available
hardware resources.hardware resources.
Often, OS has special access privileges to certainOften, OS has special access privileges to certain
categories of instructions and certain hardwarecategories of instructions and certain hardware
User programs have to go through OS for theseUser programs have to go through OS for these
privileges.privileges.
39. 3939
Software – Operating SystemsSoftware – Operating Systems
Associated Functions/Tasks:Associated Functions/Tasks:
boots up machineboots up machine
loads user programloads user program
allocates main memory/storage spaceallocates main memory/storage space
schedules concurrent user programsschedules concurrent user programs
drivers to service various devices (terminals, printers, etc.)drivers to service various devices (terminals, printers, etc.)
40. 4040
Software – System UtilitiesSoftware – System Utilities
Above the OS, there is a set of frequently executedAbove the OS, there is a set of frequently executed
programs,calledprograms,called System UtilitiesSystem Utilities. These utilities are. These utilities are
often packaged with OS.often packaged with OS.
Used by programmers/analyst to help develop applications.Used by programmers/analyst to help develop applications.
Some examplesSome examples
EditorEditor:: compose/edit user programs or data filescompose/edit user programs or data files
Assembler:Assembler: translates assembly to machine codetranslates assembly to machine code
Compiler:Compiler: translates high-level language totranslates high-level language to
assembler/machine codeassembler/machine code
Spooler:Spooler: temporary stores print files for queuingtemporary stores print files for queuing
41. 4141
Software – System UtilitiesSoftware – System Utilities
Some examples (continued)Some examples (continued)
Mailer:Mailer: forwards/receives mails between usersforwards/receives mails between users
DBMSDBMS (Data-Base Management System): centralised(Data-Base Management System): centralised
management of data at a more abstract level than filesmanagement of data at a more abstract level than files
Window Management System:Window Management System: multiple windows can appearmultiple windows can appear
on single screen. These together with various graphicalon single screen. These together with various graphical
entities (e.g. menus,panels, buttons) can be managed byentities (e.g. menus,panels, buttons) can be managed by
WMS.WMS.