Chapter 15: Computer Programming

Download Report

Transcript Chapter 15: Computer Programming

소프트웨어 공학
1
5
PARSONS/OJA
컴퓨터
프로그래밍
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
소프트웨어 공학
1
5
15.1절 미리 보기
배울 주제:
 미국방성 표준을 사용한 “규모가 작은”
프로그램과 “규모가 큰” 프로그램의 차이
 문제 기술에 있어서 가정과 알려진 정보의 차이점
 알고리즘, 의사코드, 프로그램 코드 사이의 관계
 알고리즘을 표현하는데 사용되는 네가지 방법
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-1
Computer Concepts 3rd Edition
소프트웨어 공학
1
5
컴퓨터 프로그래밍
특정 작업을 수행하기 위해서 컴퓨터 명령들을
작성하는 과정
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-1
Computer Concepts 3rd Edition
소프트웨어 공학
1
5
소프트웨어 공학
소프트웨어의 개발, 수행, 유지 보수에 대한
체계적인 접근 방식
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-2
Computer Concepts 3rd Edition
소프트웨어 공학
1
5
소프트웨어 공학자
시스템 분석가
 정보시스템의
소프트웨어 구성요소에
초점을 맞춤
 전체 정보시스템을
계획
 소프트웨어 설계,
프로그래밍, 테스팅
N E W
PERSPECTIVES
S
E
R
I
E
S
 하드웨어, 소프트웨어,
프로시저, 인원관리,
데이터
Page 15-2
Computer Concepts 3rd Edition
소프트웨어 공학
1
5
SECTIONPREVIEW
컴퓨터 프로그래밍을 공부하는 목적은?
 일생동안 많은 컴퓨터 프로그램을 사용할
것이다.
 소프트웨어를 개발하는데 참여하는 기회를
갖게 될 수 있다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-2
Computer Concepts 3rd Edition
1
5
컴퓨터 프로그램
컴퓨터 프로그램을 작성하는 것이 어려운가?
미국방성 표준에 의하면
 규모가 작은 프로그램은 10만 라인보다 작은
프로그램
 중간 규모의 프로그램 10만에서 100라인
사이의 프로그램
 규모가 큰 프로그램 100만 라인 이상의
프로그램
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-2
Computer Concepts 3rd Edition
컴퓨터 프로그램
1
5
컴퓨터 프로그램을 작성하는 것이 어려운가?
컴퓨터는 사람들이 하는 것처럼 모호성을
처리하지 못한다.
컴퓨터 프로그래밍은 알고리즘의 기본인 문제
기술에서부터 시작한다.
알고리즘은 프로그램 명령들의 기본이다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-2
Computer Concepts 3rd Edition
컴퓨터 프로그램
1
5
컴퓨터 프로그램을 작성하는 것이 어려운가?
문제 기술
알고리즘
프로그램 명령
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-2
Computer Concepts 3rd Edition
1
5
문제 기술
피자 프로그램에 적합한 문제 기술은 무엇인가?
의문으로부터 시작해서 해결할 수 있는 문제들
어느 피자 가게가 가장 조건이 좋은가?
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Page 15-3
Figure 15-1
1
5
문제 기술
피자 프로그램에 적합한 문제 기술은 무엇인가?
문제 기술
어떤 결과나 목적에 도달하기 위하여 필요한
요소들을 정의한다.
 문제의 범위를 정의하는 가정들
 주어진 정보를 명확히 기술
 언제 문제가 해결되는지
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-3
Computer Concepts 3rd Edition
문제 기술
1
5
피자 프로그램에 적합한 문제 기술은 무엇인가?
문제 기술의 구성 요소
 가정 : 프로그램 설계를 진행하기 위하여
사실이라고 받아들여지는 것들
 주어진 정보 : 문제를 해결하기 위하여
컴퓨터에 제공되는 정보들
 결과 : 언제 프로그램이 해결되는지를
어떻게 결정할 것인가?
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-3
Computer Concepts 3rd Edition
문제 기술
1
5
피자 프로그램에 적합한 문제 기술은 무엇인가?
완벽한 문제 기술
비교한 두개의 피자가 있다고 가정할 때, 두개의
피자는 같은 토핑을 가지고 있고, 피자의 모양이
둥글거나 직사각형일 수 있다.;
주어진 가격, 모양, 두개 피자의 크기;
컴퓨터로 각 피자의 인치당 가격을 계산한 후,
평방 인치당 가격이 더 낮은지를 알려주는
메시지를 출력한다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-3
Computer Concepts 3rd Edition
1
5
문제 기술
피자 프로그램에 적합한 문제 기술은 무엇인가?
이해하기 쉽도록 문제 기술을 형식화
 가정
 주어진 정보
 계산
 출력
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-4
Computer Concepts 3rd Edition
문제 기술
1
5
피자 프로그램에 적합한 문제 기술은 무엇인가?
형식화된 문제 기술:
가정
비교할 두개의 피자 Pizza 1 과 Pizza 2가 있다고
가정
같은 토핑을 갖고 있다.
피자의 모양이 둥글거나 정사각형이다.
두 피자 중 어느 것도 직사각형이지 않다.
인치당 가격이 낮은 피자가 “조건이 좋은
피자”이다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-3
Computer Concepts 3rd Edition
문제 기술
1
5
피자 프로그램에 적합한 문제 기술은 무엇인가?
형식화된 문제 기술:
주어진 정보
두 피자의 가격은 달러이다.
피자의 모양 (원형 또는 정사각형)
피자의 사이즈는 인치 단위이다.
계산
각 피자의 평방 인치당 가격 계산
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-3
Computer Concepts 3rd Edition
문제 기술
1
5
피자 프로그램에 적합한 문제 기술은 무엇인가?
형식화된 문제 기술:
출력
Pizza1이 조건이 더 좋다: Pizza 1의 평방 인치당
더 낮은 가격을 가지면
Pizza2의 조건이 더 좋다 : Pizza 2의 평방 인치당
더 낮은 가격을 가지면
두 피자의 조건이 같다 : 두 피자의 인치당
가격이 같으면
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-3
Computer Concepts 3rd Edition
알고리즘
1
5
피자 문제에 대해서 알고리즘을 어떻게 조직할 것인가?
알고리즘:문제 기술에 명시된 주어진
정보로부터 출발해서 해답에 도달하기 위해
정보들을 다루는 방법을 설명하는 단계들의
집합
 추상화된 생각이다.
 기록될 수 있다.
 세부사항은 사용되어지는 프로그래밍 언어에
좌우된다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-5
Computer Concepts 3rd Edition
알고리즘
1
5
피자 문제에 대해서 알고리즘을 어떻게 조직할 것인가?
중요 사항
만약 정확하게 형식화된 알고리즘의 제
단계를 따른다면, 알고리즘에 설계된 작업이
정확히 수행되는 것을 보장 받는다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-5
Computer Concepts 3rd Edition
알고리즘
1
5
피자 문제에 대해서 알고리즘을 어떻게 조직할 것인가?
BASIC 프로그램을 위한 알고리즘의 여러
기능들
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Page 15-5
Figure 15-2
알고리즘
1
5
피자 문제에 대해서 알고리즘을 어떻게 조직할 것인가?
평방 인치당 가격을 계산하는 알고리즘
정사각형 피자의
면적을 구하기
위해서는
size1*size1의
식을 사용한다.
둥근 피자의
면적을 구하기
위해서는 2 을
사용한다.
피자의 면적을 알고난 후, 평방 인치당
가격을 계산
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Page 15-6
Figure 15-3
알고리즘 표현
1
5
알고리즘을 표현하기 위해 가장 적합한 방법은 무엇인가?
알고리즘 표현 방법:
 구조화된 영어
 의사코드
 흐름도
 객체 정의
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-8
Computer Concepts 3rd Edition
1
5
알고리즘 표현
알고리즘을 표현하기 위해 가장 적합한 방법은 무엇인가?
피자 문제를 위한 구조화된 영어 표현
초기 정보
첫번재 피자의 평방
인치당 가격 계산
2번째 피자에
대한 초기 정보
두번재 피자의 평방
인치당 가격 계산
결과
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Page 15-7
Figure 15-4
알고리즘 표현
1
5
알고리즘을 표현하기 위해 가장 적합한 방법은 무엇인가?
 구조화된 영어 : 처리 작업을 표현할 수 있는
제한된 문장 구조를 가지는 영어의 일부분
 의사코드 : 알고리즘의 개념적 표현
 영어와 가장 친숙한 프로그래밍 언어와의 혼합
 구조화된 영어보다 덜 정형화됨
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-8
Computer Concepts 3rd Edition
알고리즘 표현
1
5
알고리즘을 표현하기 위해 가장 적합한 방법은 무엇인가?
피자
프로그램을
위한 의사코드
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Page 15-8
Figure 15-5
알고리즘 표현
1
5
알고리즘을 표현하기 위해 가장 적합한 방법은 무엇인가?
흐름도 : 어떤 임무를 수행할 때 하나의
명령으로부터 다른 명령으로 진행하는 단계를
도식화한 표현
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-8
Computer Concepts 3rd Edition
알고리즘 표현
1
5
알고리즘을 표현하기 위해 가장 적합한 방법은 무엇인가?
시작 또는
종료
입력 또는 출력
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Key to
flowchart
symbols
Page 15-9
Figure 15-6
알고리즘 표현
1
5
알고리즘을 표현하기 위해 가장 적합한 방법은 무엇인가?
계산
연결자
Key to
flowchart
symbols
흐름선
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Page 15-9
Figure 15-6
알고리즘 표현
1
5
알고리즘을 표현하기 위해 가장 적합한 방법은 무엇인가?
피자
프로그램을
위한 흐름도
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Animation
Page 15-9
Figure 15-6
알고리즘 표현
1
5
알고리즘을 표현하기 위해 가장 적합한 방법은 무엇인가?
객체 정의 : 각각의 객체를 다루기 위한
알고리즘을 표현하기 위해서, 객체지향
프로그래밍에서 사용되는 방법
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-10
Computer Concepts 3rd Edition
알고리즘 표현
1
5
알고리즘을 표현하기 위해 가장 적합한 방법은 무엇인가?
피자 프로그램을 위한 객체 정의
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Page 15-10
Figure 15-7
소프트웨어 공학
1
5
퀴즈
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Page 15-10
1
5
퀴즈
1.
여러분이 만약______의 직업을 가지고
있다면, 정보 시스템의 소프트웨어
구성요소에 관심을 가질 것이다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
1
5
퀴즈
1.
여러분이 만약__소프트웨어 공학자__의
직업을 가지고 있다면, 정보 시스템의
소프트웨어 구성요소에 관심을 가질 것이다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
1
5
퀴즈
2.
미국의 국방부에서는 “규모가 큰” 프로그램을
10만라인 정도의 프로그램이라고 정의하였다.
(예, 아니오)?
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
1
5
퀴즈
2.
미국의 국방부에서는 “규모가 큰” 프로그램을
10만라인 정도의 프로그램이라고 정의하였다.
아니오
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
1
5
퀴즈
3.
컴퓨터 프로그램을 작성하기 전, _________를(을)
작성하는 것은 특정 결과 또는 목적을 달성하기
위해 다뤄져야 하는 구성요소들을 정의하는
작업이다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
1
5
퀴즈
3.
컴퓨터 프로그램을 작성하기 전, __문제 기술__을
작성하는 것은 특정 결과 또는 목적을 달성하기
위해 다뤄져야 하는 구성요소들을 정의하는
작업이다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
1
5
퀴즈
4.
____________는(은) 임무를 수행하거나 문제를
해결하기 위한 단계들의 집합을 의미한다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
1
5
퀴즈
4.
__알고리즘__은 임무를 수행하거나 문제를
해결하기 위한 단계들의 집합을 의미한다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
1
5
퀴즈
5.
“영어와 개개인에 친숙한 프로그래밍
언어의 혼합”으로 알고리즘을 기술하는
방식은 ____________이다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
1
5
퀴즈
5.
“영어와 개개인에 친숙한 프로그래밍 언어의
혼합”으로 알고리즘을 기술하는 방식은
__흐름도 __이다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
소프트웨어 공학
1
5
15.1절 끝
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
컴퓨터 프로그램의 코딩
1
5
PARSONS/OJA
컴퓨터
프로그래밍
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Coding Computer Programs
1
5
15.2절 미리 보기
배울 주제 :
 간단한 BASIC 프로그램을 통한 제어구조의
