0% found this document useful (0 votes)
61 views

Introduction To Computer Programming

This document provides an introduction and overview for a computer programming lecture. It includes information about the instructor, class times and location, course objectives, outline, grading, and a history of computing. The objectives are to introduce programming with MATLAB and teach students how to write, read, understand and solve problems with beginner MATLAB programs. The course outline covers topics like syntax, algorithms, conditional statements, loops, and matrix manipulation.

Uploaded by

kurddoski28
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
61 views

Introduction To Computer Programming

This document provides an introduction and overview for a computer programming lecture. It includes information about the instructor, class times and location, course objectives, outline, grading, and a history of computing. The objectives are to introduce programming with MATLAB and teach students how to write, read, understand and solve problems with beginner MATLAB programs. The course outline covers topics like syntax, algorithms, conditional statements, loops, and matrix manipulation.

Uploaded by

kurddoski28
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 39

Computer

Programming
Lecture 1
Introduction To Computer
Programming

Mr. Abbas kh. Ibrahim


Welcome to
(Computer Programming for
Petroleum Engineering 2019)
Course Info

Instructor: Abbas Khaleel Ibrahim [email protected]


TA: Mr. Tahir (Computer Lab.)

Introduction to Computer Programming with MATLAB

Class Hours
– sunday : 9:00 am - 3:00 pm

Office: Petroleum Engineering Dept.


Objectives
 Introduces the student to the world of programming
through MATLAB to develop scientific and engineering
models.

 The student will be able to read, understand and write


beginner level programs using MATLAB.

 The student will be able to solve mathematical and


Petroleum Engineering problems using MATLAB.
COURSE OUTLINE
 Introduction.
 MATLAB Syntax and Commands.
 Use of MATLAB to Solve Engineering Problems.
 Algorithms.
 Conditional Statement.
 Repetition Loops.
 Subprograms.
 Matrix Manipulation.
 File I/O.
GRADING

We’ll discuss that later !


History of Computing
1800S
 George Boole – devised Boolean algeb
ra

 Charles Babbage – created "analytical


engine“

 Augusta Ada Byron – first computer pr


ogrammer

 Herman Hollerith – founder of compa


ny that would become IBM
1930S
 Alan Turing – deciphered German cod
e in WWII; father of artificial intelligen
ce
 John V. Atanasoff – inventor of first el
ectronic digital special purpose compu
ter
1940S
 Howard Aiken – built large scale digit
al computer, Mark I

 Grace M. Hopper – originated term "d


ebugging"; pioneered development a
nd use of COBOL

 John Mauchley and J. Presper Eckert –


built first large scale general purpose
computer, ENIAC
1940S CONTINUED
 John von Neumann – developed store
d program concept

 Maurice V. Wilkes – built EDSAC, first


computer to use stored program con
cept

 John Bardeen, Walter Brattain, and


William Shockley – developed transist
or that replaced vacuum tubes
1950S
 John Backus – created Fortran; early u
ser of interpreters and compilers

 Reynold B. Johnson – invented the dis


k drive

 Donald L. Shell – developed efficient s


orting algorithm
1960S
 JohnG. Kemeny and Thomas E.
Kurtz – invented BASIC

 Corrado Bohm and Guiseppe Ja


copini – proved that any progra
m can be written with only 3 str
uctures: sequence, decision, an
d loops

 EdsgerW. Dijkstra – stimulated


move to structured programmin
g by declaring "GOTO" harmful
1960S CONTINUED
 Harlan B. Mills – advocated use
of structured programming

 Donald E. Knuth – wrote definiti


ve work on algorithms.

 Ted Hoff, Stan Mazer, Robert N


oyce, and Frederico Faggin – de
veloped first microprocessor
1960S CONTINUED
 Douglas Engelbart – invented computer mouse
1970S
 Ted Codd - software architect; l
aid the groundwork for relation
al databases

 Paul
Allen and Bill Gates - cofou
nders of Microsoft Corporation

 Stephen Wozniak and Stephen J


obs - cofounders of Apple Com
puter Inc.

 Dan Bricklin and Dan Fylstra - wr


ote VisiCalc, the first electronic s
preadsheet program
1970S CONTINUED
 Dennis
Ritchie - creator of the C
programming language.

 KenThompson - created the Uni


x operating system

 Alan Kay – developer of Smalltal


k, a pure object-oriented langua
ge

 Don Chamberlain - created a dat


abase programming language, la
ter known as SQL,
1980S
 Phillip
“Don” Estridge - at IBM
directly responsible for the su
ccess of the personal comput
er.

 MitchellD. Kapor - cofounde


