Week1-Fundamental of Computer Science-Uploaded 1
Week1-Fundamental of Computer Science-Uploaded 1
(CSC 101)
CSC 101 Objective
• This course is to prepare the students on the Fundamentals of
Computer science and Computing.
• It teaches the basics concepts, Data representation, Computer
Organization & Architecture, Problem Solving with Algorithm,
Computer Networks and the Internet and programming in
Visual Basics.
• The course will feature activities like teaching, demonstration,
laboratory activities, chatting, assignment and group discussion.
• Course evaluation will be based on class attendance, online
activities, quizzes, lab work and examination.
• Go to moodle learning system to see the course outline
lms.ui.edu.ng
How to get maximum benefits from the Lecture
• Attend class regularly
• Read the related chapters in the textbook
• Visit Moodle regularly
• Visit lecturer whenever you have questions
• Use your IT gadget to foster understanding of
the course by checking up new concepts online.
Go to U-tube and download lecture videos on
topics you don’t understand
• Attend Discussion Groups after studying
• Think more!
Lesson Objectives
• To Introduce Computer science through an
understanding of what computer scientists do
• To examine COMPUTER SCIENCE AS A DISCIPLINE
• To present an understanding of the nature of
computational tools and theories.
• To explain the Founding Traditions of Computer Sc
• QUALITIES OF A GOOD COMPUTER SCIENTIST
• To introduce six major criteria that computation tools
must be built to satisfy.
i.E correctness, efficiency, security, fault-tolerance, user-
friendliness and intelligence
Understanding Computer science
• Computer Scientists have been in increasing
demand since the advent of the modern
computer.
• The pervasiveness of the modern computer
has accentuated the need to train more
people in the discipline.
• These people must be able to meet the need
of the society in helping to achieve the
effective use of computers.
What Computer Scientists do
• In order to understand the discipline, it is
important to answer the question: what do
computer scientists do?
• They create and manage tools that support
and enhance the use of the modern
computer(computation tools for short).
• In order to create effective computation tools
it is important to create models of these tools
before they are built.
What Computer Scientists do
• Most of the models created are mathematical
in nature.
• Models need to be built around discrete
mathematical structures(e.g. sets, lists,
orderings etc.)
• Computer scientists use these existing
structures to create mathematical theories
• A theory is a body of knowledge that
facilitates the creation of models.
• Tools are built based on these theories
Definitions of Computer Science
• The systematic study of algorithmic processes
that describe and transform information:
their theory, analysis, design, efficiency,
implementation and application. (automation)
• Computer Science is about building computers
and writing computer programs, how we use
computational tools, and what we find out
when we do
• Computer Science is also about problem
solving. Solving problem computationally
involves the followings:
Steps in Computational Problem Solving
• ABSTRACTION
• AUTOMATION
• IMPLEMENTATION
Application
Programmers
and System
Programmers
Foundational Basis of CSC
As a discipline computer science brings together ideas from
different traditions i.e The Founding Traditions of Computer Sc
• Mathematics: gives the discipline much of its theory.
– Theory has to do with building of conceptual frameworks and notations
for understanding relationships among objects in a domain. A theory
clearly defines a kind of structure. The theory clearly defines its
properties. The properties must be clearly and precisely defined. The
usual vehicle for the precise description of properties is Logic or
algebra.
– The structures that a theory defines allows a computer scientist to
capture the essence of a tool to be developed.
– This essence is the model of the system to be built.
– Using the theory it is possible to reason about the behaviour of the
system to be built through the model.
– This kind of reasoning can help avoid disastrous consequences.
Foundational Basis of CSC
Knowledge from
Experimental Science
Tools Processes
SERVICE
TO
HUMANITY
Information Processing
• Computation is thought of as the process of
transforming(processing) information.
• Information is “acquired facts”.. “about a
specific subject”. (Encarta)
• “I have five cows”. “Maigida has given me two
more”, “I sold one to Mr. Bako today”.
• It takes a little bit of information processing to
know how many cows I have left.
Tools
• A computational tool is a product of a creative
activity.
• It might be a piece of software or hardware.
• There are two categories of tools.
– Those tools support the creation of other tools
• E.g Programming languages
– end-user tool supports a specific task in the
human domain (and not the creation of other
tools).
• Word processing application
What can be automated?
• Automation refers to our ability to make a
computer solve a problem.
• Usually, automation consist of
• Generating software that will solve the problem
on a general purpose computer. OR
• Generating hardware that will do so.
• That software/hardware is a computational
tool.
What can be automated? How?
• Computer Scientists build and study tools based on
one or any combination of the followings set of
performance goals.
• Correctness
• Efficiency
• Security
• User-friendliness
• Fault-tolerance
• Intelligence
Each of the above represent possible objectives that a
tool may be engineered to meet.
Correctness
• A tool is said to be correct if it works according to a
pre-defined specification.
• The pre-defined specification must be clearly and
unambiguously stated – for correctness to be
assessed.
• The specification answers the question of what tool
are we expected to build.
• A correct tool conforms completely with the
specification ……..A little story will drive home the
point:
Efficiency
• The efficiency of a tool is a measure of its ability
to make judicious use of resources.
• The most important resource for tools is time.
• Another important group of resources is
machine resources (especially space).
• A tool is more efficient w. r. t. time if it uses less
time to a solve problem than another.
• A tool is more efficient w. r. t. space if it uses
less space to a solve problem than another.
Security
• A tool is secure if its functions will not be
hampered by malicious attacks or other
compromising situation.
• There are different ways in which a tool can be
compromised.
• One way is if information is intercepted during
transmission.(This happened a lot during
WW2).
Security(2)
• Another possible source of security
compromise is unauthorized use of a tool.
• Data Interception can be prevented by data
encryption.
• Data encryption is the process of transforming
data into an unintelligible form(encrypted data)
prior to transmission.
• The transformation is undone at the point of
reception (decryption).
User-Friendliness
• User-friendliness reflects the ease with which
a tool can be used by a human user.
• Factors ranging from culture, ergonomics to
personal preferences may affect user-
friendliness.
• As such user-friendliness may be context-
dependent.
Fault-tolerance
• Fault-tolerance is the ability of a tool to cope
in the presence of faults.
• A tool is fault-tolerant if every possible fault
does not lead to a failure.
• The level of fault-tolerance is measured by
mean time between failure (MTBF).
• This is a measure of the time between two
failure incidents in the use of a tool.
Intelligence
• Intelligence is the ability of a tool to mimic
human intelligence.
• Tools can mimic intelligence in a number of
ways:
– Reasoning
– Language understanding
– Learning
– Game playing
Example- Game Playing
• In 1997, IBM’s chess playing computer ‘Deep
Blue’ defeated the then world champion Garry
Kasparov under tournament conditions.
• That was a landmark in the history of game
playing machines.
• The success of game playing machines has
been attributed to their ability to ‘see’ many
moves ahead in a game.
QUALITIES OF A GOOD COMPUTER SCIENTIST
Qualities of a good computer scientist include:
• Passion for finding elegant solutions
• Ability to use mathematical analysis and logical rigor to evaluate such
solutions
• Creativity in modeling complex problems through the use of abstractions
• Attention to details and hidden assumptions
• Ability to recognize variants of the same problem in different settings
• Ability to retarget known efficient solutions to problems in new settings
i.e. reusability.
• If you like to solve puzzles, then computer science is for you!
CAREERS IN COMPUTER SCIENCE
• Many students graduate to rewarding computer-related careers in:
– Software engineering,
– System administration and management
– Research and development in industrial and governmental
laboratories etc
•
RELATIONSHIP BETWEEN COMPUTER SCIENCE AND OTHER DISCIPLINES