Introduction to computer science computers and programming
Download
1 / 50

Introduction to Computer Science, Computers, and Programming - PowerPoint PPT Presentation


  • 289 Views
  • Updated On :

Introduction to Computer Science, Computers, and Programming. Barbara Ericson Georgia Tech Aug 2009. Learning Goals. What is Computer Science? What do Computer Scientist do? Why study Computer Science? What is a computer? What can computers do?. What is Computer Science?.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Introduction to Computer Science, Computers, and Programming' - milt


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Introduction to computer science computers and programming l.jpg

Introduction to Computer Science, Computers, and Programming

Barbara Ericson

Georgia Tech

Aug 2009

Intro CS, Computers, Programming


Learning goals l.jpg
Learning Goals

  • What is Computer Science?

  • What do Computer Scientist do?

  • Why study Computer Science?

  • What is a computer?

  • What can computers do?

Intro CS, Computers, Programming


What is computer science l.jpg
What is Computer Science?

  • Write down a sentence or two about what you think it is and then share that with your neighbor.

    • What is different about your definitions?

    • What is the same about your definitions?

  • Look up some definitions of computer science

    • How do these definitions agree and disagree with what you thought?

Intro CS, Computers, Programming


What do computer scientists do l.jpg
What do Computer Scientists do?

  • Study theory

    • Mostly work in universities and research labs

  • Work on the next generation of the Internet

    • Networking

    • Cisco

  • Work on how to effectively store and process tons of data

    • Databases

    • NCR, NASA, Google

  • Work on better ways for humans and computers to communicate

    • Human – Computer Interaction

    • Cell phone companies

Intro CS, Computers, Programming


What do computer scientists do5 l.jpg
What do Computer Scientists do?

  • Work on special effects in movies, TV, and games

    • Graphics, animation

    • Pixar, Electronic Arts

    • See the digital video special effects class movies at Georgia Tech http://www.cc.gatech.edu/classes/AY2006/cs4480_spring/

  • Work on keeping digital data secure

    • FBI, CIA, Internet Security Systems

  • Work on how to use computers to improve education

    • Educational technology

  • Work on making computers smarter

    • Artificial intelligence, robotics

Intro CS, Computers, Programming


What is a computer l.jpg
What is a Computer?

  • A device that performs high-speed mathematical and/or logical operations or that assembles, stores, correlates, or otherwise processes information.

  • The first computers were people

    • who did computations

    • Like the Harvard Computers shown on the right

      • astronomical calculations

Intro CS, Computers, Programming


Parts of a computer l.jpg
Parts of a Computer

  • User Interface

    • monitor (screen), mouse, keyboard, printer

  • Brain - Central Processing Unit

    • can do math and logic operations

  • Memory - Storage

    • cache – fastest

    • main - RAM

    • secondary – Disks, CD-ROMs, DVDs

Intro CS, Computers, Programming


Cpu brain of the computer l.jpg
CPU – Brain of the Computer

  • Arithmetic/Logic Unit (ALU)

    • Does math and logic calculations on numbers in registers

  • Control Unit

    • Reads instructions from memory and decodes and executes them using the ALU

345

Add register A

to register B

263

Store the value

in register C into

memory location

320843202

608

Intro CS, Computers, Programming


Fetch decode execute cycle l.jpg
Fetch, Decode, Execute Cycle

  • The control unit reads (fetches) an instruction from memory

  • The control unit decodes the instruction and sets up the hardware to do the instruction

    • like add the values in the A and B registers and put the result in the C register

  • The instruction is executed

  • The program counter is incremented to read the next instruction

Intro CS, Computers, Programming


Processor speed l.jpg
Processor Speed

  • Processors (CPUs) have a clock

  • Clock speed is measured gigahertz (GHz)

  • Some instructions take just 2-3 clock cycles, some take more

  • When the clock speed increases the computer can execute instructions faster

Intro CS, Computers, Programming


Memory l.jpg
Memory

  • Computer memory is used to store data

  • The smallest unit of memory is a bit (Binary digIT)

  • A bit can be off (no voltage) or on (has voltage) which we interpret to be 0 or 1

  • Memory is organized into 8 bit contiguous groups called bytes. A megabyte is 1,048,576 bytes (over 1 million bytes). A gigabyte is over 1 billion bytes.

Intro CS, Computers, Programming


How does memory represent values l.jpg
How does Memory Represent Values?

  • The different patterns of the on and off bits in a byte determine the value stored

  • Numbers are stored using binary numbers

    • 101 is 1 * 20 + 0 * 21 + 1 * 22 = 5

  • Characters are internally represented as numbers

    • Different numbers represent different characters

    • There are several systems for assigning numbers to characters:

      • ASCII, EBCDIC, and Unicode

