프로그래밍 기초

Download Report

Transcript 프로그래밍 기초

프로그래밍 기초
강원대학교 컴퓨터학부
2014년 여름
담당교수 정충교
프로그래밍 기초
강원대학교
1/37
강의 구조
• 1학기 – 프로그래밍 기초
• 2학기 – 자바 프로그래밍
프로그래밍 기초
강원대학교
2/37
교수
• http://dmrl.kangwon.ac.kr
• 담당 교수
– 정충교
• [email protected]
• 연구실 101동 503호
프로그래밍 기초
강원대학교
3/37
교재
• 주교재
– 자바프로그래밍 기초부터 하나씩
• Ralph Bravaco 등 지음, 김응성 등 번역
• 도서출판 ITC, 2010년
• 보조교재
– Big Java, 제 2판
• Cay Horstmann 저, 오세만 등 공역
• 생능출판사 (번역서)
• 아래 강좌 공통 교재
– 1학기 – 프로그래밍 기초
– 2학기 – 자바 프로그래밍
프로그래밍 기초
강원대학교
4/37
평가
• 중간: 25%, 기말: 35%, 쪽지시험과 과제:
30%, 출석: 10%
• 절대평가를 실시함 (학교의 성적 부여 정
책에 맞춰 점수 보정 가능)
• 1/3 이상 결석하는 경우 F
프로그래밍 기초
강원대학교
5/37
평가
90-100 A+
83-90 A0
75-83 B+
67-75 B0
60-67 C+
55-60 C0
50-55 D+
40-50 D0
프로그래밍 기초
강원대학교
6/37
강의 목표
•
문제에 대한 논리적 해법을 구상하고 프로그램으로 구현하는 능력을 갖춘다.
•
다양한 분야의 사례를 문제로 다룸으로써 컴퓨터 소프트웨어의 유용성을 이해하게 된다.
•
복잡한 문제를 분석하여 작은 요소로 분해하고 각 요소를 추상화하는 능력을 기른다.
•
프로그램의 기능, 입력, 전제조건, 출력을 단순하고 명확하게 설명하는 능력을 기른다.
•
컴퓨터가 데이터를 표현하고 저장하는 방법을 이해한다.
•
프로그램 개발에 필요한 기초적인 컴퓨터 명령어와 통합개발환경의 기초적 사용법을 알게 된다.
•
데이터를 조작하는 각종 연산을 사용할 수 있게 된다.
•
프로그램을 흐름을 제어하는 여러 가지 제어 문장을 사용할 수 있게 된다.
•
배열을 이용하여 많은 데이터를 하나의 이름으로 조작하는 방법을 알게 된다.
•
주어진 문제를 메소드로 작성할 수 있게 된다.
•
메소드의 사용법(api)이 제공되면 프로그램 작성에 이 메소드를 활용할 수 있게 된다.
프로그래밍 기초
강원대학교
7/37
자바 소개
프로그래밍 기초
강원대학교
8/37
프로그래밍 기초
강원대학교
9/37
프로그래밍 기초
강원대학교
10/37
프로그래밍 기초
강원대학교
11/37
프로그램
Sum=0
N=0
while (N<=50)
N=N+1
Sum=Sum+N
Print Sum
프로그래밍 기초
강원대학교
12/37
프로그램 컴파일
프로그래밍 기초
강원대학교
13/37
자바 프로그램
컴파일러
개발환경
바이트 코드
JVM
핸드폰
JVM
Macintosh 컴퓨터
JVM
실행환경
Windows PC
JVM: Java Virtual Machine, 자바가상기계
프로그래밍 기초
강원대학교
14/37
자바언어의 특징
• 인터프리터(Interpreter)에 의해 실행
– 자바 소스코드는 컴파일을 통해 바이트 코드로 번역됨
– 바이트 코드를 실행시키면 바이트 코드 해석기(interpreter)에
의해 기계어 코드가 만들어지면서 이 기계어 코드가 실행됨
Java program
컴파일
인터프리터
컴파일러
기계어코드
바이트코드
컴퓨터하드웨어
프로그래밍 기초
강원대학교
실행
15/37
• C 언어의 경우: 소스코드가 기계어로 바로 번역됨
• 프로그램을 실행할 컴퓨터(target machine)에 따라 컴파일러가 달
라지고 다른 기계어코드가 생성됨
C program
컴파일
컴파일러
컴퓨터하드웨어
실행
기계어코드
프로그래밍 기초
강원대학교
16/37
자바언어의 특징
• 구조중립적(architecture neutral)이고 이식성(portable)
이 높음
– 바이트코드 인터프리터를 중심으로 몇가지 부가기능
을 갖춘 소프트웨어를 자바가상기계(JVM)라고 부름
– 자바프래그램은 한번 작성/컴파일되면 JVM이 설치된
모든 종류의 컴퓨터에서 실행 가능
프로그래밍 기초
강원대학교
17/37
프로그램을 실행할 컴퓨터
기종과 무관한 바이트코드가
생성됨
클라이언트(JVM)
서버
소스코드
*.java
컴
파
일
러
바이트
코드
*.class
해
석
기
실행결과
인터넷
자바 바이트코드는 자바 가상기계가
설치된 어떤 컴퓨터에서도 실행 가능하며
네트워크를 통해 쉽게 배포할 수 있다.
윈도PC
해
석
기
실행결과
핸드폰
interpreter
프로그래밍 기초
강원대학교
18/37
자바 플랫폼 (Platform)
• 플랫폼 : 하드웨어와 소프트웨어 환경
• 기존의 컴퓨터에 자바 플랫폼을 구축하기 위해서는 자바
소프트웨어(JRE)를 설치함
(JRE: Java Runtime Environment)
자바 프로그램
자바 API
자바
플랫폼
자바 가상 기계 (JVM)
하드웨어 플랫폼
프로그래밍 기초
강원대학교
19/37
JDK (개발도구 + JRE)
JDK: Java Development Kit
JRE: Java Runtime Environment
프로그래밍 기초
강원대학교
20/37
자바 플랫폼 (Platform)
• 자바 API (Application Programming Interface)
– Java 플랫폼에서 제공되는 라이브러리와 그 사용법
– 자바 개발자는 자바 API에 미리 정의된 라이브러리를 이용
하여 편리하게 자바 프로그램을 작성할 수 있음
– 라이브러리: 미리 작성해 놓은 프로그램들
(빈번하게 사용되는 기능들을 구현)
프로그래밍 기초
강원대학교
21/37
프로그램 작성, 컴파일, 실행 과정
• 임의의 텍스트 편집기로 프로그램을 작성하여 파
일로 저장
프로그래밍 기초
강원대학교
22/37
프로그램 예 1 – Hello.java
Hello라는 이름의 클래스를
중괄호{} 안의 내용과 같은 것으로 정의함
public class Hello {
public static void main (String[] args) {
System.out.print(“Hello!”);
}
}
• 이 프로그램을 Hello.java 파일에 저장 (파일 이름이 대소
문자까지 맞춰 정확해야 함)
프로그래밍 기초
강원대학교
23/37
프로그램 파일
• 파일 하나에는 하나의 public 클래스가 정의됨
• public 클래스 이름을 파일 이름과 같게 함
– (Hello 라 는 클 래 스 를 정 의 한 파 일 의 이 름 은
Hello.java)  대문자 소문자 구분!
프로그래밍 기초
강원대학교
24/37
프로그램 작성, 컴파일, 실행 과정
• 소스코드를 컴파일하여 바이트코드를 만듦
– javac Hello.java ( 파일 이름)
Hello.class 파일이 생성됨
컴파일 할 때는 파일의 첨자(.java)를 반드시 붙여줌
Hello.class 파일 내에 바이트코드가 들어 있음
• 바이트 코드를 실행시킴
– java Hello ( 클래스 이름)
• 실행시킬 때는 파일의 첨자를 붙이지 않고 클래스
이름만 지정해 줌
프로그래밍 기초
강원대학교
25/37
자바 개발 환경
 J2SE 자바 표준 개발 환경에 포함되어 있는 도구
 자바 번역기 : javac
 자바 해석기 : java
 자바 디버거 : jdb
 자바 문서 생성기 : javadoc
 자바 압축 도구 : jar