정의
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-1
Computer Concepts 3rd Edition
Coding Computer Programs
1
5
SECTIONPREVIEW
프로그램 명세 : 문제 기술을 하는
도큐먼트(document), 프로그램을 위한
청사진을 구성하는 알고리즘(algorithm).
코딩 : 컴퓨터 언어를 이용하여 알고리즘을
표현하는 과정
컴퓨터 프로그래머 : 컴퓨터 프로그램을
코딩하는 사람
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-11
Computer Concepts 3rd Edition
Coding Computer Programs
1
5
주의 사항
BASIC 언어를 이용하여
피자(pizza)알고리즘의 코딩은 일련의
명령어들을 타이핑하는 것이 필요함
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-11
Computer Concepts 3rd Edition
1
5
컴퓨터 프로그램의 코딩
피자 알고리즘에
대한 BASIC 코드는
단계들의 리스트임
데이터는 변수에
저장됨
명령어는 bold체로
보여짐
REM 기술은 각각의
section을 설명함
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Page 15-11
Figure 15-8
프로그램 순서
1
5
명령을 실행하는 순서를 컴퓨터에게 어떻게 전달할 수
있을까?
순차 실행 : 프로그래머에 의해 기술된
순서대로 각각의 명령어를 수행하는
것으로 일반적인 프로그램 실행 방식
LAB
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Visual Programming
Page 15-12
프로그램 순서
1
5
명령을 실행하는 순서를 컴퓨터에게 어떻게 전달할 수
있을까?
순차
프로그램
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
수행
Page 15-12
Figure 15-9
1
5
프로그램 순서
명령을 실행하는 순서를 컴퓨터에게 어떻게 전달할 수
있을까?
제어 구조 : 프로그램이 실행되는 순서를
지정하고, 다음을 포함하는 명령어
 순차제어(sequence controls)
 선택제어(selection controls)
 반복제어(repetition controls)
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-12
Computer Concepts 3rd Edition
순차 제어
1
5
컵퓨터가 다른 순서를 따르도록 하는 방법이 있을까?
순차 제어 : 프로그램 내에서 컴퓨터가
프로그램의 다른 곳에 있는 명령어를
수행하도록 함
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-12
Computer Concepts 3rd Edition
순차 제어
1
5
컴퓨터가 다른 순서를 따르도록 하는 방법이 있을까?
1.
GOTO의 실행
GOTO의
결과로서
컴퓨터는
실행순서르
widget로 점프
2.
3.
4.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Page 15-13
Figure 15-10
순차 제어
1
5
컴퓨터가 다른 순서를 따르도록 하는 방법이 있을까?
중요 사항
가장 간단한 제어임에도 불구하고 숙련된
프로그래머들은 GOTO를 거의 사용하지 않음
이유 : 프로그램을 이해하기 어렵고
유지보수하기 어렵게 만든다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-14
Computer Concepts 3rd Edition
순차 제어
1
5
컴퓨터가 다른 순서를 따르도록 하는 방법이 있을까?
다른 순차 제어:
서브루틴(subroutines)
프로시저(procedures)
모
듈(modules)
함
수(functions)
프로그램의 일부인 코드의 구역이지만, 메인의
순차적 실행 경로에는 포함되지 않음
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-14
Computer Concepts 3rd Edition
1
5
순차 제어
컴퓨터가 다른 순서를 따르도록 하는 방법이 있을까?
GOSUB
명령의 실행
1. 컴퓨터가 GOSUB 명령에 도달할 때까지
계속 명령어 실행
2. GOSUB는 컴퓨터가 “checkinput”의
서브루틴으로 전이 되도록함
4. 컴퓨터는 GOSUB 다음의 명령을 수행
3. RETURN은 다시 메인 프로그램으로 돌아가게 함
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Page 15-14
Figure 15-11
1
5
선택 제어
컴퓨터가 프로그램을 실행함으로써 의사결정을 내릴 수 있을까?
선택제어(분기) 컴퓨터에게 조건이 참인지
거짓인지에 따라 무엇을 해야 할지를 알려줌
간단한 예제는 IF...THEN...ELSE 명령어
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-15
Computer Concepts 3rd Edition
1
5
선택 제어
컴퓨터가 프로그램을 실행함으로써 의사결정을 내릴 수 있을까?
IF-THENELSE
명령의 실행
1.
2.
3.
4.
5.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Page 15-15
Figure 15-12
1
5
반복 제어
컴퓨터가 일련의 명령어들을 한 번 이상 실행할 수 있을까?
반복 제어(루프 또는반복) 특정한 조건을 만날
때까지 명령들을 한 번 이상 반복 수행
간단한 예제는 FOR...NEXT 명령어
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Page 15-16
1
5
반복 제어
컴퓨터가 일련의 명령어들을 한 번 이상 실행할 수 있을까?
루프의 실행
1.
2. 3. 4.
5.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Page 15-16
15-15
15-12
Figure 15-13
반복 제어
1
5
컴퓨터가 일련의 명령어들을 한 번 이상 실행할 수 있을까?
FOR...NEXT 명령어의 실행
For N=1 TO 3
Print “There is no place like home.”
NEXT N
END
N
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
screen output
Page 15-16
Page 15-17
Figure 15-13
반복 제어
1
5
컴퓨터가 일련의 명령어들을 한 번 이상 실행할 수 있을까?
For N=1 TO 3
Print “There is no place like home.”
NEXT N
END
N=1
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
There is no place like home.
Page 15-16
Page 15-17
Figure 15-13
반복 제어
1
5
컴퓨터가 일련의 명령어들을 한 번 이상 실행할 수 있을까?
For N=1 TO 3
Print “There is no place like home.”
NEXT N
END
N=2
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
There is no place like home.
Page 15-16
Page 15-17
Figure 15-13
반복 제어
1
5
컴퓨터가 일련의 명령어들을 한 번 이상 실행할 수 있을까?
For N=1 TO 3
Print “There is no place like home.”
NEXT N
END
N=3
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
There is no place like home.
Page 15-16
Page 15-17
Figure 15-13
반복 제어
1
5
컴퓨터가 일련의 명령어들을 한 번 이상 실행할 수 있을까?
For N=1 TO 3
Print “There is no place like home.”
NEXT N
END
N=4
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Page 15-16
Page 15-17
Figure 15-13
컴퓨터 프로그램의 코딩
1
5
퀴즈
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Page 15-17
1
5
퀴즈
1.
_________________ 은 알고리즘을
표현하기 위해 컴퓨터 언어를 사용하는
과정이다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
1
5
퀴즈
1.
__프로그래밍, 코딩__는(은) 알고리즘을
표현하기 위해 컴퓨터 언어를 사용하는
과정이다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
1
5
퀴즈
2.
____________ 제어는 명령어들이 프로그램
실행을 그 프로그램 내의 다른 곳의 명령으로
전환에 의해 실행되는 순서를 변경한다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
1
5
퀴즈
2.
__순차(sequence) __ 제어는 명령어들이
프로그램 실행을 그 프로그램 내의 다른 곳의
명령으로 전환에 의해 실행되는 순서를
변경한다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
1
5
퀴즈
3.
____________ 구조는 어떠한 조건이 참인지
거짓인지에 의해 컴퓨터가 무엇을 해야
하는지를 알려 준다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
1
5
퀴즈
3.
__의사결정, 선택제어(decision) __ 구조는
어떠한 조건이 참인지 거짓인지에 의해
컴퓨터가 무엇을 해야 하는지를 알려 준다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
1
5
퀴즈
4.
_________________ 구조는 특정 조건을 만족할
때까지 명령어들을 한번 이상 반복 수행한다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
1
5
퀴즈
4.
__반복(repetition) 제어__ 구조는 특정 조건을
만족할 때까지 명령어들을 한번 이상 반복
수행한다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
1
5
퀴즈
5.
가장 간단한 제어임에도 불구하고, 프로그램의
이해와 유지보수를 어렵게 하기 때문에 GOTO는
숙련된 프로그래머들에 의해 거의 사용되지
않는다.
(예, 아니오)?
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
1
5
퀴즈
5.
가장 간단한 제어임에도 불구하고, 프로그램의
이해와 유지보수를 어렵게 하기 때문에 GOTO는
숙련된 프로그래머들에 의해 거의 사용되지
않는다.
예
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
컴퓨터 프로그램의 코딩
1
5
15.2절 끝
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
디버깅과 문서화
1
5
PARSONS/OJA
컴퓨터 프로그래밍
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
디버깅과 문서화
1
5
15.3절 미리 보기
배울 주제:
 프로그램 문서화, 주석, 사용자 참조의 목적을