r of Lotus Corporation

 TomButton - group product


manager for applications pro
grammability at Microsoft;
 headed the team that develop
ed QuickBasic, QBasic, and Vis
ual Basic.
1980S CONTINUED
 AlanCooper - considered the fat
her of Visual Basic.

 Tim Berners–Lee - father of the W


orld Wide Web.

 Charles Simonyi - father of Word.

 Bjarne
Stroustrup - creator of the
C++ programming language.

 RichardM. Stallman - founded Fr


ee Software Foundation
1990S
 Marc Andreessen - inventor of the Web
browser.

 James Gosling – creator of Java.

 Linus Torvalds - developed the popular L


inux operating system.
2000S
 Sergey M. Brin and Lawrence E. Pa
ge – founders of Google

 Mark Zuckerberg – founder of Face


book.

 Steve Chen, Chad Hurley, and Jawe


d Karim – founders of YouTube.
An Introduction to Computers
and Problem Solving
Representation of the problem solving p
rocess
Problem-solving: approach like algebra class

• How fast is a car traveling if it goes 50 miles in 2


hours?

• Input : two inputs : 50 miles , 2 hours.

• Process: speed = distance/time = 50/2.

• Output: 25 mph (miles per hour).


Program Planning Tips

• Always have a plan before trying to write a progra


m

• The more complicated the problem, the more


complex the plan must be.

• Planning and testing before coding saves time cod


ing.
Program development cycle
1. Analyze: Define the problem.

2. Design: Plan the solution to the problem.

3. Choose the interface: Select the objects (text boxes, buttons,


etc.).

4. Code: Translate the algorithm into a programming language.

5. Test and debug: Locate and remove any errors in the progra
m.

6. Complete the documentation: Organize all the materials that


describe the program.
What is a Computer?
Computer
– Device capable of performing computations
and making logical decisions
– Computers process data under the control of
sets of instructions called computer program
s
Hardware
– Various devices comprising a computer
– Keyboard, screen, mouse, disks, memory, C
D-ROM, and processing units
Software
– Programs that run on a computer
Computer Organization
Six logical units in every computer:
– Input unit
• Obtains information from input devices (keyboard,
mouse)
– Output unit
• Outputs information (to screen, to printer, to control
other devices)
– Memory unit
• Rapid access, low capacity, stores input information
– Arithmetic and logic unit (ALU)
• Performs arithmetic calculations and logic decisions
– Central processing unit (CPU)
• Supervises and coordinates the various components o
f the computer
– Secondary storage unit
• Cheap, long-term, high-capacity storage
• Stores inactive programs
Computer Architecture
Common Softwares

 Operating System
 Compilers
 Assemblers
 Interpreters
Evolution of Programming languages
– First Generation : Machine languages
• Strings of numbers giving machine specific instructions
• Example:
+1300042774
+1400593419
+1200274027
– Second Generation : Assembly languages
• English-like abbreviations representing elementary computer operations (tr
anslated via assemblers)
– Example:
LOAD BASEPAY
ADD OVERPAY
STORE GROSSPAY
– Third Generation : High-level languages
• Codes similar to everyday English
• Use mathematical notations (translated via compilers)
• Example: grossPay = basePay + overTimePay
Programming Language hierarch
y
What does the computer understa
nd?
• Computer only understands machine language i
nstructions.
Assembler
• Instructions written in assembly language m
ust be translated to machine language instru
ctions :
– Assembler does this
• One to one translation : One AL instruction
is mapped to one ML instruction.
• AL instructions are CPU specific.
Compilation into Assembly

Source Assembly
Program Compiler Language

Assembly Assembler Machine


Language Language
Compiler
• Instructions written in high-level language also m
ust be translated to machine language instructions
:
– Compiler does this
• Generally one to many translation : One HL instru
ction is mapped to many ML instruction.
• HL instructions are not CPU specific but compiler
is.
Compilation

Source Target
Program Compiler Program

Input Target Program Output


Interpreter
• An interpreter translates high-level instructions into an inte
rmediate form, which it then executes. In contrast, a
compiler translates high-level instructions directly into
machine language.
• Compiled programs generally run faster than interpreted p
rograms.
• The advantage of an interpreter, however, is that it does no
t need to go through the compilation stage during which m
achine instructions are generated. This process can be time
-consuming if the program is long. The interpreter, on the
other hand, can immediately execute high-level programs.
For this reason, interpreters are sometimes used during the
development of a program, when a programmer wants to a
dd small sections at a time and test them quickly.
Interpretation
Source
Program

Interpreter Output

Input

You might also like