KEMBAR78
Chapter 1 | PDF | Numbers | Embedded System
0% found this document useful (0 votes)
6 views15 pages

Chapter 1

The document outlines the history and evolution of computing, from early telephone switches to modern microcomputers, highlighting significant milestones such as the development of chips and the impact of Moore's Law. It discusses the transformative effects of the information age on society and the role of computational problem-solving and creativity in technology. Additionally, it covers collaboration in software development, the system development life cycle, and the importance of teamwork in creating effective information systems.

Uploaded by

Ng Shi Qing
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views15 pages

Chapter 1

The document outlines the history and evolution of computing, from early telephone switches to modern microcomputers, highlighting significant milestones such as the development of chips and the impact of Moore's Law. It discusses the transformative effects of the information age on society and the role of computational problem-solving and creativity in technology. Additionally, it covers collaboration in software development, the system development life cycle, and the importance of teamwork in creating effective information systems.

Uploaded by

Ng Shi Qing
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 15

1.

1 Brief history
Computing history

Computers originated from telephone switches in the early 1900's.


Engineers realized switches could be used for performing calculations,
with a switch's on position meaning 1 and the off position 0.
1920s Engineers configured telephone switches to do simple
calculations like adding two numbers.
1940s  The first computers were built, had thousands of switches,
and occupied entire rooms.
 military purposes
o codebreaking in World War II
o calculating the paths of bombs
1940s Engineers could put multiple switches on a single chip. U.S.
moon rocket program brought dramatically improved chips
and decreased prices.
1970s an entire computer could fit on one coin-sized device known
as a computer chip
Today Earlier (1940s) room-sized computers could fit on a pinhead-
sized chip (and even smaller).

Figure 1.1.1: 1940's computers, with thousands of baseball-sized switches, occupied entire rooms. Shrinking switches led to
single-chip computers. Today, that room-sized computer fits on a chip the size of a pinhead.

Moore's Law - The trend of switch sizes halving about every two years.

The information age