설명할 수 있다.
 문법 오류와 논리 오류의 차이점을 설명할 수
있다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-1
Computer Concepts 3rd Edition
디버깅과 문서화
1
5
SECTIONPREVIEW
프로그램의 디버깅: 코드의 각 부분이 정확히
동작하는지 테스트
프로그램의 문서화: 프로그램이 어떻게
동작하는지 코딩하는 동안 기록을 작성
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-18
Computer Concepts 3rd Edition
프로그램의 테스트
1
5
프로그램이 올바르게 작동하는지를 어떻게 아는가?
프로그램의 코딩작업 이후의 테스트 작업은
 중요한 단계이다.
 프로그램이 올바르게 작동한다는 것을
보증한다.
 올바른 결과를 얻을 수 있다는 것을 검증한다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-18
Computer Concepts 3rd Edition
프로그램의 테스트
1
5
프로그램이 올바르게 작동하는지를 어떻게 아는가?
디버깅, 코딩, 그리고 테스트는 실패할 수도 있다….
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Video
Page 15-18
Figure 15-14
프로그램의 테스트
1
5
프로그램이 올바르게 작동하는지를 어떻게 아는가?
반드시 테스트 할 것
 각 문장은 적어도 한번 테스트
 모든 의사결정 지점 테스트
 한 개 이상의 값을 이용하여 테스트
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-18
Computer Concepts 3rd Edition
프로그램의 테스트
1
5
프로그램이 올바르게 작동하는지를 어떻게 아는가?
발생가능한 오류의 종류:
 구문 오류
 실행시간 오류
 논리 오류
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-18
Computer Concepts 3rd Edition
프로그램의 테스트
1
5
프로그램이 올바르게 작동하는지를 어떻게 아는가?
구문 오류 : 명령어가 구문 규칙이나 문법에
맞지 않을 때 발생
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-19
Computer Concepts 3rd Edition
프로그램의 테스트
1
5
프로그램이 올바르게 작동하는지를 어떻게 아는가?
주의 사항
구문 오류는 매우 보편적이지만, 이를
발견하고 고치기는 쉽다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-19
Computer Concepts 3rd Edition
프로그램의 테스트
1
5
프로그램이 올바르게 작동하는지를 어떻게 아는가?
보편적인 구문오류는 다음을 포함...
 명령어를 쓰지 않거나
 철자를 틀리게 쓰거나
 세미콜론(;)이 쓰여야 할 위치에 콜론(:)을
쓴다던가 하는 예처럼 구두점이 틀릴 때
발생한다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-19
Computer Concepts 3rd Edition
프로그램의 테스트
1
5
프로그램이 올바르게 작동하는지를 어떻게 아는가?
실행시간 오류 : 프로그램을 실행할 때에야 비로소
알 수 있다.
 올바른 구문을 사용했지만 의도되어진 결과가
나오지 않는 타이핑 오류 때문에 발생
 예: a < rather than a > in a program
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-19
Computer Concepts 3rd Edition
프로그램의 테스트
1
5
프로그램이 올바르게 작동하는지를 어떻게 아는가?
논리 오류 : 프로그램의 논리 또는 설계의 오류이다.
 잘못된 문제 정의 또는 흐름도나 의사코드에
의해서 해결 방법이 올바르지 않거나 충분하지
않기 때문에 발생한다.
 구문 오류보다 확인하는데 시간이 걸릴 뿐
