Announcements The Algorithmic Model Programming Languages Data Assignment Arithmetic - PowerPoint PPT Presentation

1 / 71
About This Presentation
Title:

Announcements The Algorithmic Model Programming Languages Data Assignment Arithmetic

Description:

http://www.cc.gatech.edu/classes/AY2001/cs1311/ Announcements. Newsgroups ... Reading newsgroups. On Campus: Outlook Express/Netscape/tin. Off Campus: tin ... – PowerPoint PPT presentation

Number of Views:53
Avg rating:3.0/5.0
Slides: 72
Provided by: ccGa
Category:

less

Transcript and Presenter's Notes

Title: Announcements The Algorithmic Model Programming Languages Data Assignment Arithmetic


1
AnnouncementsThe Algorithmic ModelProgramming
LanguagesDataAssignmentArithmetic
Lecture 2
2
Announcements
  • Web Page
  • http//www.cc.gatech.edu/classes/AY2001/cs1311/

3
(No Transcript)
4
(No Transcript)
5
(No Transcript)
6
(No Transcript)
7
Announcements
  • Newsgroups
  • git.cc.class.cs1311.announce
  • git.cc.class.cs1311.rec
  • git.cc.class.cs1311.lab
  • git.cc.class.cs131x.macusers
  • Reading newsgroups
  • On Campus Outlook Express/Netscape/tin
  • Off Campus tin

8
The Algorithmic Model
9
The Algorithmic Model
  • What is Computer Science
  • What is Programming
  • Algorithms
  • Defined
  • Properties of Good Algorithms
  • Describing Algorithms
  • Examples
  • Components of Algorithms

10
What is Computer Science
  • Not really a science in the traditional sense
  • Study of algorithms and how to use them
  • NOT study of computers
  • Software engineering is important!
  • Analysis and design of systems
  • Programming
  • Testing and maintenance

11
What is Programming
  • Programming requires two skills
  • Algorithmic thinking
  • Knowledge of programming language syntax
  • Learning language syntax is the easy part

12
How We Learn Computer Science
  • We use pseudo-code to focus on learning
    algorithmic thinking.
  • From there, you can go anywhere!
  • Not using a computer to compile and run your
    program forces you to mentally execute your
    program and debug it!
  • Too many programmers try to program by trial and
    error and twiddling.

13
Algorithm Defined
  • A set of logical steps to accomplish a task
  • One way to solve a problem
  • A recipe of action
  • A way of describing behavior
  • Algorithms contain
  • Data
  • Instructions

14
Algorithms in Computing
Input Data Algorithm Output Data
15
Algorithm Recipe
  • Chocolate Chip Cookies DATA
    (ingredients) 2 1/4 cups flour 1 tsp salt 1
    tsp baking soda 2 eggs 3/4 cup brown sugar 1
    tsp vanilla ext. 3/4 cup grand sugar 1 cup
    soft butter 12oz. semi-sweet chocolate
    chipsINSTRUCTIONS (steps) Preheat oven to
    375. Combine flour, salt, baking soda, in
    bowl, set mixture aside. Combine sugars,
    butter, vanilla, beat until creamy. Add eggs
    and beat. Add dry mixture and mix well.
    Stir in chocolate chips Drop mixture by
    teaspoons onto ungreased cookie sheet Bake 8
    to 10 minutes

16
Abstraction
  • a general idea or term
  • an impractical idea visionary and unrealistic
  • general characteristics apart from concrete
    realities, specific objects or actual instances
  • withdrawal
  • absent-mindedness inattention
  • a work of art stressing formal relationships

(Random House Dictionary of the English Language)
17
Abstraction in Computing
  • Refers to the logical grouping of concepts or
    objects
  • Define/implement the general idea
  • Isolate the details
  • Helps readability and understandingof our
    algorithms

18
Abstraction Examples
  • Algorithms
  • Variable names
  • Procedures and functions
  • Data structures
  • The computer language itself!

19
Abstraction in Algorithms
  • The Abstraction
  • Get to the College of Computing at Georgia
    Tech
  • One Implementation
  • begin
  • get on I-85 heading towards Midtown Atlanta
  • exit I-85 at the 10th street exit
  • proceed along exit ramp to 10th street
  • turn west on 10th street
  • turn left on Atlantic Drive
  • stop in front of CoC building
  • end
  • Other implementations of the same abstraction can
    be just as correct, better, or worse

