1 소개

2023. 10. 21. 22:00프로그래밍 공부/Python

1.1 컴퓨터 과학(Computer Science)이란 무엇인가?

컴퓨터 과학은 기본적으로 컴퓨터적인 문제 해결(computational problem solving)에 관한 것이다.


1.1.1 Computational Problem Solving의 핵심

1. 표현(representation): 문제를 포착하는 양상

2. 알고리즘(algorithm): 문제를 해결하는 방식


1.1.2 Computational Problem Solving의 한계

알고리즘이 합리적인 시간 내에 해결되지 않으면 소용이 없다. (시간복잡도 문제)


1.2 컴퓨터 알고리즘

1.2.1 알고리즘은 무엇인가?

알고리즘은 유한한 수의 묘사된 명확한 실행할 수 있는 절차들이다.

그 절차들은 체계적으로 유한한 시간에 주어진 입력을 예상하는 결과대로 따른다.


1.2.2 알고리즘과 컴퓨터: 완벽한 매치

컴퓨터는 에러 없이 매우 빠르게 신뢰성있게 명령을 실행하기 때문에 알고리즘과 컴퓨터는 완벽한 매치이다.


1.3 컴퓨터 하드웨어(Computer Hardware)

1.3.1 Digital Computing: It’s All about Switches

컴퓨터 시스템 내 모든 정보는 오직 두 숫자, 0과 1로 표현되어 있다. 이것을 이진법(binary representation)이라고 한다.

 

1.3.2 이진수 체계(The Binary Number System)

비트(Bit): 이진법의 한 자릿수

바이트(Byte): 컴퓨터 시스템에 작동되는 최소 단위이다. 1바이트 = 8비트로 구성된다.


1.3.3 기본 하드웨어 구성 요소

CPU(Central Processing Unit, 중앙 처리 장치): 명령을 이해하고 실행할 수 있는 디지털 논리 회로를 포함하는 컴퓨터의 뇌

Main Memory: 주 기억 장치. CPU에서 매우 직접적으로 빠르게 접근 가능하다. 전원이 꺼지면 지워진다.

Secondary memory: 보조 기억 장치. CD, DVD, USB 등. 전원이 꺼져도 지워지지 않는다.

Input/Output devices: 입력 장치(마우스, 키보드 등)/출력 장치(모니터, 프린터 등)

Buses: 데이터 간 이동 통로

 

1.3.4 운영체제(Operating Systems)—소프트웨어와 하드웨어를 연결한다

운영체제(Opersting System): 주어진 컴퓨터의 하드웨어 리소스를 관리하고 특정 사용자의 인터페이스를 제공하는 일을 하는 소프트웨어


1.3.5 집적회로 기술의 한계: 무어의 법칙(Moore's Law)

무어의 법칙(Moore's Law): 단일의 반도체칩에 놓을 수 있는 트랜지스터의 수가 대략 2년마다 2배가 된다.


1.4 컴퓨터 소프트웨어

1.4.1 컴퓨터 소프트웨어는 무엇인가?

컴퓨터 소프트웨어(Computer Software): 컴퓨터에 의해 실행될 수 있는 관련된 데이터나 문서를 포함하는 프로그램 명령들의 집합


1.4.2 구문, 의미론, 프로그램 번역

구문과 의미론은 무엇인가?

구문(Syntax): 문자 집합과 해당 문자의 허용 가능한 순서(sequence)

의미론(Semantics): 각 구문적으로 올바른 문자 순서와 관련된 의미

 

프로그램 번역(Program Translation)

컴파일러(compiler): CPU에 의해 실행할 수 될 수 있게 하기 위하여 프로그램을 직접 기계어로 번역해주는 번역 프로그램

인터프리터(interpreter): CPU(의 꼭대기에 운영되는)를 대신하여 프로그램 명령어를 실행

 

프로그램 디버깅(Debugging): 구문 오류 vs 의미 오류

구문 오류(Syntax Error): 유효하지 않은 구문에 의한 오류

의미(논리) 오류(Semantic(Logic) Error): 프로그램 논리 오류에 의해 발생


1.4.3 절차지향적(Procedural) vs. 객체지향적(Object-Oriented) 프로그래밍

절차지향적 프로그래밍과 객체지향적 프로그래밍은 오늘날 사용되는 두 개의 주요 프로그래밍 패러다임이다.

 

COMPUTATIONAL PROBLEM SOLVING

1.5 Computational Problem Solving의 과정

분석(Analysis) -> 디자인(Design) -> 실행(Implementation) -> 테스트(Testing)

 

1.5.1 프로그램 분석

문제 이해하기

해결을 구성하는 것을 알기


1.5.2 프로그램 디자인

필요한 데이터를 분석하기

필요한 알고리즘 묘사하기


1.5.3 프로그램 실행


1.5.4 프로그램 테스트

프로그램 에러는 만연하고, 지속성 있고, 필연적이다.

소프트웨어 테스트는 소프트웨어 개발의 필연적인 부분이다.

프로그래밍 오류를 고치는 것을 만드는 변화는 왜 변화가 감지된 오류를 정정하는 지에 대해 완전히 이해해야 한다.


1.6 파이썬(Python) 프로그래밍 언어

1.6.1 파이썬(Python)에 대해


1.6.2 IDLE 파이썬 개발 환경

통합 개발 환경(IDE, Integrated Development Environment): 프로그램 개발을 위한 소프트웨어 도구들의 묶음 세트

 

1.6.3 파이썬 표준 라이브러리(The Python Standard Library)

파이썬 표준 라이브러리: 파이썬의 핵심 기능에 포함된 것을 넘어선 특정한 기능을 제공하는 모듈의 모음

 

1.6.4 파이썬의 일부분

변수(Variables)

변수: 값이 지정된 명칭

 

일부 기본 연산자

파이썬에서 흔히 쓰이는 연산자: +(더하기), -(빼기), *(곱하기), /(나누기), **(거듭제곱)

 

기본 입출력

input: 사용자로부터 요청하고 정보를 얻는 데 이용된다

print: 스크린에 정보를 표시하는데 이용된다

 

1.6.5 IDLE 이용법 배우기

'프로그래밍 공부 > Python' 카테고리의 다른 글

5 함수  (0) 2023.10.23
4 리스트  (1) 2023.10.23
3 제어 구조  (0) 2023.10.22
2 데이터와 표현  (0) 2023.10.21
파이썬 기초 개요  (0) 2023.10.21