학습 목표
- 데이터와 정보의 차이점 설명
- 데이터의 표현 방식에 대해 설명
- 프로그램과 알고리즘의 차이점에 대해 설명
주요 용어
- 데이터
- 어떤 현상이나 사실에 대한 설명 또는 설명의 집합
- 정보
- 문제 또는 질문을 해결하기 위해 사용할 수 있는 데이터와 데이터의 집합
- 프로그램
- 컴퓨터가 어떠한 작업을 자동으로 처리할 수 있도록 처리 방법 및 순서를 컴퓨터가 이해할 수 있는 언어 형태로 기술한 것
- 알고리즘
- 문제를 풀기 위한 단계별 절차를 체계적 명령의 형태로 기술한 것
강의록
데이터와 정보
데이터의 개념
- 어떤 현상이나 사실에 대한 설명 또는 설명의 집합
- ex) 불
- 붉다, 밝다, 뜨겁다 → 질적 데이터
- 3500도 → 양적 데이터
- ex) 불
데이터(data)의 정의
- 관찰이나 실험, 조사로 얻은 사실
- 이론을 세우는 데 기초가 되는 사실 또는 바탕이 되는 자료
- 관찰이나 측정을 통해 얻은 수치, 문자 형태의 질적(quality) 또는 양적(quantity) 값
정보의 개념
- 문제 또는 질문을 해결하기 위해 사용할 수 있는 데이터와 데이터의 집합
정보(information)의 정의
- 어떤 데이터나 소식을 통해 얻은 지식이나 상태의 총량
- 관찰이나 측정을 통하여 수집한 자료를 문제 해결에 도움이 될 수 있도록 정리한 지식
- 관찰과 측정을 통해 얻은 데이터를 처리(정렬, 합산, 군집화 등)하여 실제 문제 해결에 도움이 되는 데이터 또는 결과물
정보 처리 과정
- 현상 — 관찰, 측정 → 데이터 — 처리, 가공 → 정보
- 데이터는 현상에 대한 관찰과 측정으로 생성
- 데이터는 기록된 사실이지만, 직접적으로 문제를 해결하는데 도움이 되지 않음
- 처리과 가공을 통해 정보로 변환
관찰과 측정
- 관찰
- 사물 또는 현상을 파악하는 행위
- 측정
- 절대적인 기준에 맞춰 현상을 수치로 나타내는 과정
데이터의 종류
- 연속적 데이터
- 온도, 길이 등 끊임없이 변하는 데이터
- ex) 불 - 3500도
- 범주형 데이터
- 성별, 혈액형처럼 분류할 수 있는 데이터
- ex) 불 - A급 화염
처리와 가공
- 수집된 데이터의 집합을 정렬, 군집화, 계산, 표현 방법 변경 등의 데이터를 변환하여 정보를 생산하는 과정
컴퓨터의 개념
컴퓨터의 정의
- 정의된 방법에 따라 입력된 데이터를 자동으로 처리하여 정보를 생산하는 기계
데이터의 기본 단위
- 비트(bit)
- binary digit
- 2개의 상태 값을 표현하는(0과 1) 가장 작은 기본 단위
- 여러 개 중첩 시켜 데이터를 표현 또는 처리함
- 바이트(byte)
- 8비트로 구성된 단위
컴퓨터와 2진법
컴퓨터는 트랜지스터를 통해 2진법 숫자로 데이터를 표현하여 저장 및 처리
- 트랜지스터는 0과 1을 이용하여 정보를 표현
아날로그와 디지털
아날로그(Analog)
- 사물이나 개념을 연속적인 물리량 값으로 표현
- 중간 과정을 고스란히 보여줌
- 질적 데이터 또는 양적 데이터로 표현
- 사물이나 개념을 연속적인 물리량 값으로 표현
디지털(Digital)
- 사물이나 개념을 이산적인 값으로 표현
- 양적 데이터로 표현
숫자 데이터의 표현
- 2진수
- 0과 1로만 표현
- 10진수
- 일반적인 숫자 표현 방식
- 16진수
- 0 ~9, A ~ F까지 사용하여 표현
문자 데이터의 표현
ASCII 코드
2진법 십진법 문자 2진법 십진법 문자 2진법 십진법 문자 010 0000 32 SP 100 0000 64 @ 110 0000 96 ` 010 0001 33 ! 100 0001 65 A 110 0001 97 a 010 0010 34 ” 100 0010 66 B 110 0010 98 b 010 0011 35 # 100 0011 67 C 110 0011 99 c 010 0100 36 $ 100 0100 68 D 110 0100 100 d 010 0101 37 % 100 0101 69 E 110 0101 101 e 010 0110 38 & 100 0110 70 F 110 0110 102 f 010 0111 39 ’ 100 0111 71 G 110 0111 103 g 010 1000 40 ( 100 1000 72 H 110 1000 104 h 010 1001 41 ) 100 1001 73 I 110 1001 105 i 010 1010 42 * 100 1010 74 J 110 1010 106 j 010 1011 43 + 100 1011 75 K 110 1011 107 k 010 1100 44 , 100 1100 76 L 110 1100 108 l 010 1101 45 - 100 1101 77 M 110 1101 109 m 010 1110 46 . 100 1110 78 N 110 1110 110 n - 알파벳, 숫자, 특수 문자를 2진수로 변환
유니코드
- 다양한 언어를 지원하는 확장된 문자 표현 방식
컴퓨터와 프로그램
프로그램의 이해
- 컴퓨터는 정보를 처리하기 위한 방법과 과정을 자의적으로 결정 불가능
- 처리 방법과 과정이 정의된 프로그램을 사용
- 프로그램이란 컴퓨터가 어떠한 작업을 자동으로 처리할 수 있도록 처리 방법 및 순서를 컴퓨터가 이해할 수 있는 언어 형태로 기술한 것
- 유사한 유형의 여러 문제를 추상화 시킨 알고리즘(algorithm)을 구현한 결과물
알고리즘의 정의
- 문제 해결을 위한 단계별 절차를 체계적 명령의 형태로 기술한 것
주어진 명령어를 처리하는 컴퓨터에게 문제를 해결하도록 만드는 정형화된 절차
- ex) 모든 카드를 오름차순으로 정렬하는 문제 → 선택 정렬 알고리즘
- 선택 정렬
- 가장 작은 값을 선택하여 정렬하는 방식
- 버블 정렬
- 인접한 두 값을 비교하여 정렬하는 방식
- 선택 정렬
프로그래밍 언어
- 사람과 컴퓨터 간 의사소통 도구
- 프로그래머는 컴퓨터가 이해할 수 있는 언어를 사용하여 프로그램을 작성
프로그래밍 언어의 분류
- 저급 언어
- 기계에 가까운 언어
- 1세대
- 기계어 (0과 1로 구성된 코드)
- 2세대
- 어셈블리어 (기계어를 간단한 영어 명령어로 대체)
- 고급 언어
- 사람에 가까운 언어
- 3세대
- 자연어와 유사한 프로그래밍 언어 (C, Java, Python 등)
- 4세대
- 자동화 (Visual Basic)
프로그래밍의 실행
- 고급 언어로 작성된 프로그램은 기계어 밖에 인식할 수 없는 컴퓨터에 의해 실행 불가능
- 고급 언어로 작성된 코드는 기계어로 변환해야 실행 가능
컴파일러 또는 인터프리터 사용
- 컴파일러 방식
- 전체 코드를 한 번에 번역 후 실행 (C, Java 등)
- 인터프리터 방식
- 한 줄씩 번역하며 실행 (Python, JavaScript 등)
- 컴파일러 방식
연습 문제
다음과 같이 어떤 문제(라면끓이기)를 해결하기 위한 절차를 무엇이라고 하는가?
a. 알고리즘
‘방송대 컴퓨터과학과의 파이썬 프로그래밍 기초는 전공 과목이다’ 라고 할 때, ‘전공’이라는 설명은 어떤 유형의 데이터에 속하는가?
a. 범주적 데이터
표현의 모호성을 제거하고 자연어와 유사한 형태의 문법을 갖는 프로그래밍 언어는?
a. 3세대 프로그래밍 언어
학습 정리
- 데이터
- 관찰이나 측정을 통해 얻은 수치, 문자 같은 변할 수 있는 질적 또는 양적 값
- 정보
- 데이터를 처리해 실제 문제 해결에 도움 될 수 있도록 정리한 결과물
- 데이터 처리에는 정렬, 합산, 군집화 등의 작업이 동반 됨
- 데이터와 정보
- 데이터는 현상에서 관찰 · 측정을 통해 얻어지며, 정보는 데이터를 처리 · 가공해 추출
- 컴퓨터
- 입력된 데이터를 자동으로 처리하는 기계로, 데이터 처리 과정을 순서화해 전체 과정을 자동화할 수 있는 장치
- 컴퓨터의 기능
- 입력 기능(외부 데이터 수신)
- 제어 기능(내부 장치 조정)
- 저장 · 기억 기능(입력 데이터 저장)
- 연산 기능(계산 수행)
- 출력 기능(내부 데이터를 사용자에게 전달)
- 디지털 컴퓨터
- 0과 1의 신호로 동작하므로 데이터 및 명령문도 0과 1로 표현되어야 함
- 수나 문자, 명령어도 0과 1로 표현됨
- 프로그램
- 컴퓨터가 작업을 자동으로 처리할 수 있도록 처리 방법 및 순서를 컴퓨터가 이해할 수 있는 언어로 기술한 것
- 프로그램을 만드는 사람을 프로그래머라 하며, 제작 과정은 프로그래밍이라 함
- 알고리즘
- 문제 해결을 위한 단계별 절차를 수학적으로 기술한 것
- 입력과 출력이 있어야 하며, 명확성 · 유한성 · 효율성이 보장되어야 함
- 프로그램
- 프로그래밍 언어를 이용하여 알고리즘을 구현한 결과
- 프로그래밍 언어로 작성된 소스 코드를 컴파일러나 인터프리터를 통해 컴퓨터에서 실행 가능한 프로그램으로 생성됨