Intro CS, Computers, Programming


Encodings make computer powerful l.jpg
Encodings Make Computer Powerful

  • Voltages are interpreted as numbers

  • Numbers can be interpreted as characters

  • Characters can be interpreted to be part of a link to Sun’s Java Site

<a href=http://java.sun.com>Sun’s Java Site </a>

a

0100 0001

off on off off off off off on

Intro CS, Computers, Programming


Notepad exercise l.jpg
Notepad Exercise

  • Open notepad and type a sentence in it

  • Save the file

  • Check the size in bytes by leaving the cursor over the file name

    • Or right click and check properties

  • Now count the number of letters and spaces

Intro CS, Computers, Programming


Binary numbers l.jpg
Binary Numbers

  • We usually work with decimal numbers with digits from 0 to 9 and powers of 10

    7313 = (7 * 1000 + 3 * 100 + 1 * 10 + 3 * 1)

    Or (7 * 103 + 3 * 102 + 1 * 101 + 3 * 100)

  • The binary number system uses digits 0 and 1 and powers of 2

    0101 = (0 * 23 + 1 * 22 + 0 * 21 + 1 *20)

    (0 * 8 + 1 * 4 + 0 * 2 + 1 * 1) = 5

Intro CS, Computers, Programming


Binary addition l.jpg

To add two decimal numbers you add the digits and if the total is greater than ten you carry the one into the next column

To add two binary numbers

0 + 0 = 0

0 + 1 and 1 + 0 = 1

1 + 1 = 0 with a carry of 1 into the next column to the left

00 10 111

01 01 001

---- --- ------

01 11 1000

00111001010

01010101101

-------------------

10001110111

Binary Addition

Intro CS, Computers, Programming


2 s compliment notation l.jpg
2’s Compliment Notation total is greater than ten you carry the one into the next column

  • Computers actually only know how to add

    • So, how do they handle subtraction?

  • Computers subtract by adding a negative number

  • How do you represent a negative number in memory?

    • Positive numbers in 2’s compliment are just the same as a binary number

    • For negative numbers reverse 0s and 1s and then add 1

Intro CS, Computers, Programming


2 s compliment example l.jpg
2’s Compliment Example total is greater than ten you carry the one into the next column

  • To subtract 3 from 7

  • First represent both as a binary number

    • 7 is 0000 0111

    • 3 is 0000 0011

  • Reverse the 0s and 1s and then add 1 to get -3

    • 0000 0011 reversed is 1111 1100

    • add 1 0000 0001

    • The result is 1111 1101

Intro CS, Computers, Programming


Add the negative number l.jpg
Add the Negative Number total is greater than ten you carry the one into the next column

  • To subtract 3 from 7

  • Add -3 to 7

    • 7 is 0000 0111

    • -3 is 1111 1101

    • The result is 1 0000 0100

  • Through away the leftmost 1

  • The answer is 0000 0100 which is 4

Intro CS, Computers, Programming


Patterns exercise l.jpg
Patterns Exercise total is greater than ten you carry the one into the next column

  • How many different patterns of on and off bits are there in 3 bits? How many in 4 bits? How many in 8 bits?

  • 000 is one pattern

  • 001 is another pattern

  • 010 is another pattern

Intro CS, Computers, Programming


Does the number of patterns matter l.jpg
Does the number of patterns matter? total is greater than ten you carry the one into the next column

  • Some garage door openers in the 70s used 8 bits to set the code to use to open the door

    • Giving 256 different patterns

    • Which is enough that you won’t open your neighbors door

    • But small enough that someone could try each one

Intro CS, Computers, Programming


Remote entry systems l.jpg
Remote Entry Systems total is greater than ten you carry the one into the next column

  • With 8 bits for a code you have a 1/256 chance of a random code working

    • You don’t want someone opening your car in a place with lots of cars (like a mall)

  • There are also radio scanners that can capture your code

    • So you want the code to change each time

  • Modern remote entry systems use a 40 bit rolling code

Intro CS, Computers, Programming


Types of memory l.jpg
Types of Memory total is greater than ten you carry the one into the next column

  • Registers

    • Very high speed temporary storage areas for use in the CPU

  • Cache

    • High speed temporary storage for use with the CPU

  • Main Memory – Random-access Memory (RAM)

    • High speed temporary storage

    • Contains programs and data currently being used

    • Often described in Megabytes (MB)

  • Secondary Memory - Disks

    • Contains programs and data not currently being used

    • Often described in Gigabytes (GB)

Intro CS, Computers, Programming


Why are there so many types of memory l.jpg
Why are there so many types of memory? total is greater than ten you carry the one into the next column

  • The faster memory is the more it costs

    • So we reduce the cost by using small amounts of expensive memory (registers, cache, and RAM) and large amounts of cheaper memory (disks)

  • Why do we need cache?

    • Processors are very fast and need quick access to lots of data

    • Cache provides quick access to data from RAM