아니라 더 어렵다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Page 15-19
프로그램의 문서화
1
5
프로그램에 문서화가 왜 필요한가?
프로그램의 문서화 : 프로그램 작동하는
방법과 사용하는 방법을 설명.
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-19
Computer Concepts 3rd Edition
프로그램의 문서화
1
5
프로그램에 문서화가 왜 필요한가?
프로그램 문서화의 두 가지 유형
 주석 프로그램 코드 안에 삽입
 문서를 작성하는 법 프로그램 외부에 문서를
작성
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-19
Computer Concepts 3rd Edition
프로그램의 문서화
1
5
프로그램에 문서화가 왜 필요한가?
주석 컴퓨터 프로그램 상에서 라인 안에 설명을
삽입...
 프로그램에서 불분명한 곳의 이해를 쉽게 한다
 프로그램이 실행되어질 때 컴퓨터에 의해 무시된다
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-19
Computer Concepts 3rd Edition
프로그램의 문서화
1
5
프로그램에 문서화가 왜 필요한가?
프로그램 관련 문서 프로그램 외부에서
프로그래머나 프로그램을 사용하는 사용자에게
유용한 정보를 포함하며, 다음을 포함:
 프로그램 설명서 : 프로그래머에게 유용한 문제
기술과 알고리즘을 포함
 참조 설명서 : 사용자가 컴퓨터 프로그램
사용법을 배우는데 유용
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-19
Computer Concepts 3rd Edition
프로그램의 문서화
1
5
프로그램에 문서화가 왜 필요한가?
프로그램 설명서
참조 설명서
문제 기술
프로그램의 기능에 대한 기술
알고리즘은 다음과 같이 표현
구조화된 영어
의사코드
흐름도
프로그램 코드의 출력
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
프로그램 설치하는 방법에 대한 소개
프로그램을 시작하는 방법에 대한 소개
각 기능들을 사용하는 방법에 대한 기술
스크린과 메뉴의 표시
문제해결을 위한 조언
문제해결을 위한 조언
Page 15-19
Figure 15-15
프로그램의 문서화
1
5
프로그램에 문서화가 왜 필요한가?
기술적 문서 저작자 : 기술적인 개념과
절차를 설명하고 비 전문적인 사용자를
위해서 복잡한 개념을 간단하게 설명한다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-21
Computer Concepts 3rd Edition
프로그램의 문서화
1
5
프로그램에 문서화가 왜 필요한가?
주의 사항
여러 대학들이 기술 문서 제작을 위한
강좌를 개설하고 기술문서 저작 학위를
수요하기도 한다. 경험이 많은 기술 문서
저작자는 컴퓨터 회사에 계약, 파트타임,
풀타임으로 고용된다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-21
Computer Concepts 3rd Edition
디버깅과 문서화
1
5
퀴즈
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Page 15-21
1
5
퀴즈
1.
프로그램이 올바른 결과를 출력하는지를 알기
위해서 알려진 데이터를 입력하는 것은
__________ 과정의 일부분이다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
1
5
퀴즈
1.
프로그램이 올바른 결과를 출력하는지를 알기
위해서 알려진 데이터를 입력하는 것은 __
테스트__ 과정의 일부분이다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
1
5
퀴즈
2.
프로그래밍 언어의 규칙 또는 문법을
무시한다면, __________ 오류가 발생할
것이다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
1
5
퀴즈
2.
프로그래밍 언어의 규칙 또는 문법을
무시한다면, __문법__ 오류가 발생할 것이다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
1
5
퀴즈
3.
____________ 오류는 일반적으로 오류를
확인하기 어렵고 시간을 많이 소비한다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
1
5
퀴즈
3.
__논리__ 오류는 일반적으로 오류를 확인하기
어렵고 시간을 많이 소비한다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
1
5
퀴즈
4.
_________________ 는 프로그램 작동법과
사용법을 설명한다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
1
5
퀴즈
4.
_문서화_는 프로그램 작동법과 사용법을 설명한다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
1
5
퀴즈
5.
____________ 설명서는 프로그래머를 위하여
사용되는 문서이고, __________ 설명서는
프로그램을 사용하는 사람들을 위하여 디자인
되었다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
1
5
퀴즈
5.
__ 프로그램 __ 설명서는 프로그래머를 위하여
사용되는 문서이고, __________ 설명서는
프로그램을 사용하는 사람들을 위하여 디자인
되었다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
1
5
퀴즈
5.
__ 프로그램 __ 설명서는 프로그래머를 위하여
사용되는 문서이고, __참조__ 설명서는 프로그램을
사용하는 사람들을 위하여 디자인 되었다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
디버깅과 문서화
1
5
15.3절 끝
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
프로그래밍 언어의 특징들
1
5
PARSONS/OJA
컴퓨터
프로그래밍
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
프로그래밍 언어의 특징들
1
5
15.4절 미리 보기
배울 주제:
 프로그래밍 언어를 구별하기 위한 주된 특징
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-1
Computer Concepts 3rd Edition
프로그래밍 언어의 특징들
1
5
프로그래밍 언어의 구별:
 상업적, 과학적 같은 프로그램의 특정한 형태
를 위한 효율적인 명령어 집합을 제공 한다.
 또 다른 것은 프로그래밍 효율성과 에러율의
감소를 위해 만들어졌다.
 어떤 것은 교육도구로써 만들어졌다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-22
Computer Concepts 3rd Edition
프로그래밍 언어의 특징들
1
5
프로그래밍 언어는 어떻게 작동하는지
설명하고, 그 언어에 적당한 컴퓨터 작업들의
유형에 대한 정보들을 제공하는 특징을 가진다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-22
Computer Concepts 3rd Edition
절차적
1
5
피자 프로그램은 절차적 언어를 사용해서 작성되었는가?
절차적 언어...
 문장의 연속으로 이루어진다.
 컴퓨터가 특정 작업을 위해 어떤 방식으로
프로세스를 작동하는지를 알려 준다.
 단계적 알고리즘에 적합하다.
 시작점과 끝점을 가진다.
 시작에서 끝까지의 실행은 선형적이다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Page 15-22
