Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 5

Ada Lovelace, 1842-1843 The First Computer Programmer

 translated an article about Charles Babbages proposed Analytic Engine.


 theorized that the computer could, one day, play music and chess.
 ADA, a U.S. Department of Defense
 computer language, is named in her honor

Joseph Marie Jacquard, 1801


 Invented the Jacquard loom. A mechanical, automated loom.
 punched cards to control the operation of the loom

Herman Hollerith, 1889


 Electric Tabulating System, a machine that could read data.
 invented the tabulator and keypunch machines. Hollerith cards
 In 1896, he founded Tabulating Machine Company, which later became IBM.
 In 1906, he developed a plugboard or control panel
-allowed the machine to perform different tasks without being reconstructed.

Atanasoff-Berry Computer (ABC)


 Developed in 1937 and tested in 1942
 the first electronic digital computer
 designed to solve linear equations.
 not programmable, it did use binary arithmetic, regenerative memory, parallel processing, and
a separate memory.

Colossus Machine
 Used in World War II
 first programmable, electronic digital computers.
 Designed to break and read encrypted German messages.

The First Actual Computer “Bug”


In 1947, Grace Murray Hopper, and admiral in the U.S. Navy and computer programming pioneer
documented the first actual computer “bug” when a moth got trapped in the Mark II Alken Relay
Calculator.

The Electronic Delay Storage Automatic Calculator (EDSAC)


 May 6, 1949, EDSAC ran its first program
calculating a table of squares and a list of prime numbers.

FORTRAN
 first high level computer programming language
 Invented by John Backus of IBM in 1954.
 It was released commercially in 1957.

SPACEWAR! 1961.
 The first computer game by Steve Russel
 Took roughly 200 man-hours to complete.
 At Stanford University, Russell introduced Nolan
 Bushnell to Spacewar!
 Bushnell went to program the first coin-operated arcade game and later started Atari
Computers

Fred Cohen, 1983


 designed a hidden program that could infect a computer, copy itself, and then infect on the
computers through the use of floppy disk.
 program was benign, meant only to prove that it was possible.

Hardware
Input:
Keyboard, Mouse
System unit:
Random Access Memory (RAM)
Central Processing Unit (CPU)
Output:
Monitor, Printer
Secondary Storage:
Disk Drive

Software
 Instructions for the hardware.
Actions to be performed
 A set of instructions is called a program.
Driving force behind the computer
Without a program – What is a computer?
Collection of Useless Hardware
 2 purposes:
Tell the computer what to do
Tell other people what we want the computer to do.
CPU
 The central processing unit (CPU)
 The “brain” of a computer
 Retrieves instructions from memory and executes them.

Memory (RAM)
 Stores data and program instructions for CPU to execute
A program and its data must be brought to memory before they can be executed
 Stores intermediate and final results of processing.
 Volatile: Contents are erased when computer is turned off or reset.
 A memory unit is an ordered sequence of bytes, each holds eight bits.

Storage Devices
 Hard Drives, CDs/DVDs, Flash Drives, etc.
 Non-Volatile or Permanent Storage
 Programs and data are permanently stored on storage devices and are moved to memory
when the computer actually uses them.
Computer Language
Digital devices have two stable states, which
are referred to as zero and one by convention

The binary number system has two digits, 0 and


1. A single digit (0 or 1) is called a bit, short for
binary digit. A byte is made up of 8 bits.

 Binary Language: Data and instructions (numbers, characters, strings, etc.) are encoded as
binary numbers
- a series of bits (one or more bytes made up of zeros and ones)

 Encoding and decoding of data into binary is performed automatically by the system based on
the encoding scheme
Encoding schemes
Numeric Data: Encoded as binary numbers
Non-Numeric Data: Encoded as binary numbers using representative code
ASCII – 1 byte per character
Unicode – 2 bytes per character
Programming Languages
 Computers cannot use human languages
 most programs are written using a programming language and are converted to the binary
language
Three major categories of prog languages:
Machine Language
 Natural language of a particular computer
 Primitive instructions built into every computer
 The instructions are in the form of binary code
 Any other types of languages must be translated down to this level

Assembly Language
 English-like Abbreviations used for operations (Load R1, R8)
 Assembly languages were developed to make programming easier
 The computer cannot understand assembly language - a program called assembler is used to
convert assembly language programs into machine code

High level Language


 English-like and easy to learn and program
 Common mathematical notation
Total Cost = Price + Tax;
area = 5 * 5 * 3.1415;
 Java, C, C++ , FORTRAN, VISUAL BASIC, PASCAL

Compiling Source Code


 A program written in a high-level language is called a source program (or source code).
 computer cannot understand a source program.
compiler is used to translate the source program into a machine language program
called an object program.
Object program is often then linked with other supporting library code before the object
can be executed on the machine.
Programming
 creation of an ordered set of instructions to solve a problem with a computer.
 Only about 100 instructions that the computer understands – Different programs will just use
these instructions in different orders and combinations.
 The most valuable part of learning to program is learning how to think about arranging the
sequence of instructions to solve the problem or carry out the task

Programming Fundamentals: Putting the Instructions Together


 Sequential Processing
A List of Instructions
 Conditional Execution
Ifs
 Repetition
Looping / Repeating
 Stepwise Refinement / Top-Down Design
Breaking Things into Smaller Pieces
 Calling Methods / Functions / Procedures / Subroutines
Calling a segment of code located elsewhere
Reuse of previously coded code segment
Methods of Programming
 Procedural
 Defining set of steps to transform inputs into outputs
 Translating steps into code
 Constructed as a set of procedures
 Each procedure is a set of instructions
Object-Oriented
 Defining/utilizing objects to represent real-world entities thatwork together to solve problem
 Basic O-O Programming Components
1. Class
2. Object/Instance
3. Properties
4. Methods
Problem Solving
The process of defining a problem, searching for relevant information and resources about the
problem, and of discovering, designing, and evaluating the solutions for further opportunities.

Polya’s 4 Steps of Problem Solving


U – Understand the Problem
Read the Problem Statement
Identify the inputs, outputs, and processes
D – Devise a Good Plan to Solve
Decide how to Solve the Problem
Create an Algorithm / Flowchart / Psuedocode
I – Implement the Plan
Program the Code
Implement in Programming Language
E – Evaluate the Solution
Test the Solution
Run the Code using numerous, varied test
cases

You might also like