Lecture 01
Lecture 01
Introduction to
Scientific & Engineering
Computing
1
Instructor
Selman Nas, Ph.D.
University of Michigan
Assistant Professor at I.T.U.
Department of Aerospace Engineering
[email protected]
URL: http://atlas.cc.itu.edu.tr/~nas
Voice: 285-3106
2
Introduction to Computers
and Information Systems
Windows NT
Browser, mail, etc.
F_world, powerstation (visual Fortran)
Linux
Text editor (staroffice, emacs, vi, joe, etc.), or
advanced text editor
Compiler (F90)
Mail (pine, etc.)
6
IMPORTANT
Programming in F
T.M.R. Ellis and Ivor R. Philips
M.I.L.’s Reserve Section
Photocopies available Fen-Edebiyat printshop
Essential Fortran 90 & 95
Loren P. Meissner
M.I.L.’s Reserve Section
Schedule (2+2)
1 Introduction +
History
History (Computers, FORTRAN, etc.)
Algorithm, data, visualization.
2 Basic
FORTRAN
Data types, constants, variables, operations, functions,
assignment, i/o, programming style
3 Selective
execution
Logical expressions, IF, IF-ELSE-IF, CASE
constructs,LOGICAL data type
4 Repetitive
execution
Do Loops
5 Input /
Output
Formatted output / input, WRITE / READ statements,
intro. to files
11
Tentative Program
12
Tentative Program
13
Introduction to computing
14
How do we use computers in
science and engineering?
19
History & Background
(6) Programmer-defined data types
(7) Dynamic memory allocation and pointers for constructing complex data
structures
20
So, why Fortran?
22
Fortran 90 and its subsets
They are :
inexpensive (or even free) and good teaching tools
allow to create well organized and easily maintainable programs
powerful and efficient
In our course, we will use Fortran 90.
23
Software in
Science & Engineering
F Fortran 90
F
Fortran 77
Fortran 90
The F language
Easy
to learn
to implement
to understand
Powerful enough for use in large
programs
program Radioactive_Decay
!----------------------------------------------------------------------------
! This program calculates the amount of a radioactive substance that
! remains after a specified time, given an initial amount and its
! half-life. Variables used are:
! InitalAmount : initial amount of substance (mg)
! HalfLife : half-life of substance (days)
! Time : time at which the amount remaining is calculated (days)
! AmountRemaining : amount of substance remaining (mg)
!
! Input: InitialAmount, HalfLife, Time
! Output: AmountRemaining
!-----------------------------------------------------------------------------
implicit none
real :: InitialAmount, HalfLife, Time, AmountRemaining
! Display AmountRemaining.
print *, "Amount remaining =", AmountRemaining, "mg"
implicit none
real :: InitialAmount, HalfLife, Time, AmountRemaining
! Display AmountRemaining.
print *, "Amount remaining =", AmountRemaining, "mg"
implicit none
real :: InitialAmount, HalfLife, Time, AmountRemaining
! Display AmountRemaining.
print *, "Amount remaining =", AmountRemaining, "mg"
Input Devices
Control Arithmetic-
Unit Logic Unit
Output Devices
Main
Memory
External Memory
34
Memory & Compiling
Bytes are grouped together into WORDS
The number of bits in a word is equal to the number of bits in a
CPU register
The word size thus varies from one computer to another
Common word sizes are 16 bits (=2 bytes) and 32 bits (=4 bytes)
COMPILING
Most programs are written in a high-level language such as Fortran
and a compiler translates each statement in the program into a
sequence of basic machine (or assembly) language instructions.
Machine language consists of two parts: (1) a numerical opcode
(multiply, add, store etc.), (2) the address of the operand.
35
Compiling Process
Run-time
errors
Compilation
errors
36
Programming and Problem
Solving
Program-development process consists of at least five steps:
1) Problem analysis and specification
The first stage in solving the problem is to analyze the problem
and formulate a precise specification of it
2) Data organization and algorithm design
Determine how to organize and store the data in the problem.
Develop procedures to process the data and produce the required
output. These procedures are called algorithms.
3) Program coding
Coding is the process of implementing data objects and
algorithms in some programming language.
A Simple program begins with the PROGRAM, and ends with the END
PROGRAM statements
37
Programming and Problem
Solving
A simple program
PROGRAM test
PRINT *, ”Hello!”
END PROGRAM test
4) Execution and testing
This is the checking step that the algorithm and program are correct.
Compile (produce an object file) {compile-time errors} + run {run-time
errors}: IMPORTANT!! Logic errors that arise in the design of the
algorithm or in the coding of the program are very hard to find.
5) Program maintenance
In real world applications, programs need to modify to improve
their performance.
38
Basic statements
A program is just a sequence of lines of text. Execution of the
program is a separate process that goes on inside the computer
when the program is executed. The program statements are static,
or fixed, while the execution process is dynamic, or changing. The
statements exists in space, and the execution occurs in a time
dimension.
First instruction Execution of first instruction
Assignment
Average = (X + Y) / 2.0 X
1.234
Y
5.678
(X+Y)/2.0
Average
3.456
40
How F assigns the value of the expression (X+Y)/2.0 to average
Basic FORTRAN 90
statements
Type declarations
The principal data types for F numerical data are:
1) real, 2) integer, 3) complex, 4) logical, and 5) character.
Repetition
do statement
Block of statements to be repeated
end do
41
First Steps in F Programming
From problem to program in three basic steps:
1. Specify the problem clearly
2. Analyse the problem and break it down into its
fundamental elements
3. Code the program according to the plan developed
at step 2.
Additionally there is also a 4th step
4. Test the program exhaustively, and repeat steps 2
and 3 as necessary
42
First Steps in F Programming
Reading Homework:
Ellis’s Book
43