![Page 1: Seungkyu Lee - khu.ac.krcvlab.khu.ac.kr/Lecture2.pdf · 2014-03-16 · Lecture #2 - Chapter 1 Seungkyu Lee Assistant Professor, Dept. of Computer Engineering Kyung Hee University](https://reader034.vdocuments.net/reader034/viewer/2022042108/5e87da8536d28f0c8d22c71f/html5/thumbnails/1.jpg)
[CSE10200] Programming Basis
(프로그래밍 기초)
Lecture #2 - Chapter 1
Seungkyu Lee
Assistant Professor, Dept. of Computer Engineering
Kyung Hee University
![Page 2: Seungkyu Lee - khu.ac.krcvlab.khu.ac.kr/Lecture2.pdf · 2014-03-16 · Lecture #2 - Chapter 1 Seungkyu Lee Assistant Professor, Dept. of Computer Engineering Kyung Hee University](https://reader034.vdocuments.net/reader034/viewer/2022042108/5e87da8536d28f0c8d22c71f/html5/thumbnails/2.jpg)
Computer Systems
![Page 3: Seungkyu Lee - khu.ac.krcvlab.khu.ac.kr/Lecture2.pdf · 2014-03-16 · Lecture #2 - Chapter 1 Seungkyu Lee Assistant Professor, Dept. of Computer Engineering Kyung Hee University](https://reader034.vdocuments.net/reader034/viewer/2022042108/5e87da8536d28f0c8d22c71f/html5/thumbnails/3.jpg)
Computer Hardware
![Page 4: Seungkyu Lee - khu.ac.krcvlab.khu.ac.kr/Lecture2.pdf · 2014-03-16 · Lecture #2 - Chapter 1 Seungkyu Lee Assistant Professor, Dept. of Computer Engineering Kyung Hee University](https://reader034.vdocuments.net/reader034/viewer/2022042108/5e87da8536d28f0c8d22c71f/html5/thumbnails/4.jpg)
Computer Software
![Page 5: Seungkyu Lee - khu.ac.krcvlab.khu.ac.kr/Lecture2.pdf · 2014-03-16 · Lecture #2 - Chapter 1 Seungkyu Lee Assistant Professor, Dept. of Computer Engineering Kyung Hee University](https://reader034.vdocuments.net/reader034/viewer/2022042108/5e87da8536d28f0c8d22c71f/html5/thumbnails/5.jpg)
Types of software
![Page 6: Seungkyu Lee - khu.ac.krcvlab.khu.ac.kr/Lecture2.pdf · 2014-03-16 · Lecture #2 - Chapter 1 Seungkyu Lee Assistant Professor, Dept. of Computer Engineering Kyung Hee University](https://reader034.vdocuments.net/reader034/viewer/2022042108/5e87da8536d28f0c8d22c71f/html5/thumbnails/6.jpg)
Software
![Page 7: Seungkyu Lee - khu.ac.krcvlab.khu.ac.kr/Lecture2.pdf · 2014-03-16 · Lecture #2 - Chapter 1 Seungkyu Lee Assistant Professor, Dept. of Computer Engineering Kyung Hee University](https://reader034.vdocuments.net/reader034/viewer/2022042108/5e87da8536d28f0c8d22c71f/html5/thumbnails/7.jpg)
1.4
Computing Environments
![Page 8: Seungkyu Lee - khu.ac.krcvlab.khu.ac.kr/Lecture2.pdf · 2014-03-16 · Lecture #2 - Chapter 1 Seungkyu Lee Assistant Professor, Dept. of Computer Engineering Kyung Hee University](https://reader034.vdocuments.net/reader034/viewer/2022042108/5e87da8536d28f0c8d22c71f/html5/thumbnails/8.jpg)
Personal computing environment
![Page 9: Seungkyu Lee - khu.ac.krcvlab.khu.ac.kr/Lecture2.pdf · 2014-03-16 · Lecture #2 - Chapter 1 Seungkyu Lee Assistant Professor, Dept. of Computer Engineering Kyung Hee University](https://reader034.vdocuments.net/reader034/viewer/2022042108/5e87da8536d28f0c8d22c71f/html5/thumbnails/9.jpg)
Time-sharing environment
![Page 10: Seungkyu Lee - khu.ac.krcvlab.khu.ac.kr/Lecture2.pdf · 2014-03-16 · Lecture #2 - Chapter 1 Seungkyu Lee Assistant Professor, Dept. of Computer Engineering Kyung Hee University](https://reader034.vdocuments.net/reader034/viewer/2022042108/5e87da8536d28f0c8d22c71f/html5/thumbnails/10.jpg)
Time-sharing environment
![Page 11: Seungkyu Lee - khu.ac.krcvlab.khu.ac.kr/Lecture2.pdf · 2014-03-16 · Lecture #2 - Chapter 1 Seungkyu Lee Assistant Professor, Dept. of Computer Engineering Kyung Hee University](https://reader034.vdocuments.net/reader034/viewer/2022042108/5e87da8536d28f0c8d22c71f/html5/thumbnails/11.jpg)
Distributed computing
![Page 12: Seungkyu Lee - khu.ac.krcvlab.khu.ac.kr/Lecture2.pdf · 2014-03-16 · Lecture #2 - Chapter 1 Seungkyu Lee Assistant Professor, Dept. of Computer Engineering Kyung Hee University](https://reader034.vdocuments.net/reader034/viewer/2022042108/5e87da8536d28f0c8d22c71f/html5/thumbnails/12.jpg)
Computer language evolution
![Page 13: Seungkyu Lee - khu.ac.krcvlab.khu.ac.kr/Lecture2.pdf · 2014-03-16 · Lecture #2 - Chapter 1 Seungkyu Lee Assistant Professor, Dept. of Computer Engineering Kyung Hee University](https://reader034.vdocuments.net/reader034/viewer/2022042108/5e87da8536d28f0c8d22c71f/html5/thumbnails/13.jpg)
Why We Need High-Level Language
• Machine language: A binary-based language that a machine can understand
– Not human friendly
– Hardware dependent
![Page 14: Seungkyu Lee - khu.ac.krcvlab.khu.ac.kr/Lecture2.pdf · 2014-03-16 · Lecture #2 - Chapter 1 Seungkyu Lee Assistant Professor, Dept. of Computer Engineering Kyung Hee University](https://reader034.vdocuments.net/reader034/viewer/2022042108/5e87da8536d28f0c8d22c71f/html5/thumbnails/14.jpg)
Why We Need High-Level Language
• Assembly language: a one–to–one correspondence from a binary machine instruction to a more human-friendly mnemonics.
– Still quite hard for human programmers to develop big, structured program.
– Still hardware dependent
![Page 15: Seungkyu Lee - khu.ac.krcvlab.khu.ac.kr/Lecture2.pdf · 2014-03-16 · Lecture #2 - Chapter 1 Seungkyu Lee Assistant Professor, Dept. of Computer Engineering Kyung Hee University](https://reader034.vdocuments.net/reader034/viewer/2022042108/5e87da8536d28f0c8d22c71f/html5/thumbnails/15.jpg)
Why We Need High-Level Language
• High level language
– Getting away from hardware one code can be used for many different computers
– Strong abstraction from the details of the computer higher programming efficiency
– Natural language element easier to understand
![Page 16: Seungkyu Lee - khu.ac.krcvlab.khu.ac.kr/Lecture2.pdf · 2014-03-16 · Lecture #2 - Chapter 1 Seungkyu Lee Assistant Professor, Dept. of Computer Engineering Kyung Hee University](https://reader034.vdocuments.net/reader034/viewer/2022042108/5e87da8536d28f0c8d22c71f/html5/thumbnails/16.jpg)
The only language understood by a
computer is machine language.
Note:
![Page 17: Seungkyu Lee - khu.ac.krcvlab.khu.ac.kr/Lecture2.pdf · 2014-03-16 · Lecture #2 - Chapter 1 Seungkyu Lee Assistant Professor, Dept. of Computer Engineering Kyung Hee University](https://reader034.vdocuments.net/reader034/viewer/2022042108/5e87da8536d28f0c8d22c71f/html5/thumbnails/17.jpg)
Building a C++ program
![Page 18: Seungkyu Lee - khu.ac.krcvlab.khu.ac.kr/Lecture2.pdf · 2014-03-16 · Lecture #2 - Chapter 1 Seungkyu Lee Assistant Professor, Dept. of Computer Engineering Kyung Hee University](https://reader034.vdocuments.net/reader034/viewer/2022042108/5e87da8536d28f0c8d22c71f/html5/thumbnails/18.jpg)
Building a C++ program
![Page 19: Seungkyu Lee - khu.ac.krcvlab.khu.ac.kr/Lecture2.pdf · 2014-03-16 · Lecture #2 - Chapter 1 Seungkyu Lee Assistant Professor, Dept. of Computer Engineering Kyung Hee University](https://reader034.vdocuments.net/reader034/viewer/2022042108/5e87da8536d28f0c8d22c71f/html5/thumbnails/19.jpg)
Executing programs
My Exe.
Main memory
![Page 20: Seungkyu Lee - khu.ac.krcvlab.khu.ac.kr/Lecture2.pdf · 2014-03-16 · Lecture #2 - Chapter 1 Seungkyu Lee Assistant Professor, Dept. of Computer Engineering Kyung Hee University](https://reader034.vdocuments.net/reader034/viewer/2022042108/5e87da8536d28f0c8d22c71f/html5/thumbnails/20.jpg)
System development model
![Page 21: Seungkyu Lee - khu.ac.krcvlab.khu.ac.kr/Lecture2.pdf · 2014-03-16 · Lecture #2 - Chapter 1 Seungkyu Lee Assistant Professor, Dept. of Computer Engineering Kyung Hee University](https://reader034.vdocuments.net/reader034/viewer/2022042108/5e87da8536d28f0c8d22c71f/html5/thumbnails/21.jpg)
Program Development Process
1. Understand the problem
2. Develop a solution
3. Write a program
4. Test the program
![Page 22: Seungkyu Lee - khu.ac.krcvlab.khu.ac.kr/Lecture2.pdf · 2014-03-16 · Lecture #2 - Chapter 1 Seungkyu Lee Assistant Professor, Dept. of Computer Engineering Kyung Hee University](https://reader034.vdocuments.net/reader034/viewer/2022042108/5e87da8536d28f0c8d22c71f/html5/thumbnails/22.jpg)
An old programming proverb:
Resist the temptation to code.
Note:
![Page 23: Seungkyu Lee - khu.ac.krcvlab.khu.ac.kr/Lecture2.pdf · 2014-03-16 · Lecture #2 - Chapter 1 Seungkyu Lee Assistant Professor, Dept. of Computer Engineering Kyung Hee University](https://reader034.vdocuments.net/reader034/viewer/2022042108/5e87da8536d28f0c8d22c71f/html5/thumbnails/23.jpg)
1. Understand the Problem
Calculate the square meters of your house.
What is the definition of square meter? How is the square meter going to be used? -for insurance purposes? -to paint ? … Is the garage included? -…
![Page 24: Seungkyu Lee - khu.ac.krcvlab.khu.ac.kr/Lecture2.pdf · 2014-03-16 · Lecture #2 - Chapter 1 Seungkyu Lee Assistant Professor, Dept. of Computer Engineering Kyung Hee University](https://reader034.vdocuments.net/reader034/viewer/2022042108/5e87da8536d28f0c8d22c71f/html5/thumbnails/24.jpg)
2. Develop a Solution
• Structure chart
– Hierarchy chart
– Each step will be a separate module.
![Page 25: Seungkyu Lee - khu.ac.krcvlab.khu.ac.kr/Lecture2.pdf · 2014-03-16 · Lecture #2 - Chapter 1 Seungkyu Lee Assistant Professor, Dept. of Computer Engineering Kyung Hee University](https://reader034.vdocuments.net/reader034/viewer/2022042108/5e87da8536d28f0c8d22c71f/html5/thumbnails/25.jpg)
2. Develop a Solution
Algorithm Calculate Bathrooms 1 prompt user and read linoleum price 2 prompt user and read number of bathrooms 3 set total bath areas and baths processed to
zero 4 while ( baths processed < number of
bathrooms) 1 prompt user and read bath length and
width 2 total bath area =
3 total bath area + bath length * bath width
4 add 1 to baths processed 5 end while 6 bath cost = total bath area * linoleum price 7 return bath cost 8 end Algorithm Calculate Bathrooms
Pseudocode
A precise algorithmic
description of program
logic
Flowchart
Graphical version of
pseudocode
![Page 26: Seungkyu Lee - khu.ac.krcvlab.khu.ac.kr/Lecture2.pdf · 2014-03-16 · Lecture #2 - Chapter 1 Seungkyu Lee Assistant Professor, Dept. of Computer Engineering Kyung Hee University](https://reader034.vdocuments.net/reader034/viewer/2022042108/5e87da8536d28f0c8d22c71f/html5/thumbnails/26.jpg)
3. Write a Program
• Writing and editing programs
– Text editor
– Source file
• Compiling programs
– Compiler: preprocessor/translator
• Linking programs
– The linker assembles all of functions (source and system’s) into final executable program.
26/37
![Page 27: Seungkyu Lee - khu.ac.krcvlab.khu.ac.kr/Lecture2.pdf · 2014-03-16 · Lecture #2 - Chapter 1 Seungkyu Lee Assistant Professor, Dept. of Computer Engineering Kyung Hee University](https://reader034.vdocuments.net/reader034/viewer/2022042108/5e87da8536d28f0c8d22c71f/html5/thumbnails/27.jpg)
4. Test the Program
• Blockbox Test
• Whitebox Test
![Page 28: Seungkyu Lee - khu.ac.krcvlab.khu.ac.kr/Lecture2.pdf · 2014-03-16 · Lecture #2 - Chapter 1 Seungkyu Lee Assistant Professor, Dept. of Computer Engineering Kyung Hee University](https://reader034.vdocuments.net/reader034/viewer/2022042108/5e87da8536d28f0c8d22c71f/html5/thumbnails/28.jpg)
4. Test the Program
• Specification errors
– When the problem definition is either incorrectly stated or misinterpreted.
– They should be caught during blackbox testing.
• Code errors
– Compiler error message
• Logic errors
– They can be corrected only by thorough whitebox testing.
![Page 29: Seungkyu Lee - khu.ac.krcvlab.khu.ac.kr/Lecture2.pdf · 2014-03-16 · Lecture #2 - Chapter 1 Seungkyu Lee Assistant Professor, Dept. of Computer Engineering Kyung Hee University](https://reader034.vdocuments.net/reader034/viewer/2022042108/5e87da8536d28f0c8d22c71f/html5/thumbnails/29.jpg)
One set of test data
will never completely validate a
program.
Note: