View
218
Download
1
Tags:
Embed Size (px)
Citation preview
Gender of Computers?
• An English teacher was explaining to his students the concept of gender association in the English language.
• He stated how hurricanes at one time were given feminine names and how ships and planes were usually referred to as "she". One of the students raised his hand and asked - "What gender is a computer"?
• The teacher wasn't certain which it was, so he divided the class into two groups, males in one, females in the other, and asked them to decide if a computer should be masculine or feminine.
• Both groups were asked to give four reasons for their recommendation.
The group of women concluded that computers should be referred to in the masculine gender because:
1. In order to get their attention, you have to turn them on.
2. They have a lot of data but are still clueless.
3. They are supposed to help you solve your problems, but half the time they ARE the problem.
4. As soon as you commit to one, you realize that, if you had waited a little longer, you could have had a better model.
The men, on the other hand, decided that computers should definitely be referred to in the feminine gender because:
1. No one but their creator understands their internal logic.
2. The native language they use to communicate with other computers is incomprehensible to everyone else.
3. Even your smallest mistakes are stored in long-term memory for later retrieval.
4. As soon as you make a commitment to one, you find yourself spending half your paycheck on accessories for it
Course Overview
Broad overview of Computer Science
Text Book: Schneider & Gersting
An invitation to CS
Selected Topics only
Lab exercises alongside
Lab Manual
CS120: Week 1
Introduction to Computer Science
Course Introduction
Course overview
Laboratory Sessions
What is Computer Science?
What is an algorithm?
History of Computing
Course Overview
Course Objective
Course Outline
Assessments and Grading
Assessment schedule
Variety of topics – Overview CS
Usually, lectures on Mondays & Fridays and
Labs on Tuesdays and Thursdays
Lab ExercisesOf the 21 exercises, we will do some 10 only
Should attend the lab sessions
Lab exercises will be checked
Self paced (most could be completed in class)
Have lab tutors to help you learn
Concept (theory) followed by Lab
Bring both the text-book and lab manual to the class
An Introduction to Computer Science
Objectives:• Explain what computer science is and is not.• Know and explain definitions of: algorithm,
computing agent, and primitive.• Trace execution of an algorithm.• Determine if a set of steps is an algorithm;
explain.• Describe and identify sequential, iterative,
conditional operations.
What is Computer Science
• Write down the things a computer has.
• Write down the things you do with a computer.
• Write down your definition of what computer science is
Computer Science is not just:
• the study of computers
• programming
• using computer applications
Not just computers
• circuits
• disks
• monitors
• Keyboards
• Play stations
• PDAs
Not just programming
Using programming languages like
• Pascal
• FORTRAN, COBOL
• COBOL
• C, C++, C#
• Java
Not just using applications
• word processors
• spreadsheets
• databases
• Internet
• Web Browsers
Computer Science is
the study of algorithms, including their
• formal mathematical properties (correct, efficient)
• hardware realizations (to carryout)
• linguistic realizations (translate)
• Applications (uses)
Organization of the Textbook LEVEL CHAPTER
Algorithmic FoundationsAlgorithmic Foundations
HardwareHardware
Virtual MachineVirtual Machine
SoftwareSoftware
ApplicationsApplications
Social IssuesSocial Issues6
5
4
3
2
1
15
12, 13, 14
8, 9, 10, 11
6, 7
4, 5
2, 3
Completing the Loop
• So, for starters in CS, we learn about all the above six, starting from Algorithmic foundation
• We identify problems requiring solutions using computers for the good of the society.
• So there is the ‘Problem to be solved’ that links the ‘society’ and the ‘algorithmic foundation.’
What is an algorithm?
Informally:
An Algorithm is
a step by step method for solving a problem.
(more formal definition later)
We tell the computer how to do something and it does what we tell for us.
So what does this imply?
Computing agent
• We do the algorithms• A thing that carries out the algorithm is called a
computing agent.• An unambiguous operation that can be understood
and carried out by a computing agent is called primitive operation.
• When I tell you ‘Study Chapters 1 and 14 in our text for homework’, is it a primitive?
• How about ‘Build an airplane’?
Computing Agent
The present day Computer Agent
• Can accept input
• Can store information in and retrieve it from memory (unlike us accurately)
• Can take actions according to algorithm instructions (given to it)
• Can produce output
What is an Algorithm?
Formal definition:
An algorithm is a
• well ordered collection of
• unambiguous and
• effectively computable operations
• that produces a result and
• halts in a finite amount of time.
An Algorithm is Well Ordered
• Each step of the algorithm is executed in the order in which it is written, or else the order is clearly stated.
• Consider the following example:
• Design the algorithm that will add two number together and save the sum.
An Algorithm is Unambiguous
• The algorithm must be clearly stated, in terms that the computing agent understands (its primitive operations).
• Correct this algorithm telling a robot how to take a step to the left, if its only primitive operations are Move_Forward_One_Step, and Turn_Right.
Step 1. Turn leftStep 2. Move_Forward_One_Step
An Algorithm is Effectively Computable
• It must be possible for the computing agent to perform the operation and produce a result.
• Example: Find and print the 100th prime number.
• If we have the following algorithm, can this be done properly?
Example of finding 100th prime number and print it
• Step1: Generate a list L of all the prime
numbers: L1, L2, L3,….
• Step2: Sort the list into ascending order
• Step3: Print out the 100th element in the list,
L100
• Step 4: Stop
An Algorithm Must Halt in a Finite Amount of Time
• Even if it would take centuries to finish executing the algorithm, there is some point in time when the result would be produced.
• What is wrong with this algorithm?
Step 1. Set X to –1Step 2. Subtract 1 from XStep 3. If X is not 0, go back to Step 2.
Three different things to be done
• I have three research papers to do in CS120 • On Saturday, if it rained I play some indoor games
otherwise play an outdoor game.• I am taking five courses this semester and in each
course there are several assessments (exams, projects, research papers et.). I have a calendar sheet with dates & time for the whole semester. I want to mark on it the assessment dates (due dates, in some cases)
• Help me draw diagrams to describe these.
More about Algorithms
The order in which the steps of an algorithm are executed is one of the following:
• sequential
• conditional
• iterative
Sequential Order
• Each step is performed in the order in which it is written (top to bottom).
• Example: Algorithm for finding a sale price.
Step 1. Multiply the regular price by the discount percent.Step 2. Subtract the result of Step 1 from the regular price.
Conditional Order
• Determines whether or not a condition is true; and, based on whether or not it is true, selects the next step to do.
• Example-- Algorithm for processing a bank check:
Step 1. Determine if the amount of the check is greater than the checking account balance.Step 2. If Step 1 is true, print “Overdraft”Step 3. Otherwise, subtract the amount of the check from the balance.
Iterative Operation
• Repeat a set of steps over and over -- also called a “looping” operation.
• Example: Algorithm for counting the digits in a positive integer N.
Step 1. Set the Count to 0Step 2. Divide N by 10 (dropping any remainder)Step 3. Add 1 to the CountStep 4. If N is greater than 0, repeat steps 2-4
1.4 Historical Overview of Computer Systems Development
The Nineteenth Century Inventor of Computers
Charles Babbage -- 1830’s• idea for a general purpose steam-driven
computer• programs stored on punched cards• four subsystems: memory, mill (ALU),
operator (control unit), output• programs documented by Ada Augusta,
Countess of Lovelace (first programmer)
The Birth of Computers1940-1950
In the United States, the ENIAC was built at the University of PA by J. Presper Eckert and John Mauchly
• funded by Defense Department for use in World War II
• completed in 1946• contained 18,000 vacuum tubes and
weighed 30 tons
1950 - Present
• First Generation: 1945-1955
• Second Generation: 1955-1965
• Third Generation: 1965-1980
• Fourth Generation: 1980-?
First Generation 1945-1955
ENIAC --- Electronic Numerical Integrator And Computer
It consisted of 18,000 vacuum tubes and 1500 relays.
It weighted 30 tons and consumed 140 kilowatts of power.
Second Generation 1955-1965
• vacuum tubes replaced by transistors --- a big leap in computer making.
• difficulties of programming computers overcome by high level languages– FORTRAN (Formula Translation)
– COBOL (Common Business Oriented Language
Example: PDP-1 by by Digital Equipment Corporation. Price $120,000
Third Generation 1965-1980
• wiring problems solved by integrated circuits
• first small computers built and sold to government– on-board computer for Apollo 11 --
first man on moon– on-board computers for guided missiles
Fourth Generation 1980-?• microprocessors -- allowed mass production
of “throw-away” computers -- “computer on a chip”
• Apple (1978) -- first affordable commercial microcomputer
• IBM-PC (1981) -- took major part of market away from Apple
• Macintosh (1984) -- first graphical interface• Microsoft Windows for IBM-PC (1990)
Fifth Generation ???
• Networked computers (the Internet)
• Versatile input-output (e.g. touch, speech)
• Multi-media (graphics and sound)
• Virtual reality (3-d graphics)
• Artificial intelligence
• Neural networks