Trivia
1장.컴퓨팅 사고로 문제 해결하기 본문
1.1 프로그래밍과 도구
▶컴퓨터(Computer) = 하드웨어(Hardware) + 소프트웨어(Software)
①하드웨어: 컴퓨터의 물리적인 부분 (ex. 모니터, 프린터, 마우스, CPU, 메모리 등)
②소프트웨어: 특정한 목적을 위해 만들어진 모든 프로그램 (ex. 마이크로소프트 윈도우, 아래 한글 등)
게임 소프트웨어 ⇒ 게임기
하드웨어 + 워드 프로세서 ⇒ 문서 편집기
음악 플레이어 ⇒ 오디오
▶소프트웨어(software): 사람이 하는 어렵고 힘든 작업을 컴퓨터가 대신 수행하도록 해주어
우리의 생활을 좀 더 편리하고 이롭게 해주는 도구
(ex. 게임기, 문서 편집기, 오디오)
▶소프트웨어의 구성: 시스템 소프트웨어와 응용 소프트웨어로 구성
①시스템 소프트웨어
● 컴퓨터의 시스템을 운영하기 위한 모든 소프트웨어를 통칭
● 하드웨어를 관리하고 응용 소프트웨어를 지원하는 소프트웨어
● ex) 마이크로소프트의 윈도우즈(windows), 매킨토시의 iOS와 같은 운영체제
②응용 소프트웨어
● 특정 작업을 위해 개발된 소프트웨어
● ex) 인터넷 익스플로러, 마이크로소프트 워드, 구글 스프레드시트
1.2 컴퓨팅 사고
▶컴퓨팅 사고(Computational Thinking)
● 컴퓨터 과학의 이론, 기술, 도구를 활용하여 현실의 복잡하고 어려운 문제를 해결하는 사고방식
● 컴퓨터와 소프트웨어라는 도구를 활용해 문제를 해결하는 방식
▶컴퓨터를 활용한 문제 해결의 장점
①계산이 매우 빠르고 정확함
②엄청난 양의 데이터 저장이 가능함
③네트워크를 통해 빠르게 정보를 주고받을 수 있음
1.3 문제 해결하기
▶문제해결 프로세스
①문제 파악 및 정의: 해결해야 하는 문제가 무엇인지를 파악하고,
파악된 문제를 명확하게 정의하고 모호함없이 문제의 범위 및 본질을 묘사
②문제 해결 전략/방법 도출: 문제 해결에 필요한 지식을 수집하여, 해결 전략 방법 도출
③문제 해결 행동 수행: 도출된 방법에 따라 해결 활동 수행
④결과 검증 및 확인: 정의된 문제가 해결되었는지 점검 (소프트웨어 구현 가능 여부 고려)
▶사실적 지식과 절차적 지식을 통한 문제해결
①사실적 지식(Declarative Knowledge)의 예: 피타고라스의 정리, 원의 넓이를 구하는 식 등
②절차적 지식(Imperative Knowledge)의 예: 요리법(Recipe), 프로그램 설치 가이드라인 등
▶알고리즘: 컴퓨터의 능력을 가정하고, 일련의 절차를 이용하여 문제를 해결하는 방법
▶알고리즘의 구조:
①순차 구조: 위에서 아래로 순서에 따라 차례대로 작업 수행
②조건 구조: 조건에 따라 수행되는 작업들이 다른 경우
● 조건이 맞으면 '참(True)'으로 표시된 방향의 작업 수행
● 조건이 틀리면 '거짓(False)'으로 표시된 방향의 작업 수행
③반복 구조: 일련의 작업들을 여러 번 반복해야 하는 경우
특정한 조건을 만족하는 동안 반복
1.4 프로그래밍
▶프로그램
● 절차적 지식인 알고리즘을 컴퓨터에 이해시키기 위해 가공한 형태
● 구성한 알고리즘의 내용을 특정 프로그래밍 언어로 작성
● 프로그램이 만들어지는 과정: 문제 정의 ⇒ 알고리즘 구상 ⇒ 프로그램
▶프로그래밍 언어: 컴퓨터와 소통하기 위해 사용하는 언어
● 기계어: 컴퓨터가 이해하는 언어, 0과 1로만 구성됨
● 고급언어: 이애하기 어려운 기계어 대신 사람이 편하게 표현할 수 있는 언어 (ex. 파이썬, C, C++...)
● 고급 언어로 프로그래밍 시, 컴퓨터가 이해하기 위한 기계어로 번역해주는 번역기(인터프리터)가 필요
※연습 문제※
Q1. 컴퓨터는 하드웨어와 ( )로 구성된다.
Q2. 컴퓨터과학의 이론, 기술, 도구를 활용하여 현실의 복잡하고 어려운 문제를 해결하는 사고방식을 일컫는 말은
( ) 사고이다.
Q3. 알고리즘은 문제의 해결을 수행하기 위한 ( ) 지식이다.
Q4. 컴퓨터가 이해하는 언어는 ( )라고 하고, 파이썬과 같이 사람이 이해하기 쉬운 언어는 고급언어라고 한다.
Q5. 사람이 이해할 수 있는 고급언어로 프로그래밍을 하면 컴퓨터가 이해할 수 있는 기계어로 변화시킬 컴파일러
또는 ( )가 필요하다.
------------------------------------------------------------------------------------------------------------
A1. 소프트웨어
A2. 컴퓨팅
A3. 절차적
A4. 기계어
A5. 번역기(인터프리터)
'프로그래밍기초' 카테고리의 다른 글
2장.기본 작업 수행 (0) | 2019.04.04 |
---|