절차적
1
5
피자 프로그램은 절차적 언어를 사용해서 작성되었는가?
절차적 언어의 실행
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Page 15-22
Figure 15-16
선언적
1
5
모든 언어들은 프로그래머에게 해결 방법에 대한 완벽한
절차를 명시하도록 요구하는가?
선언적 언어
 프로그래머가 해결해야 할 문제의 조건을
정의하는 규칙과 문장을 명시.
 해결방법을 결정하고 규칙을 판단하기 위한
고유한 방법을 가진다.
 수보다 개념과 생각을 다루는 프로그램에
유용.
 해결방법을 명시하는 것보다 문제를 기술.
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-23
Computer Concepts 3rd Edition
선언적
1
5
모든 언어들은 프로그래머에게 해결 방법에 대한 완벽한
절차를 명시하도록 요구하는가?
여성을 선언
남성을 선언
관계를 기술
여동생임을
결정할 조건
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Page 15-23
Figure 15-17
선언적
1
5
모든 언어들은 프로그래머에게 해결 방법에 대한 완벽한
절차를 명시하도록 요구하는가?
주의 사항
BASIC 은 절차적 언어이고, Prolog 는
선언적 언어이다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-23
Computer Concepts 3rd Edition
1
5
스크립트 언어
HTML은 언어인가?
스크립트 언어
 스크립트 형식으로 작업을 정의
 상위 응용프로그램을 요구
 독립된 응용프로그램에서는 실행 할 수 없다.
 스프레드쉬트, 워드 프로세서 같은 많은
응용프로그램을 포함하고 있다.
 프로그래밍 언어들보다 사용하는데 더 쉽다.
 적은 기능과 제어 항목을 가진다.
 비 프로그래머에게 적합하다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-23
Computer Concepts 3rd Edition
절차적언어
1
5
HTML은 언어인가?
중요 사항
HTML 태그는 어떤 방식으로 상위 응용
프로그램 같은 뭽 브라우저를 사용 해서
웹 페이지를 표시하기 위한 스크립트를
명시한다
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-23
Computer Concepts 3rd Edition
절차적언어
1
5
HTML은 언어인가?
매크로
 워드 프로세서, 스프레드쉬트 같은 응용
프로그램에서의 자동화된 루틴
 작업을 자동화하기 위해 스크립트 언어에서
사용.
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-23
Computer Concepts 3rd Edition
저급
1
5
우리의 피자 프로그램은 PRINT와 END같은 명령어를 사용
했다. 컴퓨터는 오직 0 과 1만을 이해하지 않은가?
저급 언어 : 프로그래머에게 프로세서,
레지스터, 램의 위치를 포함하는 하드웨어의
구성요소를 명시해 주도록 요구한다.
 컴파일러, 운영체제, 장치 드라이버등의
시스템 소프트웨어를 명시하는데 사용한다.
 저급 언어의 명령어들은 프로세서의 단일
명령어와 일치한다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-24
Computer Concepts 3rd Edition
저급
1
5
우리의 피자 프로그램은 PRINT와 END같은 명령어를 사용
했다. 컴퓨터는 오직 0 과 1만을 이해하지 않은가?
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Page 15-24
Figure 15-16
저급
1
5
우리의 피자 프로그램은 PRINT와 END같은 명령어를 사용
했다. 컴퓨터는 오직 0 과 1만을 이해하지 않은가?
기계 언어 : 컴퓨터가 직접 실행할 수 있는 이진
코드를 사용한 저급언어이다.
 이해하고 다루기에 어렵다.
 다른 컴퓨터언어가 사용되기 이전 컴퓨터
개발의 초기 단계에 사용되었다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-24
Computer Concepts 3rd Edition
1
5
고급
저급 언어의 사용 대체는 무엇인가?
고급 언어 : 프로그래머가 인간의 언어와 유사한
명령어를 사용하도록 한다.
 1950년대에 고안
 구문과 논리 에러는 제거할 수 없지만 에러의 수는
감소.
 프로그램 작성시간이 줄어든다.
 컴퓨터가 수행할 수 있는 명령어로 변환해야 한다.
 컴파일되거나 인터프리트되어야 한다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-24
Computer Concepts 3rd Edition
1
5
컴파일
고급언어는 어떻게 컴퓨터가 수행할 수 있는 명렁어를
생성하는가?
컴파일러 : 프로그램이 수행되기 전에 고급언어로
쓰여진 프로그램을 저급 명령어로 바꾸낟.
 소스 코드 : 고급언어로 작성된 명령어
 목적 코드 : 소스 코드를 컴파일하여 생성된
저급 명령어
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-25
Computer Concepts 3rd Edition
컴파일
1
5
고급언어는 어떻게 컴퓨터가 수행할 수 있는 명렁어를
생성하는가?
컴파일 언어를 사용할 때, 당신은 수행할 수 있는
프로그램 코드를 생성하기 위해서 당신의
프로그램을 컴파일해야 한다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-25
Computer Concepts 3rd Edition
컴파일
1
5
고급언어는 어떻게 컴퓨터가 수행할 수 있는 명령어를
생성하는가?
언어 컴파일러
1. 소스코드는
컴파일러에 의해서
검사된다.
2. 컴파일러는
명령어들에 대해서
토큰을 생성한다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Animation
Page 15-25
Figure 15-19
컴파일
1
5
고급언어는 어떻게 컴퓨터가 수행할 수 있는 명령어를
생성하는가?
언어 컴파일러
3. 컴파일러는 토큰을
분석한다.
4. 컴파일러는 기계언어
명령어를 생성하기 위해
정보를 이용한다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Page 15-25
Figure 15-19
컴파일
1
5
고급언어는 어떻게 컴퓨터가 수행할 수 있는 명렁어를
생성하는가?
중요 사항
만약 컴파일된 프로그램에서 버그가
발견 되었다면, 프로그램을 고친 후,
테스트 하기 전에 재 컴파일해야 한다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-25
Computer Concepts 3rd Edition
인터프리터
1
5
컴파일러와 인터프리터는 어떻게 다른가?
인터프리터 언어 : 컴퓨터가 실행할 수 있는
코드를 생성하기 위해 컴파일러 대신
인터프리터를 사용한다.
인터프리터 : 프로그래밍 언어 환경의 일종인
컴퓨터 프로그램이다.
 하나의 명령어를 읽은 후, 컴퓨터가 수행할 수
