Introduction to Computer Science
Erkki Pesonen
Lecturer
University of Eastern Finland
Chapter 0: Introduction –
What is Computer Science?
• Computer Science in a discipline that seek to build a
scientific foundation for such topics as:
• Computer design
• Computer programming
• Information processing
• Algorithmic solutions of problems
• Algorithmic process itself
• From this research will come
• Today’s computer applications
• Tomorrows computing infrastructure
Chapter 0: Introduction –
What is Computer Science?
• During this course we will investigate a wide range of
topics to appreciate the full scope of the field
• Historical development
• Current state
• Prospects of the future
• Aim is functional understanding to computer science
Computer Science An Overview
13th Edition
Course is based on this
book
Chapter 0: Introduction –
What is Computer Science
• 0.1 The Role of Algorithms
• 0.2 The History of Computing
• 0.3 An Outline of Our Study
• 0.4 The Overarching Themes of Computer Science
– Algorithms – Programming
– Abstraction – Internet
– Creativity – Impact
– Data
0.1 The Role of Algorithms
• Some definitions regarding algorithms
• Algorithm: A set of abstract or concrete steps that defines
how a task is performed. Can be presented also informally
• Recipes
• How to find a place in a city
• How to operate washing machine
• How to play music from notes
• Program: A representation of an algorithm for a computer
• In binary from for a computer
• In a readable form (programming language) for humans
• Programming languages: C, C++, Java, Python, etc.
0.1 The Role of Algorithms
• Some definitions regarding algorithms (continued)
• Programming: The process of developing a program for a
computer
• Writing the code
• Encoding it to machine-compatible form
• Inserting into a machine
• Software: Programs and the algorithms they
represent
• A working combination of algorithms and programs for a
certain purpose
• Facebook, Twitter, TikTok, etc.
• Developed in software development process
• Hardware: The machinery what in used running the software
• Personal Computer, Iphone, Android phone, Tablet
• Machinery connected to these devices and computer networks
Figure 0.1
An algorithm for a magic trick
Figure 0.2
The Euclidean algorithm for finding the greatest common
divisor of two positive integers. Developed by a Greek
mathematician Euclid (lived 323–283 BC)
Example: How to use Euclidean algorithm
• Two numbers m = 80, n = 30
• Then m divided by n is 80 / 30 = 2 and the remainder is 20
• => m = 30, n = 20
• The m divided by n if 30 / 20 = 1 and the remainder is 10
• => m = 20, n = 10
• Then m divided by n is 20 / 10 = 2 and the remainder is 0.
• => the Greatest common divisor (GDC) is then 10.
What can computers do?
• Two example algorithms can solve just those two problems
• The intelligence of the machines is based on the intelligence of
algorithms – what problems they can solve and what they can’t
History of Algorithms
• The study of algorithms was originally a subject in
mathematics.
• Early examples of algorithms
– Long division algorithm (how to divide long numbers
with pen and paper)
– Euclidean Algorithm (GDC)
• Gödel’s (1930s) Incompleteness Theorem: Some
problems cannot be solved by algorithms.
• This was the beginning of computer science research:
• Generally what problems can be solved with algorithms?
• What can’t?
• Who fast are algorithms?
• How much do they need time and/or space?
0.2 The History of Computing: Early
computing devices
– Abacus: positions of beads represent numbers
(from 2700 BC), China, Greeks, Romans
– Quick and simple, relies of human operator
Chinese Wooden Abacus
Early computing devices
– Gear-based machines (1600s-1800s)
• Positions of gears represent numbers
• Data represented by mechanical positions
• Blaise Pascal
• Addition
• Wilhelm Leibniz
• Several operators
• Charles Babbage
• only idea, was never built
• Programmable
Early Data Storage
• Punched cards
– First used in Jacquard Loom (1801) to store patterns
for weaving cloth
– Data pattern input for weaving looms
– Hollerith: U.S. census 1890 data tabulation
– Storage of programs in Babbage’s Analytical Engine
– Popular through the 1970’s
A 12-row/80-column IBM punched card
from the mid-twentieth century
Early Computers
• Based on mechanical relays
– 1940: Stibitz at Bell Laboratories
– 1944: Mark I: Howard Aiken and IBM at Harvard
Early Computers
• Based on vacuum tubes
– 1937-1941: Atanasoff-Berry at Iowa State
– 1940s: Colossus: secret German code-breaker
1940s: ENIAC: Mauchly & Eckert at U. of Penn.
First electronic large-scale general purpose digital computer
Three women operating the ENIAC’s main control panel
Development of technology
– Transistors, Shockley, Bardeen, Brattain 1947
– Vacuum tubes were replaced by semiconductors (First all-
transistor car radio 1955)
– Integrated circuits, Kilby 1958
– Set of electronic circuits on one small flat piece
– Used in Nasa’s Apollo space program 1961-1965
Personal Computers
– Hobbyists built homemade computers
– Apple Computer established in 1976.
– IBM introduced the PC in 1981.
• 16 KB RAM, CGA graphics adapter, no disk drive, Windows 1
operating system
• Accepted by business
• Became the standard hardware design for
for most desktop computers
• Most PCs use software from Microsoft
End of the 20th Century
• Internet revolutionized communications
– ARPANET 1960’s (United Stated Department of
Defence)
– For military purposes
– NSFNet 1986 (National Science Foundation)
– Academic and research organizations
– Internet 1989
– Commercial Internet Service providers
End of the 20th Century
– World Wide Web, Tim Berners-Lee 1990
– HyperText Markup Language (HTML)
– HyperText Transfer Protocol (HTTP)
– First HTTP server in Cern, Switzerland
End of the 20th Century
• Search Engines (examples)
• W3Catalog 1993
• Lycos 1994
• Yahoo!, AltaVista 1995
• Ask Jeeves 1996
• Yandex 1997 (Russian)
• Google 1998
• Baidu 2000 (Chinese)
• DuckDuckGo 2008
• Bing 2009 (Microsoft)
End of the 20th Century
• Miniaturization of computing machines
– Embedded systems
– Controls physical operations of the machine
– Digital watches, MP3 players, robots, avionics in aircrafts
– Automobiles: GPS, engine control, artificial intelligence
guidance for drivers
– Smartphones
– Todays’ general-purpose computer
– Has more computing power than old PC:s
– Always available 24/7
– What else do we need?
On the 21st Century
– What is the next step in Computing History?
– More Artificial Intelligence everywhere?
– 3D Artificial Reality and communication?
– Something else?
An Outline of Our Study
• Chapter 1: Data Storage
• How information is encoded and stored in modern computers
• Chapter 2: Data Manipulation
• How a simple computer is operating internally
• Chapter 3: Operating Systems
• How the overall operation of a computer is controlled by the
software
• Chapter 4: Networks and the Internet
• How the computers are connected to each other
• Chapter 5: Algorithms
• What are fundamental algorithmic structures and how their
efficiency and correctness is evaluated
An Outline of Our Study
• Chapter 7: Software Engineering
• What problems are encountered when developing large software
systems
• Chapter 8: Data Abstractions
• How data has been organized in computer’s main memory and
how the data abstraction has evolved
• Chapter 9: Database Systems
• How data has been traditionally organized in computer’s mass
storage and how large and complex database systems are
implemented
• Chapter 11: Artificial Intelligence
• How to design algorithms that mimic human intelligence
The Overarching Themes of
Computer Science
• Computing technology is fundamental to being a part of
the modern world
• Seven “Big Ideas” that unite computer science:
– Algorithms
– Abstraction
– Creativity
– Data
– Programing
– Internet
– Impact
Algorithms
• Computer Science is the science of algorithms
• Draws from other subjects, including
– Mathematics
– Engineering
– Psychology
– Business Administration
– Linguistics
Figure 0.5
The central role of algorithms in computer science
Given the Central Role of Algorithms
• Which problems can be solved by algorithmic
processes?
• How can characteristics of different algorithms be
analyzed and compared?
• How can algorithms be applied to produce intelligent
behavior?
• How does the application of algorithms affect society?
Abstraction
• Abstraction: The distinction between the external
properties of an entity and the details of the entity’s
internal composition
• Computer Science E.g.: How to build models that can be re-
used without rewriting all the program code for each type on
computer.
• Abstract tool: A “component” that can be used without
concern for the component’s internal properties
• Computer Science E.g.: In object-oriented programming
internal parts of the code need no concern.
Creativity
• Computer science is inherently creative
• Discovering and applying algorithms is a human activity
• Extends existing forms of expression
• Enables new modes of digital expression
• Creating large software systems is like conceiving a grand
new sculpture
Data
• Computers can represent any information that can be
discretized and digitized
• Algorithms process and transform data
• Search for patterns
• Create simulations
• Generate knowledge and insight
• Data is driving modern discovery
Questions about Data
• How do computers store data about common digital
artifacts?
• Numbers, text, images, sounds, and video
• How do computers approximate data about analog artifacts
in the real world?
• How do computers detect and prevent errors in data?
• What are the ramifications or an ever-growing and
interconnected universe of digital data?
Programming
• Programming is broadly referred to as:
– Translating human intentions into executable
algorithms
• Computer hardware is capable of only simple
algorithmic steps
• Abstractions in a programming language allow
humans to reason and encode solutions to complex
problems
Questions about Programming
• How are programs built?
• What kind of errors can occur in programs?
• How are errors in programs found and repaired?
• What are the effects of errors in modern programs?
• How are programs documented and evaluated?
Internet
• Profound impact in the way information is:
– Stored
– Retrieved
– Shared
• Privacy
• GDPR
• Security
Impact
• Social, ethical, legal impacts including:
• Security concerns
• Issues of software ownership and liabilities
• Social impact of database technology
• Consequences of artificial intelligence
Impact explored through “Social Issues”
questions
• Social Issues questions are meant to increase
awareness of:
– Various stakeholders
– Alternatives
– Short term and long-term consequences
• Character-based ethics
– “Who do I want to be?”
– Become more aware, insightful, and sensitive to the
issues involved