• 검색 결과가 없습니다.

기초컴퓨터프로그래밍

N/A
N/A
Protected

Academic year: 2022

Share "기초컴퓨터프로그래밍"

Copied!
34
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

기초컴퓨터프로그래밍

#include <stdio.h>

int main() {

printf("Hello to C Programming!\n");

printf("Instructor: Keon Myung Lee\n");

return 0;

}

(2)

 기초 컴퓨터 프로그래밍

정보화사회의 기본 소양으로서 컴퓨터시스템을 이해

프로그래밍의 개념을 이해

C 프로그램을 이용하여 프로그래밍의 개념 및 기초적인 프로그래 밍 능력을 배양

강좌 소개

(3)

1강. 컴퓨터시스템의 소개 2강. 데이터의 표현 방법 3강. 변수와 자료형

4강. 수식과 연산자 5강. 조건문

6강. 반복문 7강. 함수 8강. 배열 9강. 포인터

10강. 문자와 문자열

강좌 내용

(4)

컴퓨터시스템의 소개

#include <stdio.h>

int main() {

printf(“Introduction to Computer Systems!\n");

printf("Instructor: Keon Myung Lee\n");

return 0;

}

(5)

 컴퓨터란 무엇인가

 컴퓨터 하드웨어 구성 요소 및 역할

 컴퓨터 프로그램과 알고리즘

 프로그래밍 언어의 형태

 시스템 소프트웨어

 응용 소프트웨어

내 용

(6)

 컴퓨터(Computer)

compute + -er : 계산기

電腦(电脑), 電子計算機 (중국)

Ordinateur (프랑스)

 컴퓨터는 기계 (machine)다

기계 = 톱니바퀴 + 금속덩어리 + 움직이는 부품 (?)

특정 목적을 달성하기 위해 만들어진 여러 부품들로 구성된 도구

-

계산하는 기계

컴퓨터는 무엇인가

(7)

 기계의 속성

정해진 일을 (순차적으로) 수행

주어진 대상 (입력)에 대해서 어떤 가공(처리)을 하여 결과물(출력)

시키는 일을 처리

컴퓨터는 무엇인가

Image source: http://coffechino.blinkweb.com/coffe-machine.html

커피 원두

에스프레소 아메리카노 가열,분쇄, 압착

입력 처리 출력

(8)

 데이터를 입력으로 받아 처리하여 출력하는 기계이다.

 프로그램을 통해 다양한 작업을 할 수 있다.

 똑똑해 보이는 일을 하지만 시키는 일 만 할 수 있다.

컴퓨터는 무엇인가

데이터 처리 가공된 데이터

(정보)

10+20 더하기 30

홍길동, 임꺽정, 장길산 정렬 임꺽정, 장길산, 홍길동 재현

둘리.jpg

Image source: http://navercast.naver.com/contents.nhn?contents_id=1469 Audio source : Windows 7, Music Sample file

kaliba.mp3 재생

(9)

 컴퓨터 하드웨어 (hardware)

컴퓨터 시스템을 구성하고 있는 물리적인 부분

중앙처리장치(CPU), 기억장치(memory), 입력장치, 출력장치

 컴퓨터 소프트웨어 (software)

컴퓨터 프로그램

프로그램에 관련된 문서

-

프로그램 개발 과정에서 문서화된 모든 문서

-

사용 설명서, 설치 설명서

하드웨어와 소프트웨어

(10)

컴퓨터 하드웨어

광학드라이브 하드 디스크

전원공급장치 메인보드

입출력 포트

(11)

 메인보드 main board motherboard

하드웨어

메모리 슬롯 CPU 소켓

그래픽카드 슬롯

PCI 슬롯

Image source: http://www.tecnodiscount.it/popup_image.php?pID=92845

주변장치 connector

Northbridge

HDD connector

ODD connector

(12)

 CPU(Central Process Unit, 중앙처리장치)

Intel의 Pentium i7/IV/Xeon/Centrion, 셀러론 혹은 AMD의 AthlonXP/FX64 등

컴퓨터의 머리에 해당 (제한된 연산 기능)

-

산술연산 (+, -, *, /) 및 논리연산 (AND, OR, NOT)

-

조건 판단 (==, !=, >, <, >=, <=)

-

데이터의 이동

-

제어신호 생성 등 수행

프로그램의 명령어(instruction)을 순차적으로 처리하는 역할을 한다

하드웨어

Image sources: blog.marines.co.kr brightsideofnews.com

http://www.maximumpc.com/article/news/samsung_produces_first_arm11based_processor_built_45nm

(13)

 CPU의 구조

 ALU(Arithmetic and Logical Unit) -

산술 연산 및 논리 연산 실행

 레지스터(Register)

-

CPU 내의 고속 데이터 저장 장소

 명령어 인출기(Instruction Fetcher)

-

메모리에서 프로그램 명령어를 가져오는 모듈

 명령어 해석기(Instruction Decoder)

-

명령어를 해석해서 필요한 제어 신호를 발생시키는 모듈

Multicore CPU

 dual-core : 2

 quard-core : 4

 octal-core : 8

하드웨어

Image source: en.wikipedia.org

(14)

 CPU의 구성 요소

디지털 논리회로 소자 (digital logic gate)

-

0, 1의 디지털 값만 처리

-

AND, OR, NOT 등의 논리 연산 수행

CPU는 0,1로 표현된 명령어와 데이터를 처리한다

하드웨어

half adder : 2개의 1자

리 2진수 덧셈 회로

(15)

 주기억 장치(main memory)

CPU에 의해 실행될 프로그램과 계산되는 데이터를 저장하는 곳

byte 단위(8bit)로 0번 부터 시작하는 주소(address) 부여

주소를 사용 값을 기록(write)하거나 읽을(read) 수 있음

- RAM(Random Access Memory)

- ROM(Read Only Memory)

-

Bit

-

Byte

-

1KByte = 1024 Bytes (210)

-

1MByte = 1024 Kbytes(220)

-

1GByte = 1024 Mbytes(230)

-

1TByte = 1024 GBytes

(2

40

)

하드웨어

주소 bit byte

(16)

 보조기억장치(secondary storage)

전원이 공급되지 않아도 지속적으로 프로그램과 데이터를 저장할 수 있는 장치

hard disk, flash ROM, CD/DVD-ROM

하드웨어

Image source: nexus404.com

http://pc-networks.info/what-is-hard-disk-drive-hdd-hard-disk/

(17)

 입력장치

키보드, 마우스, 터치스크린/패드

 출력장치

모니터, 프린터, 스피커

 기타

그래픽카드

사운드카드

랜카드

하드웨어

(18)

하드웨어

(19)

 슈퍼컴퓨터

 데스크탑/노트북

 스마트폰/스마트패드

 임베디드 시스템(embedded system)

홈 오토메이션 시스템

자동차: 엔진제어/변속장치/온도제어장치 등

가전제품 : TV, 캠코더, 냉장고, 세탁기 등

하드웨어

Image sources: 기상청홍보자료

http://www.artearchitectural.net/1135

해담 , Cray XE6, 45,120 cores, 758 TFlops

세계 랭킹 55위 (2012.6)

(20)

 프로그램(Program)은 무엇인가

다양한 이름의 프로그램

-

연주회 프로그램, 공연 프로그램, 교육 프로그램, 다이어트 프로그램 등

-

진행 계획이나 순서

컴퓨터 프로그램

-

어떤 일이나 문제 해결을 위해, 컴퓨터가 처리할 일을 순차적 으로 기술한 일련의 명령문(instruction)

• 명령문(instruction)

CPU가 처리하는 단일 작업(operation)

소프트웨어

Image source: http://blog.naver.com/indiangg?Redirect=Log&logNo=70115416641

void main( ) { int a, b;

a = 10;

b = 20;

c = a + b;

printf(”%d”, c);

}

(21)

 프로그래밍(programming)

프로그램을 작성하는 행위

 프로그래머(programmer)

프로그램을 작성하는 사람

 프로그래밍 언어(programming language)

프로그램을 작성할 때 사용하는 언어

C, C++, C#, Java, Fortran, COBOL, Pascal, MatLab, R 등

소프트웨어

(22)

 알고리즘 (Algorithm)

어떤 문제를 해결하기 위해 사용하는 과정 또는 방법

1부터 100까지 합 계산 문제 해결 방법

-

방법 1

• 순서대로 하나씩 더하기

-

방법 3.

• 등차수열 공식 사용

소프트웨어

-

방법 2

양끝의 두개씩 짝 지어 더한 다음 개수 세기

1 2 3 : 98 99 + 100 --- 5050

100 1 99 2 98 : : 49 51 50

100 100 100 : 100

10050 + 50

= 5050

2 5050 ) 100 1