20
Why do we stress abstraction?
21
Whats Wrong With This Algorithm?
(From back of shampoo bottle) Directions
Wet Hair Apply a small amount of shampoo
Lather Rinse Repeat
22
Properties of Good Algorithms
  • Good algorithms are
  • Precise
  • Unambiguous
  • Complete
  • Correct
  • Simple
  • Contain levels of abstraction

23
Describing Algorithms
  • Natural language (English)
  • Pictures
  • Pseudo-code or a specific programming language

24
  • Make a list of courses you want to register for,
    in order of priority
  • Start with empty schedule. Number of hours 0.
  • Choose highest priority class on list.
  • If the chosen class is not full and its class
    time does not conflict with classes already
    scheduled, then register for the class (2 steps)
  • 4.a. Add the class to the schedule
  • 4.b. Add the class hours to the number of hours
    scheduled
  • Cross that class off of your list.
  • Repeat steps 3 through 5 until the number of
    hours scheduled is gt 15, or until all classes
    have been crossed out.
  • Stop.

25
Flowcharts
26
Components of Algorithms
  • Any computing algorithm will have AT MOST five
    kinds of components
  • Data structures to hold data
  • Instructions change data values
  • Conditional expressions to make decisions
  • Control structures to act on decisions
  • Modules to make the algorithm manageable by
    abstraction, i.e., grouping related components

27
Questions?
28
View of Programming Languages
29
Overview of Programming Languages
  • Allows programmers to describe desired behaviors
    (algorithms)
  • The audiences are
  • Humans
  • Computers (only understand binary)
  • Consists of
  • Built-in
  • User-defined

30
Program Language
Language
Built-in
User-defined
Data
Operators Assignment Arithmetic Input/Output Relat
ional Boolean
Data
Operators
Atomic Number Character Boolean Pointer
Complex String
31
Relations between Problems, Algorithms, and
Programs
Problem
Algorithm
. . . .
Algorithm
. . . .
Program
Program
Program
Program
. . . .
32
Questions?
33
Data
34
Data Structures
  • Data Structures are containers for data.
  • The simplest of them are called atomic because
    they hold only a single value and cannot be
    subdivided into lower-level components
  • Other complex data structures may hold multiple
    pieces of data, and are constructed from atomic
    types.

35
Built-in Data Types
  • Four built-in atomic types
  • - Character (char)
  • - Number (num)
  • - Boolean (boolean)
  • - Pointer (ptr)
  • One built-in complex type
  • - String (string)

36
Memory Lane
37
Abstracting the Memory
  • Memory consists of 1s and 0s
  • We want to abstract out the details
  • Create a space in memory for a specific type of
    information
  • Access this location in memory using a meaningful
    name

38
Three Steps in Using Memory
  • Declare
  • Initialize (no default value)
  • Manipulate

39
Declaring Variables
  • Variables are data structures whose value may be
    changed by the algorithm.
  • Each variable must be declared to have an
    identifier (i.e., a name) and be of some data
    type.
  • For example to declare a variable named
    counter that can hold a numeric value
  • counter isoftype Num

40
Initialization
  • Each variable must first be assigned a value of
    the appropriate type after being declared.
  • For example to assign the value 0 to the
    variable counter
  • counter lt- 0
  • Variables do not contain information until they
    are initialized (I.e. no default value).

41
Numbers
  • Declared as
  • my_num isoftype Num
  • my_num can now store one (integer or real) number
    of any magnitude.
  • Examples
  • my_num lt- 1 // this is OK
  • my_num lt- -65 // so is this
  • my_num lt- 14.5 // and so is this
  • my_num lt- a // an ERROR

42
Characters
  • Declared as
  • your_grade isoftype Char
  • your_grade can now store any one alphanumeric
    character.
  • Single-quotes used to distinguish Char values.
  • Examples
  • your_grade lt- A // this is OK
  • your_grade lt- A- // an ERROR
  • your_grade lt- 9 // this is OK
  • your_grade lt- 9 // an ERROR

43
Booleans
  • Declared as
  • this_test isoftype Boolean
  • this_test can now hold one boolean (TRUE or
    FALSE) value.
  • Examples
  • this_test lt- TRUE // this is OK
  • this_test lt- FALSE // so is this
  • this_test lt- FALSE // an ERROR
  • this_test lt- TRUE // an ERROR

44
String
  • Strings can holds a collection of characters.
  • Declared as
  • this_string isoftype String
  • this_string can now hold a string of any number
    of alphanumeric characters.
  • Examples
  • this_string lt- hello world // OK
  • this_string lt- hello world // ERROR
  • this_string lt- 45 // OK
  • this_string lt- 45 // ERROR

