Professional Documents
Culture Documents
01
1.1 소프트웨어와 하드웨어
1 소프트웨어란?
2 하드웨어란?
3 컴퓨터란?
4 프로그래밍이란?
1 C언어의 특징
• 컴퓨터가 이해할 수 있는 언어는 기계어(machine language) 뿐이다.
• 기계어를 사람들이 이해할 수 있는 문자 형태로 바꾼 것이 어셈블리어(assembly language)다.
• 기계어에 가까운 프로그래밍 언어를 저급 언어(low level language)라 부른다.
C언어의 장점
❯ 효율적인 언어
❯ 강력한 언어
❯ 확장성이 좋은 언어
❯ 간결한 문법 구조
C언어의 단점
❯ 난이도가 있는 코드
❯ 숙련이 필요한 코드
1.2 C언어와 컴파일러
3 컴파일러란?
• 컴퓨터는 기계어만 인식하기 때문에 C언어를 사용하여 만든 코드는 컴퓨터가 이해할 수 없다.
• 고급 언어를 기계어로 번역하는 과정을 컴파일(compile)이라 부른다.
• 컴파일을 담당하는 프로그램을 컴파일러(compiler) 라 부른다.
• 컴파일러는 소스코드를 번역하여 기계어로 이루어진 실행파일을 만든다. 이 실행파일을 실행함으로써
컴퓨터가 작업을 시작한다.
• C언어, C++, 자바와 같은 대부분의 고급 언어가 컴파일러 방식을 사용한다.
1.2 C언어와 컴파일러
1 알고리즘이란?
2 알고리즘 표현 방법?
1.3 알고리즘
> 순서도
1.3 알고리즘
> 유사코드
• 특별한 프로그램언어에 국한되지 않은 코드
1.4 컴퓨팅 사고
1 컴퓨팅 사고란?
예2) 사과 잼 공장
• 사과 잼 공장에서 사과 잼을 만들기 위해 사과를 가는 기계가 있다고 생각해 보자.
• 모터를 돌려서 사과를 잘게 부수는 작업은 매우 빠른 속도로 이루어진다. 이런 기계에
사과를 하나 씩 옮겨서 집어넣는 것은 매우 비효율적이다.
• 기계의 속도를 맞추려면 사과를 큰 바구니에 담아서 통째로 옮겨야 한다.
• 바구니를 버퍼(buffer) 라 부른다. 버퍼란 속도가 서로 다른 장치 사이에서 속도 차이를
완화시켜주는 장치이다.
1.4 컴퓨팅 사고
예3) 대박난 맛집
• 어느 중국집이 맛집으로 소문이 나서 이른 아침부터 손님들이 줄을 서기 시작했다. 주문이
밀려들다 보니 음식을 주문하고 30분이 지나야지만 음식을 맛볼 수 있다. 이 중국집 주인은
주방장을 더 채용하고 요리를 할 수 있는 주방을 하나 더 만들었다.
• 그러고 나니 15분 정도만 기다리면 음식을 맛볼 수 있게 되었다.
• 이것이 병렬처리이다. 병렬 처리란 여러 개의 작업을 동시에 처리하는 기법이다.
1.4 컴퓨팅 사고
2 컴퓨팅 사고의 구성
추상화
• 추상화란 세부사항을 제거하여 간결하게 만드는 것
• 추상화는 불필요한 것을 제거함으로써 문제의 본질을 보다 정확하게 파악할 수 있게 해준다.
1.4 컴퓨팅 사고
분해
• 분해는 복잡한 문제를 풀기 쉬운 간단한 문제로 나누는 것
• 문제를 작은 문제로 분해하면 어떤 작업을 먼저 해야 하는지, 어떤 작업을 나중에 해야
하는지를 결정할 수 있다.
1.4 컴퓨팅 사고
패턴인식
• 패턴이란 동일한 것이 반복되는 것.
• 복잡한 문제를 분해하는 과정에서 유사한 특성을 발견할 수 있다. 컴퓨팅 사고에서
패턴 인식은 문제들에 적용 가능한 패턴을 찾아내는 과정이다.
• 패턴을 찾을 수 있다면 문제를 해결하기가 매우 쉬워진다.
1.4 컴퓨팅 사고
3 알고리즘 작성
3가지 제어 구조
• 순차 구조 - 어떤 일을 처리하는데 필요한 과정을 시간적인 순서에 따라 순차적으로 나타낸 구조.
기본적으로 작업은 위에서 아래로 한 줄씩 실행. 모든 알고리즘의 기본 구조.
• 조건선택 구조 - 특정 조건을 만족하는지, 안 하는지에 따라 다음 명령을 선택적으로 실행하는 구조
• 반복 구조 - 어떤 문제를 해결하기 위해 동일한 동작을 반복적으로 실행하는 구조
1.4 컴퓨팅 사고
조건선택 구조 예
1.4 컴퓨팅 사고
조건선택 구조 유사코드
1.4 컴퓨팅 사고
반복구조 예
1.4 컴퓨팅 사고
반복구조 유사코드