( 100 2

)   

 

처 음 항 끝 항 개 수 (

(23)

 알고리즘

특정 문제에 대해 여러가지 알고리즘이 있을 수 있다

효율적인 알고리즘을 개발해서 사용하는 것이 바람직하다

-

시간적 효율성 (실행시간을 빠르게)

-

공간적 효율성 (메모리 사용을 적게 )

프로그램은 알고리즘을 프로그래밍 언어로 나타낸 것이다

소프트웨어

(24)

 프로그래밍 언어의 형태

기계어 (machine language)

-

CPU가 직접 이해할 수 있는 0과 1로 표현하는 것

-

CPU 마다 이해하는 기계어가 다를 수 있다

어셈블리어(assembly language)

-

기계어의 명령문(instruction)을 이해할 수 있는 기호로 대체한 것

고급 언어(high-level language)

-

사람이 이해할 수 있는 형태의 프로그래밍 언어

소프트웨어

111000000000001100001001010101010 001011100101010101010110001010101 100011100101111000011101011110111 111000011101001010101011111000000

LOAD first ADD second MUL factor STORE answer

answer = first + second;

answer = answer * factor;

(25)

 소프트웨어의 분류

시스템 소프트웨어(System Software)

- 일반 사용자들이 사용하는 응용 프로그램들을 개발하고 실행하기 위 해 기본적으로 필요한 핵심적인 소프트웨어

-

운영체제, 쉘(사용자 명령 수행기), 에디터, 컴파일러,…

응용 소프트웨어 (Application Software)

-

특정한 응용 분야에 사용되는 프로그램

-

워드프로세서, 스프레드 시트, 프리젠테이션 프로그램, 데이터베이스 관리 시스템, 그래픽 프로그램, 통신 프로그램

-

급여 프로그램, 성적 프로그램, 인사관리 프로그램, 게임, …

소프트웨어

(26)

 운영체제(Operating System)

사용자가 컴퓨터를 사용할 수 있도록 컴퓨터를 관리하는 기본 프 로그램

소프트웨어

Image source: http://census-labs.com/news/2011/03/22/blackhat-eu-2011-update/

Mac OS X Linux MS Windows

iOS Android UNIX

(27)

 쉘(shell)

운영체제의 서비스를 사용할 수 있도록 사용자에게 인터페이스를 제공하는 프로그램

Command-line shell

-

텍스트 직접 입력

GUI(Graphical User Interface) shell

-

마우스 조작

소프트웨어

(28)

 컴파일러(compiler) vs 인터프리터(interpreter)

고급언어로 작성된 프로그램을 기계어로 바꾸는 역할

컴파일러

-

소스화일(source file) 전체를 기계어로 작성된 실행화일 (executable file)로 한번에 변환

인터프리터

-

소스 프로그램을 한 줄씩 읽어서 기계어로 변환해 실행하는 것

소프트웨어

컴파일러

프랑스어 요리법 한국어 요리법

프랑스어 요리법 인터프리터

(29)

 통합개발환경 (IDE, Integrated Development Environment)

프로그램 개발에 필요한 editor, compiler, 디버깅(debugging) 환 경을 하나의 패키지로 묶어놓은 것

MS Visual Studio

Eclipse

소프트웨어

(30)

 응용소프트웨어

워드프로세서

- 문서작성, 편집, 인쇄

- 한글, MS Word

스프레드 시트

- 데이터에 대한 통계 처리 및 가시화

- MS Excel

프리젠테이션 프로그램

- 도표, 도형, 애니메이션 효과 등을 이용한 발표자료 작성

- MS Powerpoint, Prezi

데이터베이스 관리 시스템

- 대량의 데이터를 효과적으로 관리

- MS Access, MySQL, Oracle

그래픽 프로그램

- 그림 및 이미지 작업

- Photoshop, Illustrator

통신 프로그램

- 네트워크 이용한 데이터 송수신

- 웹 브라우저(IE, Chrome), FTP, telnet

기타

소프트웨어

(31)

 앱(app)의 무엇인가

application program(응용 프로그램)의 약자

인터넷, 컴퓨터, 휴대폰, 또는 다른 전자기기에서 동작하는 프로그 램

예.

-

Android app

-

iPhone app

-

Google app

소프트웨어

(32)

컴퓨터는 데이터를 입력으로 받아 처리하여 출력하는 기 계이다.

컴퓨터의 CPU가 할 수 있는 일은 제한적이지만, 프로그램 을 사용하여 다양한 작업을 시킬 수 있다.

프로그램은 어떤 일이나 문제 해결을 위해, 컴퓨터가 처리 할 일을 순차적으로 기술한 일련의 명령문이다.

컴퓨터에서는 이진수로 프로그램의 명령어와 데이터를 표 현한다.

메모리는 바이트 단위로 주소가 있고, 주소를 사용하여 데 이터를 메모리에 쓰거나 읽을 수 있다.

요점 정리

(33)

알고리즘은 문제를 해결하는 절차나 방법을 말하고, 효율 적인 알고리즘을 개발하는 것인 관건이다.

알고리즘을 프로그래밍 언어로 기술하면 프로그램이 된다.

고급언어로 작성된 프로그램은 CPU가 이해할 수 있는 기 계어로 변환해야 실행할 수 있다.

고급언어를 기계어로 변환하는 방식에는 컴파일러와 인터 프리터가 있다.

요점 정리

(34)

 데이터의 표현 방법

수의 표현방법

-

정수

-

소수점있는 숫자(부동소수점 수)

문자의 표현방법

-

영문 : ASCII

-

한글

멀티미디어 데이터

 C 프로그래밍 언어 소개

다음 강좌 내용

참조

관련 문서

이로써 NAVER는 내 컴퓨터와 다른 네트워크에 있으므로 NAVER의 MAC 주소를 바로 알 수 있는 것이 아니라 디폴트 게이트웨이의 MAC 주소가 온다는 것을 알게

 미니 언어를 사용해서 문제를 해결하는 Interpreter 패턴..  Facade 패턴을 이용해서, 인터프리터를

發熱 惡熱 自汗 口渴 喘 小便短赤 心煩 舌紅 舌苔黃燥 脈洪數. 潮熱 便秘 泄瀉 황٠취 腹脹 腹痛 拒按

• Divide &amp; Conquer방법의 근본 원리는 주어진 문제에서 입력 의 크기가 큰 것을 다루는 것보다는 입력을 작은 크기로 분할 해서 해결하는 방법이다.. 이 방법의

그러므로 이와 같이 형 변홖 (type casting) 연산자를 사용하여 드러 나게 형을 맞추어주는 것이 좋은 프로그램 습관이다.. 이 시작 주소가

어떠한 원리를 통해 문제를 해결할 것인지를 기술적으로 서술할 수 있고 어떤 재료들을 사용하여 해결방법을 구현할 것인지에 대해 서술할 수 있다.. 지난

학생은 학생은, , 실생활 실생활 문제를 문제를 능동적으로 능동적으로 해결하는 해결하는 능력이 능력이 향상 향상 학생. 학생 스스로 스스로 자신의

사람이 컴퓨터에 직접 지시하지 않아도 데 이터를 통해 컴퓨터가 스스로 학습을 하며 문제를 해결하는 것..  학습이 이루어지지 못한 인공지능은 인공지능으로서의