45
Distinguishing Data Types
  • Woman, without her, man is nothing
  • Woman, without her man, is nothing
  • my_char lt- a // single quotes
  • my_string lt- a // double quotes

46
Pointers
  • Declared asthis_num_ptr isoftype ptr toa Num
  • this_num_ptr can now know where a Num variable
    lives in memory.

this_num_ptr
42
Don't worry about pointers for now.
47
Questions?
48
Assignment
49
The Assignment Operator
  • The assignment operator stores a particular value
    in a variable.
  • Assignment lt-
  • Format
  • variable lt- value/variable

50
Type Matching
  • The type of variable on the left side must match
    the type of value/variable on the right side
  • my_num lt- 42
  • my_num lt- your_num

51
Assignment Examples
  • Examples
  • my_age lt- 43
  • your_age lt- my_age // duplicates?
  • your_grade lt- A
  • this_test lt- TRUE
  • hi_there lt- Hello World
  • TRUE and FALSE are each single boolean values.

52
More Examples
  • a lt- b c
  • Get the value of b from memory
  • Get the value of c from memory
  • Add the two values together
  • Store the result in memory location a

a lt- a 1 Get the value of a from memory Add
the number 1 to it. Store the result in memory
location a
53
Pointer Assignment
  • Given
  • this_ptr isoftype ptr toa Num
  • that_ptr isoftype ptr toa Num
  • Then
  • this_ptr lt- new(Num)
  • that_ptr lt- new(Num)
  • Gives each pointer variable a new number variable
    to which it refers

that_ptr
this_ptr
?
?
54
Pointer Assignment
  • Given above, then
  • this_ptr lt- 4
  • that_ptr lt- 8
  • Assigns values to the variable to which the
    pointer refers.

this_ptr
4
that_ptr
8
55
Pointer Assignment
  • Given
  • other_ptr lt- this_ptr
  • this_ptr lt- that_ptr
  • Assigns/reassigns pointers variables to reference
    other variables

this_ptr
4
that_ptr
8
that_ptr
this_ptr
8
4
other_ptr
56
Questions?
57
Arithmetic
58
Arithmetic Operators
  • Arithmetic operators allow us to express
    mathematical operations
  • Addition
  • Subtraction -
  • Multiplication
  • Division /
  • Integer Division DIV
  • Modulo MOD

59
Order of Operations
  • Follow standard arithmetic order of operations
  • Multiplication Division
  • Addition Subtraction
  • Left to Right

60
Parentheses
  • Use parentheses to control order of execution.
  • Suppose we want
  • Will x lt- a b / c - d work?

61
So we want
  • x lt- (a b) / (c - d)

62
DIV and MOD
  • DIV keep whole number quotient, and throw away
    the remainder
  • MOD keep the remainder, and throw away the whole
    number quotient
  • Examples
  • 8 DIV 3 2 // 3 goes into 8 two times
  • 8 DIV 9 0 // 9 doesnt go into 8
  • 7 MOD 3 1 // remainder of 1
  • 7 MOD 9 7 // remainder of 7

63
MOD DIV
7 -3 0
1 2 0 1
2 0
  • 7.3333 DIV 1
  • -6.3 DIV 2
  • 0 MOD 3
  • 1 MOD 3
  • 2 MOD 3
  • 3 MOD 3
  • 4 MOD 3
  • 5 MOD 3
  • 6 MOD 3

64
Questions?
65
Input and Output
66
Input and Output
  • I/O Operators allow us to communicate with the
    outside world, the world beyond the algorithm
    itself.
  • Were not concerned with formatting.

67
Print
  • Displays output items to the user
  • Syntax
  • print(item_1, item_2, ..., item_n)
  • Examples
  • print(Please enter your info.)
  • print(num_one, my_char, is_Student)

68
Read
  • Obtains input items from the user
  • Syntax
  • read(item_1, item_2, ..., item_n)
  • Examples
  • read(menu_choice)
  • read(is_Student, name, age)
  • No automatic prompting!

69
Input and Output Examples
  • algorithm IO_Example
  • num_one, num_two, average isoftype Num
  • // obtain two numbers
  • print(Please enter two numbers)
  • read (num_one, num_two)
  • // output a literal text message and the
  • // value of the sum
  • print (Sum , num_one num_two)
  • // output a string literal and average
  • average lt- (num_one num_two) / 2
  • print (Average , average)
  • endalgorithm


70
Questions?
71
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com