있는 기계언어 명령어로 바꾼다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Page 15-26
인터프리터
1
5
컴파일러와 인터프리터는 어떻게 다른가?
언어
인터프리터
1. 인터프리터는 프로그램의
첫 번째 명렁어의 첫 단어를
검사한다.
2. 인터프리터는
유효한 명령어 리스트
에서 명령어를 찾는다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Animation
Page 15-26
Figure 15-20
1
5
인터프리터
컴파일러와 인터프리터는 어떻게 다른가?
언어
인터프리터
4. 구문이 정확하다면, 인터프리터는
명령어를 기계언어로 바꾸고
프로세서로 보낸다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
3. 명령어가 명령어 리스트
에 있다면, 명령어가 요구한
구문대로 쓰여졌는지 확인
한다.
Page 15-26
Figure 15-20
인터프리터
1
5
컴파일러와 인터프리터는 어떻게 다른가?
인터프리터 언어로 작성된 프로그램….
 수행 시간이 오래 걸린다.
 프로그램이 바뀔 때마다 재 컴파일 할 필요가
없기 때문에 테스트 시간이 짧다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Page 15-26
인터프리터
1
5
컴파일러와 인터프리터는 어떻게 다른가?
주의할 점
많은 루프를 가진 프로그램은
적합하지 않다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Page 15-26
1
5
객체지향
컴퓨터 프로그래밍에서 객체는 어떻게 나타나는가?
객체지향 언어 : 객체를 사용하는 프로그래밍에
대한 접근방법에 기초한다.
 객체 : 프로그램이 다루는 개체
 예: 화면 위의 버튼
 클래스 : 객체의 특징을 명세한 그룹
 예: 윈도우라고 불리우는 객체 클래스
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Page 15-27
객체지향
1
5
컴퓨터 프로그래밍에서 객체는 어떻게 나타나는가?
윈도우 클래스안의
두개의 객체 : Save As
와 WordPad 윈도우
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Page 15-27
Figure 15-21
객체지향
1
5
컴퓨터 프로그래밍에서 객체는 어떻게 나타나는가?
상속 : 객체가 클래스의 특징을 취할 때
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Page 15-27
사건중심
1
5
모든 프로그램은 일련의 행동을 따라가는가?
사건중심 언어 : 프로그래머가 계속 사건에 응답
하고 확인하는는 프로그램을 쉽게 생성하도록
도와준다.
프로그램 사건 : 프로그램에 응답하기위한
마우스의 클릭이나 키를 누르는 행동이나 사건.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Page 15-28
사건중심
1
5
모든 프로그램은 일련의 행동을 따라가는가?
중요 사항
GUI를 사용한 대부분의 프로그램은
사건 중심이다. 그들은 메뉴, 스크린
같은 제어기를 표시하고, 사용자가
제어기 중의 하나를 활성화시키면
이러한 행동을 받아들인다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Page 15-28
사건중심
1
5
모든 프로그램은 일련의 행동을 따라가는가?
버튼을 누르면
사건이 발생한다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Page 15-28
Figure 15-22
객체지향
1
5
컴퓨터 프로그래밍에서 객체는 어떻게 나타나는가?
중요 사항
같은 객체는 많은 다른 프로그램에서
사용되고, 프로그래머의 생산성을
현저하게 향상시켜 준다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Page 15-27
1
5
구성요소
나의 프로그램에서 사용할 객체를 누가 만드는가?
구성요소 :프로그래머가 만들어서 프로그램에 추가
한 이미 작성된 객체







Graphing
Forms
스프레드쉬트
데이타베이스 관리
온라인 도움말
3-D 그래픽
and much much more...
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Page 15-29
프로그래밍 언어의 특징들
1
5
퀴즈
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
Page 15-29
1
5
퀴즈
1.
__________ 언어는 컴퓨터에게 특정 작업을
위해 프로세스를 수행하는 방법을 알려 주는
일련의 문장으로 구성된 프로그램 을 생성
한다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
1
5
퀴즈
1.
__절차적 언어__는 컴퓨터에게 특정 작업을
위해 프로세스를 수행하는 방법을 알려 주는
일련의 문장으로 구성된 프로그램 을 생성
한다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
1
5
퀴즈
2.
__________언어는 프로그래머가 문제 해결을
위한 조건을 정의하는 규칙을 명시함으로써
프로그램을 작성하게 한다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
1
5
퀴즈
2.
__선언적__언어는 프로그래머가 문제 해결을
위한 조건을 정의하는 규칙을 명시함으로써
프로그램을 작성하게 한다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
1
5
퀴즈
3.
_______ 언어는 프로그래머가 프로세서,
레지스터, 램의 위치 같은 하드웨어의 구성
요소를 명시하기 위한 명령어 작성하도록 요구
한다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
1
5
퀴즈
3.
__저급__언어는 프로그래머가 프로세서,
레지스터, 램의 위치 같은 하드웨어의 구성
요소를 명시하기 위한 명령어 작성하도록 요구
한다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
1
5
퀴즈
4.
컴파일러 언어에서 ______________코드는
컴파일되고, 또는 컴퓨터가 수행할 목적코드로
번역 된다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
1
5
퀴즈
4.
컴파일러 언어에서 __소스__ 코드는 컴파일되고,
또는 컴퓨터가 수행할 목적코드로 번역 된다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
1
5
퀴즈
5.
몇몇 컴퓨터 프로그래밍 언어는 __________를(을)
사용하여 프로그램이 실행됨과 동시에 명령어 한
라인을 기계어로 번역한다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
1
5
퀴즈
5.
몇몇 컴퓨터 프로그래밍 언어는 __인터프리터__를
사용하여 프로그램이 실행됨과 동시에 명령어 한
라인을 기계어로 번역한다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
프로그래밍 언어의 특징들
1
5
15.4절 끝
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
프로그래밍 언어의 선택
1
5
PARSONS/OJA
컴퓨터 프로그래밍
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition
프로그래밍 언어의 선택
1
5
15.5절 미리 보기
배울 주제:
 오늘날 가장 유명한 컴퓨터 프로그래밍 언어들
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-1
Computer Concepts 3rd Edition
프로그래밍 언어의 선택
1
5
프로그래밍 언어 선택에 있어서 주의할 점:
 프로그래밍 언어의 특징이 이 작업에