Intro CS, Computers, Programming


What can computers do l.jpg
What can Computers Do? total is greater than ten you carry the one into the next column

  • Add, subtract, multiply, and divide numbers in registers

  • Logic operations on numbers in registers

    • Less than, greater than, equal to

    • When true jump to a new instruction

  • Move data between types of memory and to other input and output devices

Intro CS, Computers, Programming


Vocabulary exercise l.jpg
Vocabulary Exercise total is greater than ten you carry the one into the next column

  • Look at two computer advertisements

  • See if you can figure out what all the words mean

  • Use the internet to look up unfamiliar words

    • http://computer.howstuffworks.com/

    • http://en.wikipedia.org/

    • http://webopedia.com

  • Which one is a better for computer games?

  • Which one is better for your homework?

Intro CS, Computers, Programming


What is an algorithm l.jpg
What is an algorithm? total is greater than ten you carry the one into the next column

  • A description of how to solve a problem.

    • It can be in English.

  • The number of squares in a cube of n * n sides is n * n + (n-1) * (n – 1) + (n – 2) + (n – 2) … + 1.

  • Can you write an algorithm for how you get to school?

Intro CS, Computers, Programming


What is a computer program l.jpg
What is a Computer Program? total is greater than ten you carry the one into the next column

  • Instructions to a computer that allow it to process some data

  • You can think of it like a recipe

    • It contains instructions

    • Processes ingredients to produce a result

    • You can use the same recipe over and over

Intro CS, Computers, Programming


Computer languages l.jpg
Computer Languages total is greater than ten you carry the one into the next column

  • Each processor has its own language

    • Machine language

    • 0001 may be the instruction for adding two registers

  • Assembly language is a low-level language

    • Has the same instructions as machine language but allows people to use names for the instructions instead of numeric codes (like ADD)

    • An assembler translates the names into the numeric machine language

    • Executes very fast

    • Slow for programming

Intro CS, Computers, Programming


Programming is about naming l.jpg
Programming is About Naming total is greater than ten you carry the one into the next column

  • Computers can associate names with anything

    • A byte

    • A group of bytes

    • A group of letters

    • A file

    • A picture

    • A program, recipe, or function (method)

    • A type (class)

Intro CS, Computers, Programming


File names l.jpg
File Names total is greater than ten you carry the one into the next column

  • Operating systems associate file names with locations on your hard disk

    • A hard disk stores values even after the power is turned off

  • When you double click on a file

    • The operating system reads the data starting at that location into RAM

Intro CS, Computers, Programming


Names for values l.jpg
Names for Values total is greater than ten you carry the one into the next column

  • When work with data in main memory we will usually assign a name to it.

    • Rather than remember the address in memory

      • The computer associates the name with the address for us

  • Programs are like algebra

    • Where you use names to make the equations make sense

      • PV=nRT or e=Mc2

Intro CS, Computers, Programming


Programs are for people l.jpg
Programs are for People total is greater than ten you carry the one into the next column

  • The computer doesn’t care what names we use

  • The names are important so that our programs are understandable

    • To us

    • To others

  • Names should be appropriate

    • Not too long or confusing

Intro CS, Computers, Programming


High level languages l.jpg
High Level Languages total is greater than ten you carry the one into the next column

  • Are translated (compiled) into machine language or assembly language

  • Contains more instructions than in the original machine language

    • Which translate into several machine language instructions

  • May have slower execution speed than an assembly language program

  • Easier and faster for writing programs

Intro CS, Computers, Programming


Programming languages l.jpg
Programming Languages total is greater than ten you carry the one into the next column

  • A set of names that have encodings

    • Some names allow us to define new encodings

  • You can assign a name to represent a value (we call this a variable)

  • You can assign a name to represent a function or procedure (method)

  • You can assign a name to a collection of related variables and functions/procedures (class)

Intro CS, Computers, Programming


Fortran l.jpg
FORTRAN total is greater than ten you carry the one into the next column

  • Acronym for formula translator

  • The first high-level language

  • Developed in the 1950s at IBM by John Backus

  • Mostly used for scientific applications that require extensive mathematical computations.

  • There have been several versions

Intro CS, Computers, Programming


Cobol l.jpg
COBOL total is greater than ten you carry the one into the next column

  • Acronym for common business oriented language.

  • Developed in the late 1950s and early 1960s by the Conference on Data Systems and Languages (CODASYL).

  • Popular for business applications that run on large computers

  • Meant to be easy to read

    • Very wordy to program

Intro CS, Computers, Programming


