Introducing Programming - Department of Computer and Information

advertisement
Introducing Programming
CSCI N201: Programming Concepts
Copyright ©2005  Department of Computer & Information Science
Goals
By the end of this lecture, you should …
• Understand the different types of
programming languages.
• Understand the basic procedures in a
program as input, processing and output.
• Understand the importance of variables.
• Understand a basic map of the program
development cycle.
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Computer Components
•
•
•
•
•
CPU Central Processing Unit
RAM (Random Access Memory)
Mass storage devices
Input devices
Output Devices
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Storage Capacities
• bit – smallest capacity
• nibble = 4 bits
• byte = 2 nibbles = 8 bits
– storage for one character
• 1 kilobyte (KB) = 1024 bytes
• 1 megabyte (MB) = 1024 KB
• 1 gigabyte (GB) = 1024 MB
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Software
Software is comprised of instructions that get a
computer to perform a task.
• Application Software
–
–
–
–
–
Word Processors
Database s/w
Spreadsheets
Painting programs
Web browsers, email
programs
• System Software
– Operating Systems
•
•
•
•
Windows
Macintosh OS
Unix
Linux
– Drivers
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Programming Languages
• Programming languages allow
programmers to code software.
• The three major families of languages are:
– Machine languages
– Assembly languages
– High-Level languages
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Machine Languages
• Comprised of 1s and 0s
• The “native” language of a computer
• Difficult to program – one misplaced 1 or
0 will cause the program to fail.
• Example of code:
1110100010101
10111010110100
111010101110
10100011110111
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Assembly Languages
• Assembly languages are a step towards easier
programming.
• Assembly languages are comprised of a set of
elemental commands which are tied to a specific
processor.
• Assembly language code needs to be translated
to machine language before the computer
processes it.
• Example:
ADD 1001010, 1011010
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
High-Level Languages
• High-level languages represent a giant
leap towards easier programming.
• The syntax of HL languages is similar to
English.
• Historically, we divide HL languages into
two groups:
– Procedural languages
– Object-Oriented languages (OOP)
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Procedural Languages
• Early high-level languages are typically
called procedural languages.
• Procedural languages are characterized by
sequential sets of linear commands. The
focus of such languages is on structure.
• Examples include C, COBOL, Fortran, LISP,
Perl, HTML, VBScript
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Object-Oriented Languages
• Most object-oriented languages are highlevel languages.
• The focus of OOP languages is not on
structure, but on modeling data.
• Programmers code using “blueprints” of
data models called classes.
• Examples of OOP languages include C++,
Visual Basic.NET and Java.
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Compiling
• Regardless of the HL Language, all HL programs
need to be translated to machine code so that a
computer can process the program.
• Some programs are translated using a
compiler. When programs are compiled, they
are translated all at once. Compiled programs
typically execute more quickly than interpreted
programs, but have a slower translation speed.
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Interpreting
• Some programs are translated using an
interpreter. Such programs are
translated line-by-line instead of all at
once (like compiled programs).
Interpreted programs generally translate
quicker than compiled programs, but have
a slower execution speed.
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Programming Example
• Simple programming problem: Convert a
price from British pounds into Dollars.
• Pseudocode
Input the price of the item, PoundPrice, in pounds
Compute the price of the item in dollars:
Set DollarPrice = 1.62 * PoundPrice
Write DollarPrice
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Programming Example
• Translating to Basic:
INPUT PoundPrice
LET DollarPrice = 1.62 * PoundPrice
PRINT DollarPrice
END
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Input & Variables
• Input operations get data into the programs
• A user is prompted to enter data:
Write “Enter the price in pounds”
Input PoundPrice
• Computer programs store data in named
sections of memory called variables. In the
example above, the variable is named
PoundPrice. The value of a variable can, and
often does, change throughout a program.
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Types of Data
• Numeric Data
– Integer data, I.e., whole numbers, 10 25 -45
0
– Floating point data – have a decimal point 23.0, -5.0
• Character data (alphanumeric)
– All the characters you can type at the keyboard
– Letters & numbers not used in calculations
• Boolean data
– TRUE/FALSE
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Data Processing and Output
Set DollarPrice = 1.62 * PoundPrice
• The above statement is a processing statement.
Take the value in the variable PoundPrice,
multiply by 1.62, and set the variable
DollarPrice to the result of the multiplication.
Write DollarPrice
• Output the value in DollarPrice to the
monitor.
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Assignment Operations
Set counter = counter + 1
• Assignment statements change the value in a
variable Take the value of counter, add 1, and
store the result back in the same variable.
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Arithmetic Operations
Name
Symbol
Example
Result
Exponentiation
^
4^2
16
Multiplication
*
16*2
32
Division
/
16/2
8
Addition
+
16+2
18
Subtraction
-
16-2
14
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Data Hierarchy
1.
2.
3.
4.
Parenthesis
Exponentiation
Multiplication/Division
Addition/Subtraction
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Hierarchy of Operations
Example
3 * (6 + 2) / 12 – (7 – 5) ^ 2 * 3
( ) first
= 3 * 8 / 12 – 2 ^ 2 * 3
^ next
= 3 * 8 / 12 – 4 * 3
Mult/Div (L to R)
= 24 / 12 – 4 * 3
Mult/Div (L to R)
= 2 – 12
Add/Subtr
= -10
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Data Output
• Send information from the program to the screen,
or printer, or disk file.
Write DollarPrice
• The computer displays the value of the variable
DollarPrice to the screen and the cursor goes
to the next line.
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Data Output
Write “The price in Dollars is”,
DollarPrice
• The output looks like this:
The price in Dollars is 162
• The text inside the “ ” is output to the user “as is,”
and it is the value in the variable that is output.
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
2.1 The Program Development
Cycle
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Programming as Problem Solving
•
Problem solving
principles:
1. Completely understand
the problem
2. Devise a plan to solve it
3. Carry out the plan
4. Review the results
•
Developing a
Program:
1.
2.
3.
4.
Analyze the problem
Design the program
Code the program
Test the program
An example of programming as problem solving,
Brewster’s Thousands follows …
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
1) Analyze the Problem
• Brewster’s Thousands
– The problem: Brewster wants to invest money at a
local bank. There are many options such as interest
rates, terms of deposit, compounding frequencies.
He needs a program to compute, for any given initial
investment, the final maturity (value) of the deposit.
• What are the inputs? (given data)
• What are the outputs? (required data)
• How will we calculate the required outputs from the given
inputs?
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
2) Design the Program
• Create an outline of the program
• An algorithm – a step by step procedure
that will provide the required results from
the given inputs.
• Algorithm Examples: Instructions on how
to make a cake, use the bank’s ATM, etc.
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
3) Code the Program
• Once the design is completed, write the
program code.
• Code is written in some programming
language such as BASIC, Pascal, C++,
Java, etc.
In this course we write code in pseudocode, developing the skills to be used
when studying the specific languages.
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
4) Testing the program
• Locate any errors (bugs)
• Testing is done throughout the development
cycle
• Desk-checking, or code walkthrough is
performed to locate errors in the code.
– Pretend you are the computer and execute your own code.
• Ultimate test is to run the program to see if the
outputs are correct for the given inputs.
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Modular Programming
• Determine the major tasks that the
program must accomplish. Each of these
tasks will be a module.
• Some modules will be complex
themselves, and they will be broken into
sub-modules, and those sub-modules may
also be broken into even smaller modules.
• This is called top-down design
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Mapping Modules
Inputs
Processes
Input Variables: Rate of Interest:
Outputs
Display:
Principal
Set Rate =
Write
PercentageRate PercentageRate/100 FinalValue
Term
Final Value:
Frequency
Set FinalValue = Principal *
(1 + Rate / Frequency) ^
(Frequency * Term)
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Code Modules
• A module is an independent, selfcontained section of code that performs a
single task.
• The main module is the module that
drives the application. It “controls” all
other modules. Typically, the main module
calls other modules in order to have them
perform certain tasks.
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Program Control & Modules
• When the main module calls another
module, program control transfers to the
called module. Program control cedes back
to the main module when the called
module finishes.
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Main module
Display program title and brief description of program
Call Input Data Module
Call Perform Calculations module
Call Output Results Module
End Program
Input Data module
Prompt for Principal, PercentageRate, Term, Frequency
Input Principal, PercentageRate, Term, Frequency
End module
Perform Calculations module
Set Rate = PercentageRate / 100
Set FinalValue = Principal * (1 + Rate / Frequency) ^ (Frequency * Term)
End module
Output Results Module
Write Principal, PercentageRate, Term, Frequency
Write FinalValue
End module
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Hierarchy Chart (HIPO Chart)
• A HIPO Chart (“Hierarchy of Inputs,
Processes & Outputs”) is similar to an
organization chart – it shows what
modules exist and how they are related.
• It’s a good idea to keep modules short –
about 1 page per module.
• We will have very small modules while
getting comfortable using these tools.
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
HIPO Chart for
Brewster’s Thousands Example
Main
Module
Input
Data
Perform
Calculations
Output
Results
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Coding
• Coding is done in a specific programming
language. In this part of the course, we will use
pseudocode. Later, we’ll adapt our pseudocode
to write in JavaScript.
• Coding before finishing a solid algorithm is a lot
like putting the cart before the horse and usually
spells disaster. Time well-spent in the design
phase will head off problems in coding!
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Documentation
• Internal Documentation
– Comments explain to the reader the logic and
decision processes of the programmer. Comments are
ignored by an interpreter or compiler.
– Types of comments include code comments,
documentation comments & module comments.
• External Documentation
– External documentation includes a user’s guide and,
typically, a more technical system administrator’s
guide.
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Testing
• Most of the work should be done before the
phase begins – creating of a testing document.
• Two types of testing:
– Testing for errors
– Quality/Usability testing
• Two phases of testing:
– Alpha testing (Internal testing)
– Beta testing (Testing at the customer site w/ live data)
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Types of Errors
• Syntax – wrong grammar, i.e., breaking the rules
of how to write the language
– Forgetting punctuation, misspelling keyword
– The program will not run at all with syntax errors
• Logic - the program runs, but does not produce
the expected results.
– Using an incorrect formula, incorrect sequence of
statements, etc.
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Structured Programming
• A method for designing and coding
programs in a systematic, organized
manner.
• It combines the principles of top-down
design, modularity and the use of the
three accepted control structures of
sequence, repetition and selection.
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Control Structures
• Sequence –in sequential order.
– The simplest of control structures – start at
the beginning and continue in sequential
order.
• Selection – selectively execute
statements
– Called a branch, it requires a condition to
determine when to execute statements.
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Control Structures
• Repetition – repeat statements more
than once
– Called a loop, it needs a stop condition, I.e,
the program will continue to loop until some
condition is met.
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Event-Driven Programming
• In an event-driven program, the flow of
control is based on the user’s clicking on menus
and buttons, etc. These user actions are called
events.
• Event-driven programming still uses the basic
principles of structured programming – program
modules, control structures, good programming
style, and program testing.
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Questions?
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Resources
• Venit, Stewart. Extended Prelude to
Programming: Concepts and Design.
Scott/Jones, Inc., 2002.
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Download