적합한가?
 현재 다른 응용프로그램에서 사용되고
있는가?
 언어를 사용하는데 전문적인 지식이나 기술을
가지고 있는가?
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-30
Computer Concepts 3rd Edition
프로그래밍 언어의 선택
1
5
BASIC
 초보 프로그래머를 위해서 고안되었음
 1964년에 개발
 많은 버전들이 존재
 GW-BASIC, QBASIC, Visual Basic(VB)
 사용하기 쉽다
 대부분의 컴퓨터 시스템에 적합
 절차 중심의 고급언어
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-30
Computer Concepts 3rd Edition
프로그래밍 언어의 선택
1
5
Microsoft Visual BASIC is...
 BASIC의 새로운 버전
 포괄적이고 강력한 기능을 가짐
 GUI를 포함하는 사건 중심의 응용 프로그램을
만드는데 적합
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-30
Computer Concepts 3rd Edition
프로그래밍 언어의 선택
1
5 COBOL (COmmon Business-Oriented Language)
 메인 프레임 컴퓨터 시스템의 트랜재션
처리에 사용
 1960년에 개발
 고급 언어, 컴파일 언어, 절차 중심의 언어
 대규모 작업의 복잡한 프로그램의 개발과
유지 보수에 사용
 프로그램의 길이가 길지만 이해와 디버그,
유지 보수가 쉽다
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-30
Computer Concepts 3rd Edition
프로그래밍 언어의 선택
1
5
FORTRAN (FORmula TRANslator)
 1954년에 개발
 현재에도 사용되고 있는 가장 오래된
고급언어
 과학자들에 의해서 고안되었음
 메인 프레임이나 미니 컴퓨터에서 과학적,
수학적, 공학적인 프로그램 개발에 사용
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-30
Computer Concepts 3rd Edition
프로그래밍 언어의 선택
1
5
Pascal
 1971년에 학생들이 컴퓨터 프로그래밍을
공부하는데 도움을 주기 위해서 개발
 고급언어, 컴파일 언어, 절차 중심의 언어
 전문적이고 상업적인 응용 프로그램 개발에는
사용되지 않았음
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-30
Computer Concepts 3rd Edition
프로그래밍 언어의 선택
1
5
C
 고급 언어와 하드웨어에 접근할 수 있는
저급언어를 제공하는 컴파일 언어
 프로그램을 빠르고 효율적으로 만들 수 있는
유연성 있는 언어
 이해, 디버깅 그리고 유지 보수가 어려움
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-30
Computer Concepts 3rd Edition
프로그래밍 언어의 선택
1
5
C++
 C에 객체 지향 개념을 추가한 버전
 프로그래머에게 생산성을 증가 시켜줌
 절차 중심의 언어 보다 다양한 지적인 시각을
요구함
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-31
Computer Concepts 3rd Edition
프로그래밍 언어의 선택
1
5
LISP (LISt Processor)와 Prolog
 LISP 언어는 1960년에, Prolog는 1971년에
개발 되었음
 절차지향 언어에 비해서 널리 사용되지 않았음
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-31
Computer Concepts 3rd Edition
프로그래밍 언어의 선택
1
5
SQL (Structured Query Language)
 데이터 베이스를 다루고 정의하기 위한 표준
언어를 제공하기 위해서 개발
 고급의 선언적 언어
 프로그래머와 사용자가 데이터 요소들간의
관계를 표현할 수 있도록 허용
 데이터 베이스 기능에 적합
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-31
Computer Concepts 3rd Edition
프로그래밍 언어의 선택
1
5
Java와 J++
 객체 지향 프로그래밍 언어, 고급언어
 C++에 기초하고 있음
 웹 관련 응용 프로그램을 위해 최적화
 웹 페이지 조작을 위한 applets을 만들기
위해서 사용
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-31
Computer Concepts 3rd Edition
프로그래밍 언어의 선택
1
5
중요 사항
브라우저가 지바나 J++과 관련이 있는 웹
페이지에 연결이 되면 프로그램이 다운로드되어
컴퓨터에서 실행된다. 프로그램은 웹서버에서
실행되는 대신 개인의 컴퓨터에서 실행되기
때문에 입력을 보내고 출력결과를 받기 위해
자료를 주고받는 시간을 절약할 수 있다.
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-31
Computer Concepts 3rd Edition
프로그래밍 언어의 선택
1
5
J++
Java
 프로그래머에게
특정윈도의 특징을
지원하는 툴을 제공
 플랫폼 독립적
 윈도 운영체제에
의해서 운영되는
컴퓨터에서만 수행
 매킨토시, UNIX 뿐만
아니라 PC에서 수행
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-31
Computer Concepts 3rd Edition
프로그래밍 언어의 선택
1
5
JavaScript
 스크립트 언어
 자바 특성 중에 일부만을 제공
 HTML 태그처럼 웹 페이지에 포함
 웹 페이지를 받았을 때 웹 브라우저에 의해서
번역
 대화식 폼을 가진 웹 페이지를 만드는데 사용
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-31
Computer Concepts 3rd Edition
프로그래밍 언어의 선택
1
5
8086 assembly language
 저급 언어
 연상 코드로 구성되어 컴퓨터가 기계어로 번역
 8086 마이크로 프로세서에서만 사용
 주로 프로그래머들에 의해서 가능한 짧고
가능한 빠르게 만들 필요가 있을 때 사용
 컴퓨터 하드웨어를 제어하는 시스템
소프트웨어에 사용
N E W
PERSPECTIVES
S
E
R
I
E
S
Page 15-31
Computer Concepts 3rd Edition
프로그래밍 언어의 선택
1
5
15.5절 끝
N E W
PERSPECTIVES
S
E
R
I
E
S
Computer Concepts 3rd Edition