Basic l.jpg
BASIC total is greater than ten you carry the one into the next column

  • Acronym for Beginner's All-purpose Symbolic Instruction Code.

  • Developed in the mid 1960s at Dartmouth College by John G. Kemeny and Thomas E. Kurtz

  • Mostly used in business and education

  • VisualBasic is a form of BASIC created by MicroSoft that uses visual programming

    • Good for graphical user interfaces

Intro CS, Computers, Programming


Slide39 l.jpg
C total is greater than ten you carry the one into the next column

  • Developed by Dennis Ritchie at Bell Labs in the mid 1970s

  • Originally a systems programming language

    • Closer to machine language than other high-level languages

    • Used to develop the UNIX operating system

  • Popular in business and science in the 80s

    • Used on personal computers because took less memory than other computer languages

Intro CS, Computers, Programming


Slide40 l.jpg
C++ total is greater than ten you carry the one into the next column

  • Developed by Bjarne Stroustrup at Bell Labs in 1986

  • Added object-oriented features to its predecessor, C.

  • Very popular in the late 80s to 90s

  • Popular for 3-d graphics

Intro CS, Computers, Programming


Slide41 l.jpg
Java total is greater than ten you carry the one into the next column

  • Developed at Sun in the early 1990s

    • Invented by James Gosling

  • Similar to C++ in syntax but easier to use

    • Java is C++ --

  • Cross-platform, object-oriented language

  • Used in business, science, and education

  • One of the fastest adopted technologies of all time

Intro CS, Computers, Programming


Slide42 l.jpg
C# total is greater than ten you carry the one into the next column

  • Microsoft developed object-oriented language for the .NET platform

  • Created by Anders Hejlsberg (author of Turbo Pascal and architect of Delphi), Scot Wiltamuth, and Peter Golde

  • Similar to Java

    • Garbage collection

    • No explicit pointers

    • Doesn’t compile to machine language

      • Common language runtime (CLR)

Intro CS, Computers, Programming


Which language l.jpg
Which Language? total is greater than ten you carry the one into the next column

  • All high-level languages are eventually translated into machine language

  • You can write the same program in any language

    • The computer doesn’t care what high-level language you use

  • The language matters to the programmer

    • How long does it take to write the program?

    • How hard is it to change the program?

    • How long does it take to execute?

Intro CS, Computers, Programming


Why don t we just use english l.jpg
Why Don’t We Just Use English? total is greater than ten you carry the one into the next column

  • English is good for communication between two intelligent humans

    • Even then we sometimes don’t understand

  • Computers are very stupid

    • They basically know how to add, compare, store, and load

    • Programs are very detailed instructions

      • Everything must be precise and unambiguous

Intro CS, Computers, Programming


Programming exercise l.jpg
Programming Exercise total is greater than ten you carry the one into the next column

  • Write down instructions for how to play a game or how to make a sandwich

  • Have another group read the directions and do the actions

    • stop anytime anything isn’t clear and ask for clarification

Intro CS, Computers, Programming


Why learn to program l.jpg
Why Learn to Program? total is greater than ten you carry the one into the next column

  • Alan Perlis, first head of Carnegie Mellon's Computer Science Department, made the claim in 1961 that computer science, and programming explicitly, should be part of a liberal education

  • Seymour Papert claimed in the 70’s and 80’s that learning to program is “learning to think, and debug one’s own thoughts.”

    • If you learned to program, you learned to plan, to debug, to handle complexity, etc.

  • Twenty years of research found that that is simply not true.

  • Most people don’t learn to program

Intro CS, Computers, Programming


So why learn to program l.jpg
So, Why Learn to Program? total is greater than ten you carry the one into the next column

  • The computer is the most amazingly creative device that humans have ever conceived of. If you can imagine it, you can make it “real” on a computer.

  • Computers will continue to have a major impact on modern life

    • Movies, games, business, healthcare, science, education, etc

Intro CS, Computers, Programming


Computers are commonplace l.jpg
Computers Are Commonplace total is greater than ten you carry the one into the next column

  • Computers, or at least processors, are in many common devices

Intro CS, Computers, Programming


Programming is communicating l.jpg
Programming is Communicating total is greater than ten you carry the one into the next column

  • Alan Perlis, “You think you know when you can learn, are more sure when you can write, even more when you can teach, but certain when you can program.”

Intro CS, Computers, Programming


Summary l.jpg
Summary total is greater than ten you carry the one into the next column

  • Computers are fairly simple machines

    • Fancy calculators with lots of storage

    • But incredibly fast

  • Computers have changed modern life

  • An algorithm is a textual description of how to solve a problem.

  • Programs are instructions to a computer to accomplish a task

  • Programs written in high-level languages are translated to machine or assembly language by a compiler

Intro CS, Computers, Programming


ad