Computers are a recent phenomenon and yet are rapidly transforming
human civilization.
agricultural age Civilization's earlier agricultural
age lasted many thousands of years.
industrial age (late 1700's) transformed civilization towards
manufacturing goods, leading to mass
migration to cities, the creation of
strong nations, world wars, doubling of
lifespans and
thus dramatic world population growth
(see figure below), and more
information age (began in human activity shifting from traditional
the 1990's) industry to creating/managing/using
computerized information.
In just those few years, how people
work, learn, communicate, or entertain
themselves has already changed
dramatically.
the ultimate impact on civilization likely
remains to be seen.

Figure 1.1.2: The industrial age's societal transformations include a population explosion. The information age has just
begun transforming society again; its ultimate impact remains to be seen.

1.2 Computers all around us


Computer sales over time
1940s and 1950s Computers were:
large (weighing over a ton, and
occupying entire rooms)
expensive (just a few existed
worldwide, costing millions of
dollars)
machines used for government and
business purposes.
Computer chips were invented in
the 1950's, and regularly improve
to have more switches and lower
costs.
1960s and 1970s More businesses began purchasing
computers
1980s people began purchasing desktop
and laptop computers for home
use
2000s computers began appearing in the
form of electronic tablets, book
readers, and smartphones.

Figure 1.2.1: Global shipments of tablets, laptops, desktops, and smartphones.


Figure 1.2.2: Examples of commonly-used computers: Desktops, laptops, tablets, and smartphones.

Embedded computers

An embedded computer is a computer inside another electrical device,


like inside a TV, car, printer, thermostat, satellite, etc. Thus, beyond
business and personal computing devices like PCs, tablets, and
smartphones, computers exist invisibly in nearly anything electrical today
too.

Figure 1.2.3: Global shipment of microcontrollers (special chips intended for embedded computers).
Figure 1.2.4: Embedded systems: Smart pills, automobiles, and more.

1.3 Computational problem solving


Computational problem solving

Computers are often used to solve problems, especially complex problems


with many components. A computer can accept input data, process that
data, and then output and/or store the results. Ex: A user can enter the
number 25 into a computer, and the computer can output whether or not
the number is a prime number.
The following animation illustrates the role of a computer in problem
solving.

Computational thinking

Computational problem solving incorporates four major concepts:


 Decomposition is the breaking down of a complex problem into a
series of smaller or simpler problems.
 Pattern recognition is the identification of common characteristics
among different problems and within the same problem.
Recognizing these patterns can further simplify the problem.
 Algorithms are sequences of instructions used to solve problems or
perform tasks in a structured manner.
 Abstraction is the generalization of a problem so that a solution
can be applied to different specific problems.

Together, these concepts comprise computational thinking, or the


process by which a problem is formulated and solved using a computer.
Example 1.3.1: Using computational thinking to determine whether a
number is prime.
The concepts of computational thinking can be used to solve the problem
of determining whether a number is prime.

 Decomposition:"Is the number divisible by 2?", "Is the number


divisible by 3?", "Is the number divisible by 4?", etc.
 Pattern recognition: If the answer to any of the questions in the
previous step is yes, then the number is not prime, and no further
calculation is needed. In addition, numbers larger than half of the
input number cannot be factors and do not need to be tested.
 Algorithms: One algorithm for determining whether a number is
prime is (1) Ask for a number as input. (2) Assign number to the
symbol n. (3) For every integer greater than 1 and less than n/2, is n
divisible by that number? (4) If the answer to any of the questions is
yes, then output "The number is not prime" and stop. (5) Otherwise,
if n is not divisible by any of the numbers, then output "The number
is prime" and stop.
 Abstraction: The algorithm in the previous step can be used to
determine if any positive number larger than 1 is prime.

1.4 The creative process


Introduction

Creativity is the use of varying imagination or ideas during the process of


carrying out a task. Ex: A person may modify a food image to be darker or
brighter. Creativity may yield different artifacts; an artifact is an item
that results from a task, like a dark or bright image.
Figure 1.4.1: Creativity in adjusting a food image.

Creativity in the process for same artifact

Even when a task always ends with the same artifact, creativity may still exist because the
process of doing the task may have much possible variations. Ex: When using a computer to
draw a crowd of 16 people (4x4), after drawing one person, process X may paste that person
one at a time until 16 exist, while process Y may paste to create a row of 4, then copy that
row and paste that row until 4 rows exist.

1.5 Computational artifacts


Computational artifacts

A computational artifact is a digital or physical object created using a


computer. Many processing tools, physical objects, and digital media
(audio, images, video, video games) are created using computers. Such
computational artifacts are created to meet practical needs (work, making
a tool) and express creativity (image editing).
Compared to physical objects and tools, computational artifacts can be
rapidly created, copied, modified, and shared with others. Ex: A person
takes a digital photograph using a smartphone. That photograph can then
be copied and edited by changing colors, cropping, and so on directly on
the phone. The edited photograph can then be shared as a file over email
or social media. The same processes using film photography, non-digital
photo editing, and postal mail would take more time and resources.
The following table lists examples of different types of computational
artifacts.

Table 1.5.1: Computational artifacts.

Figure 1.5.1: Digital photography, search engines, computer-animated movies, and video games are computational
artifacts.

1.6 Collaboration
Benefits of collaboration

Many computational artifacts stem from large projects that involve teams
of individuals. Collaboration, the process of multiple individuals working
together toward a common goal, is essential for the success of these
projects. Collaboration is used for school group projects and industrial
research projects. The advantages of collaboration include:
 contributions from multiple individuals, which may result in a
shorter completion time;
 work that combines the unique talents and perspectives of each
individual, which can result in a high quality product;
 work that reflects the social and cultural diversity of the
collaborators;
 a final product that reflects the effort and personal expressions of
many individuals.

Commercial computer software, such as the image editing software Adobe


Photoshop, is often created collaboratively by a large group of people.
Adobe Photoshop's opening splash screen shows the list of people
responsible for creating the software.

Figure 1.6.1: Computer software is often the result of collaboration.

Tools for collaboration

Effective communication allows collaborators to reach consensus, resolve


conflicts, and negotiate with each other and with clients, customers, and
other stakeholders. Social networks and instant messaging applications
such as Google Groups, Slack, and Skype allow collaborators to
communicate in real time from anywhere in the world using the Internet.
For software-based projects, version control systems such
as GitHub, Mercurial, and SVK allow collaborators to review, revise, and
synchronize specifications, code, and other documents by tracking
changes. These tools allow collaborators to communicate more quickly
and effectively than in the past, before wide use of the Internet. As a
result, many software development teams have team members spread
out globally.
Figure 1.6.2: GitHub allows collaborators to track each other's changes to software code.

The speed of communication has also led to the rise of open source
software. Open source software is software developed using code that
is open for collaborators to modify and enhance, rather than code that is
owned by a particular individual or organization. In an open source model,
programmers can form collaborative communities that maintain and
improve software, while still allowing others to contribute to the code.
Notable examples of open source software include the Linux operating
system, the Firefox web browser, and the VLC media player.

Collaboration in data science

Computers have enabled large amounts of data to be collected,


processed, and analyzed rapidly. The ability to collect and process large
data sets has created the field of data science, or the process of
extracting knowledge and insights from data. Data science has
revolutionized the way that scientists, engineers, statisticians, and others
formulate and test hypotheses and make new discoveries.
Despite the power of computers in data science, such efforts also require
collaboration between individuals, companies, and government agencies,
as the following example illustrates.
Example 1.6.1: The Million Veteran Program.
The Million Veteran Program (MVP) is a collaboration between the United
States Department of Veterans Affairs, hospitals, and research universities
that aims to create a database of medical, genetic, and other health
information from American military veterans. The database will be used to
study diseases such as diabetes, cancer, and substance abuse, as well as
military-related health problems such as head injuries, tinnitus (ringing of
the ears), and post-traumatic stress disorder (PTSD).
The data collected from MVP is stored securely to ensure the privacy of all
participants. In addition, the MVP program is voluntary, and data and
samples are collected only with the participants' consent. As of May 2017,
of the 21 million veterans eligible for Veterans Administration (VA) health
care, 570,946 have enrolled in MVP. The map below shows the VA
hospitals and clinics across the United States actively recruiting MVP
participants.

In one study using the MVP database, researchers from numerous wide-
ranging institutions including the Boston VA Healthcare System, the
Boston University School of Public Health, the Stanford University School
of Medicine, the University of Cambridge (UK), and the biotech company
Regeneron collaborated to find genetic markers correlated with levels of
blood lipids, or fats. Increased blood lipids are associated with diabetes,
cardiovascular disease, stroke, and other diseases. The study used data
from 312,571 MVP participants and identified 3 genes correlated with
cardiovascular disease. These 3 genes are potential targets for future
drug therapies.

1.7 Information system development


System development life cycle

In information systems, systems are built using a series of phases known


as the system development life cycle or SDLC. SDLC can also refer to
the software development life cycle, or the process by which
programs and other software is developed. The SDLC phases include
analysis, design, implementation, and testing.

 The analysis phase determines the goals and requirements for a


system.
 The design phase determines the specifics of how to build a
system.
 The implementation phase (also known as development) builds
the system according to the design.
 The testing phase checks that the system functions properly and
meets or exceeds the requirements.

Some developers build an information system via a waterfall method,


where each phase is done in sequence, entirely completing one phase
before moving to the next phase. A modern approach to building
information systems uses a spiral method, where each phase is done in
sequence, then that sequence is repeated one or more times, with each
phase done more thoroughly each time.

Once a system is built, the system is deployed to clients or users. To


maintain a system, a developer can update the deployed system . For
example, after a mobile app is created and available for download, a
developer may find bugs and update the app to fix those bugs or add new
features, and make those updates available to users.

Waterfall method

An IS developer has the following problem: Develop a computer system


for a small charter school with 80 students that allows students to register
for classes, send emails, and turn in classwork. Using the waterfall
development method, the developer would follow the analysis, design,
implementation, and testing phases, in that order.

Figure 1.7.1: Waterfall diagram for computer system.


Figure 1.7.1: Waterfall diagram for computer system.

After testing, the computer system is deployed to the students and


maintained by a school administrator.

Spiral method

An IS developer using the spiral method may use multiple iterations of the
design cycle phases to build the same computer system.

Figure 1.7.2: Spiral design method with two iterations.


An IS developer using the spiral method to develop the computer system
for a small charter school may use two iterations to incrementally analyze,
design, build, and test the system.

 Iteration 1 - Preliminary Iteration


o Analysis:
 Need computers for all 80 students
 Need a central database for student information and
assignments
o Design: 10 desktop computers per classroom, connected
using a LAN connection with a single router.
o Implementation: Build the system for a single classroom with
10 desktop computers.
o Testing: Connect desktops to the network and ensure each
computer can communicate with central database.
 Iteration 2 - Final Iteration
o Analysis: Determine the strengths and weaknesses of the
system built in the previous iteration.
 Desktops and LAN connections were not mobile, which
limited students ability to use the computer system.
 Define new requirement that computers must have
access to school network from anywhere on campus.
o Design: Refine the system design by replace desktops with
laptops and using a wireless network.
o Implementation: Build the revised system consisting of 80
laptops for all students.
o Testing: Connect laptops to the network and ensure all laptops
can communicate with the central database. Move laptops
around campus to ensure connection quality.

The system development could consist of numerous iterations of the SDLC


phases. Additional testing and analysis can involve student input about
what is liked and disliked about the system, ease of submitting
assignments, etc.

Collaboration in system development

Building an information system often requires collaboration between


developers and many other individuals across the SDLC phases.

 Product managers guide the development of new systems during


the design and analysis phases by learning what types of product
users or clients need and whether developers can meet these
needs.
 User experience (UX) engineers work with users and developers
during the design phase to design systems that are intuitive and
easy to use.
 Quality assurance (QA) engineers test and analyze systems
during the implementation and testing phases to minimize the
number of bugs before deployment.
 Technical support specialists work with users to solve problems
related to system operation. Error reports from users often inform
future bug fixes, improvements, and design changes during the
testing and analysis phases.
 Project managers coordinate system development during all
phases of the SDLC by setting goals and timelines for developers
based on what users or clients need.

You might also like