INTRODUCTION TO COMPUTING
CCS1101
LECTURE 1 INTRODUCTION
1
OBJECTIVES
• Learn about computer systems
• Discuss the layers of a computing system
• List Computer Science fields
• Present the course outline and assessment methodology
2
COMPUTING SYSTEMS
• A computing system is a dynamic entity, used to solve problems and
interact with its environment. A computing system is composed of
hardware, software, and the data that they manage.
• Computer hardware is the collection of physical elements that make up
the machine and its related pieces: boxes, circuit boards, chips, wires,
disk drives, keyboards, monitors, printers, and so on.
• Computer software is the collection of programs that provide the
instructions that a computer carries out.
• At the very heart of a computer system is the information that it
manages. Without data, the hardware and software are essentially
useless.
• Note the difference between a computer and a computing system
3
LAYERS OF A COMPUTING SYSTEM
“THE BIG PICTURE”
Layers of a computing system 4
LAYERS OF A COMPUTING SYSTEM
• A computing system is like an onion, made up of many layers. Each
layer plays a specific role in the overall design of the system.
• The innermost layer, information, reflects the way we represent
information on a computer. Information on a computer is managed using
binary digits, 1 and 0.
• Types of information are: numbers, text, images, audio, and video
represented in a binary format.
5
LAYERS OF A COMPUTING SYSTEM
• The next layer, hardware, consists of the physical hardware of a
computer system. Computer hardware includes devices such as gates
and circuits, which control the flow of electricity in fundamental ways.
• Core electronic circuitry gives rise to specialized hardware components
such as the computer’s Central Processing Unit (CPU) and memory
6
LAYERS OF A COMPUTING SYSTEM
• The programming layer deals with software, the instructions used to accomplish
computations and manage data. Programs can take many forms, be performed
at many levels, and be implemented in many languages.
• In computing, a device driver (commonly referred to as a driver) is a computer
program that operates or controls a particular type of device that is attached to a
computer. A driver provides a software interface to hardware devices, enabling
operating systems and other computer programs to access hardware functions
without needing to know precise details of the hardware being used.
7
• Drivers may interface with printers, network cards, image scanners, computer
storage devices
LAYERS OF A COMPUTING SYSTEM
• These previous (inner) layers focus on making a computer system work.
The application layer, on the other hand, focuses on using the computer
to solve specific real-world problems. We run application programs to
make use of the computer’s abilities in other domains, such as helping
us design a building or play a game.
• Every computer has an Operating System (OS) to help manage the
computer’s resources. Operating systems, such as Windows, Linux, or
the Mac OS, help us interact with the computer system and manage the8
way hardware devices, programs, and data interact.
LAYERS OF A COMPUTING SYSTEM
• Computers no longer exist in isolation on
someone’s desktop. We use computer technology
to communicate, and that communication is a
fundamental layer at which computing systems
operate.
• Computers are connected into networks to share
information and resources.
• The Internet evolved into a global network so that
there is almost no place on Earth that you cannot
communicate with via computing technology.
• The World Wide Web makes that communication
relatively easy. It has revolutionized computer use
and made it accessible to the general public. 9
WHAT COMPUTERS CAN’T DO
• Computers have inherent limitations on their ability to represent information,
and they are only as good as their programming makes them. Furthermore,
it turns out that some problems cannot be solved at all
• Problem 1: Choose a college or university to attend
Would you trust a computer to solve this problem for you?
◦ several factors are involved, many of them hard to quantify.
◦ you don’t expect another person to solve this problem for you, either.
◦ the issue here is not the computer, it’s the nature of the problem.
◦ in order to “compute” the best choice you would need to be
given a precise weight to each factor.
10
WHAT COMPUTERS CAN’T DO
Problem 2: Invite friends over to watch a DVD
It would be nice if our cell phones were more like personal assistants
◦ pick up the phone, say “invite Erica and
Katie over to watch a DVD”
◦ your phone would negotiate with their
phones to pick a time that works
◦ this is the sort of thing humans can do
(“have your people call my people...”)
Unlike the previous problem, this is an example of something humans can
do that machines (so far) cannot
◦ will a future computer be able to solve this problem?
11
WHAT COMPUTERS CAN’T DO
Problem 3: The perfect game of chess
You might think it would be easy for a computer to win a game of chess
The rules of the game are simple, and it’s straightforward to write a program that would
have a computer examine all possible moves
The problem: there are too many moves to consider
◦ there are an estimated 1043 possible games
◦ a supercomputer checking 1012 boards/sec
would need 1021 years to look at them all
So here we have a new type of limitation:
a practical limit
◦ people are no better than machines at
performing this task
◦ grand masters do not consider all
possible moves
12
WHAT COMPUTERS CAN’T DO
Problem 4: Non-computable functions
A famous problem in computer science
is known as “the halting problem”.
The goal: write a program that determines
if another program is stuck
◦ suppose you’re writing a paper and the pointer
changes to the “busy” icon
◦ it is impossible to write a “halt checker” to
see if the word processor has crashed
◦ a new type of limitation: a mathematical barrier
◦ another example where people are no better
than machines at solving the problem
13
RECAP: COMPUTATIONAL LIMITS
• Based on the previous slides, some tasks that computers cannot
perform are also impossible for humans.
• The difficulty is in the nature of the problem, not the person or thing
trying to solve it
• A problem might not be solvable by humans or computers because
• some attributes are not quantifiable (quality of life at a university)
• it is impractical (chess)
• it is impossible (halt checker)
• Problems that humans can solve but computers can’t are often
described in terms of “intelligence”
• natural language processing, planning, design, ...
• an active area of CS research: artificial intelligence (AI) 14
COMPUTER SCIENCE FIELDS
15
16
PROVISIONAL COURSE OUTLINE
Week # Lecture Outline Section Outline
1 Introduction and Course Overview Introduction and Course Overview
2 New Trends in Computer Science Numbering Systems
3 New Trends in Computer Science cont. Numbering Systems
Algorithms and Flowcharts
4 Hardware and Computer Organization
Quiz 1
Computer Software
5 Algorithms and Flowcharts
Putting it all together
6 Algorithm Design and Problem Solving Algorithms and Flowcharts
Algorithms and Flowcharts
7 Flowcharts and Algorithms Part 1
Quiz 2
Flowcharts and Algorithms Part 2 Programming in C
8
Programming Languages (Data types – variables , constants)
Programming in C (Data types – variables , Programming in C
9
constants) (Arithmetic Expressions and Decisions)
Programming in C (Arithmetic Expressions and Programming in C
10
Decisions) (Loops Part 1)
Programming in C (Loops Part 1) Programming in C
11
(Loops Part 2)
Programming in C
Programming in C (Loops Part 2)
12 (Arrays)
Quiz 3
Programming in C (Arrays) Programming in C
13
(Functions)
Programming in C
14 Programming in C (Functions Part 1) (Writing mini project-like programs such as
searching and sorting) 17
Programming in C
15 Programming in C (Functions Part 2)
Submission of a mini C project
16 Final Exam
ASSESSMENT AND TEXTBOOKS
• ASSESSMENT
7th Week Exam Exam (20%) Section Quiz 1 (5%) + Section Quiz 2 (5%)
12th Week Exam Exam (15%) Section Quiz 3 (5%)
Year Work Year Work (10%)
Final Exam Exam (40%)
• TEXT BOOK
• Behrouz, A. Forouzan and De Anza College, “ Foundations of Computer
Science”, 4th Edition, Cengage Learning.
• REFERENCES
• Dale, Nell and John Lewis, “ Computer Science Illuminated”, 7th edition, Jones &
Bartlett Learning.
• Kernighan, B.W. and Ritchie, D.M. “The C Programming Language”, 2nd Edition
Prentice-Hall, Hoboken.
18
COURSE MATERIALS
Below is the google drive link for the course materials:
HTTPS://DRIVE.GOOGLE.COM/DRIVE/FOLDERS/1OPWSMJRH7NCRT4N
G6CCIBHRSM8QC3-C9?USP=SHARING
19
CONTACTS
If you have any further inquiries, Please contact your lecturer, teaching
assistant, or course coordinator: Dr. Yasmine Nagi in Room 405 or by email:
yasmine_nagi@aast.edu
20
SUMMARY AND
DISCUSSION
21