• JDK는 GUI(Graphical User Interface) 형태의 개발환경을 제공
하지 않음
프로그래밍 기초
강원대학교
26/37
프로그래밍 기초
강원대학교
27/37
(IDE: Integrated Development Environment, 통합개발환경)
프로그래밍 기초
강원대학교
28/37
자바 통합개발환경 예
•
•
•
Eclipse (http://www.eclipse.org)
NetBeans (http://www.netbeans.org/)
Java Studio Creator
•
•
(http://developers.sun.com/prodtech/javatools/jscreator)
JBuilder (http://www.borland.com/jbuilder)
Viaual Cafe (http://www.visualcafe.com)
• Visual Age for Java (http://www.ibm.com/java)
프로그래밍 기초
강원대학교
29/37
Application을 실행시키면
• main 메소드가 실행됨
main 메소드 (method)
public static void main (String[] args)
{
// 문장들
}
프로그래밍 기초
강원대학교
30/37
간단한 문법 요약
• 모든 문장은 세미콜론으로 끝남
x = x + 1;
• 공백 문자가 많이 삽입되어도 문제 없음
x
=
3;
• 한 문장을 여러줄에 걸쳐 적어도 문제 없음
x
=
3;
• 대문자 소문자 구분
NotSame ≠ notsame
프로그래밍 기초
강원대학교
31/37
간단한 문법 요약
• 한 줄짜리 주석은 두 개의 슬래시로 시작
// 주석입니다.
• 여러 줄 주석
/* 주석
입니다. */
프로그래밍 기초
강원대학교
32/37
print과 println
System.out.println(“Kangwon”);
System.out.print(“kangwon”);
System.out.print(“kangwon\n”);
• println은 주어진 문자열을 출력한 다음 줄바꿈 (문자열
출력 후 ‘\n’을 추가로 출력)
• print는 주어진 문자열만 출력
프로그래밍 기초
강원대학교
33/37
Errors
• Syntax errors
System.ouch.print(". . .");
System.out.print("Hello);
– Detected by the compiler
• Logic errors
System.out.print("Hell");
– Detected (hopefully) through testing
프로그래밍 기초
강원대학교
34/37
The Compilation Process
프로그래밍 기초
강원대학교
35/37
The Edit—Compile—Loop Test
프로그래밍 기초
강원대학교
36/37
교재 1장 단답형 문제 (15쪽)
• 2번, 3번, 5번, 6번, 11번
프로그래밍 기초
강원대학교
37/37