개요
컴퓨터의 구성
1. 중앙처리장치(CPU: Central Processing Unit) - 산술/논리 연산, 흐름제어
2. 주기억장치(Memory)-임시저장소
3. 보조기억장치(Secondary storage)
4. 다양한 입/출력 장치(input/output(I/O) device) -HDD, SSD 등 데이터소스, 영구 저장소
컴퓨터에서 가장 중요한 부품인 CPU가 담당하는 기능
→계산기 능력과 순서를 제어하는 중앙 처리 장치
1개의 CPU(Core)안에
레지스터(임시저장) + ALU(산술/연산 유닛) + CU(흐름제어 유닛)
▶ALU는 계산기. 계산만을 위해 존재. 컴퓨터 내부에서 수행되는 대부분의 계산은 ALU가 수행
▶ 레지스터는 CPU 내부의 임시 저장 장치. 프로그램을 실행하는 데 필요한 값들을 임시로 저장. CPU 안에는 여러 개의 레지스터가 존재하고 각기 다른 이름과 역할을 함.
▶ 제어장치는 제어 신호라는 전기 신호(컴퓨터 부품들을 관리하고 작동시키기 위한 일종의 전기 신호)를 내보내고 명령어를 해석하는 장치.
컴퓨터 언어
Code
어셈블리어(문자코드, 의사코드): 어셈블리어는 기계어에 비해 사람이 이해하기 쉬운 저수준 프로그래밍 언어. 어셈블리어는 특정 컴퓨터 아키텍처에 대한 기계어 명령어를 기호화하여 표현한다.
기계어(숫자코드, 실행코드): 기계어는 컴퓨터가 직접 이해하고 실행하는 프로그래밍 언어. 이진 코드로 표현되며, 각각의 명령어와 데이터를 특정 비트와 바이트의 패턴으로 나타낸다.
*전달하고 해석할 때 동일한 코드를 사용하는 것이 무엇보다 중요하다.
알파벳을 위한 약속: 아스키 코드
ABC를 0과 1로 표현하는 방법
ex) cmd에서 Alt+65를 치면 A가 입력됨
인코딩(Encoding) →
사람의 언어 번역: 컴파일러 컴퓨터 언어
←디코딩(Decoding)
모든 언어를 위한 코드: 유니코드
16bit 사용
아스키코드 + 전 세계 언어에 대한 코드
프로그래밍 언어
사람이 알아볼 수 있는 언어로 작성하면 이것을 기계어로 번역해서 컴퓨터에게 알려주는 도구
기계어 < 어셈블리어 < 하이레벨 언어 < C언어 자바 파이썬 등
기계마다 다른 기계어
각각의 제작사에서 만드는 중앙처리장치는 저마다 특성이 다르기 때문에, 서로의 기계어가 다르다. 그래서 기계어에 관해서 이야기할 때는 반드시 적용되는 기준 기계를 함께 표시해 준다.
같은 프로그래밍 언어라도 기계가 다르면 (예를 들어, 윈도우 pc와 맥 pc) 컴파일러가 서로 달라야 하기 때문이다.
컴퓨터 언어 번역기: 컴파일러
사람이 알아볼 수 있는 단어로 작성된 언어를 컴퓨터가 이해하는 언어로 변환하는 작업을 컴파일 Complie이라고 한다.
컴파일 언어로 만든 프로그램을 실행하는 방법
complie → install → run → excute
스크립트 언어 (vs 컴파일 언어)
자바스크립트와 파이썬의 코드는 1줄
이 두 언어는 스크립트 언어이기 때문
스크립트 언어: 스크립트 언어는 인터프리터를 사용하여 소스 코드를 런타임 중에 해석하고 실행한다. 이것은 소스 코드를 기계어로 변환하는 별도의 컴파일 단계가 없음을 의미한다. (ex. Python, JavaScript, Ruby, PHP 등)
컴파일 언어: 컴파일 언어는 소스 코드를 컴파일러를 사용하여 기계 코드로 먼저 변환한 다음 실행한다. 이것은 실행 전에 미리 컴파일 단계가 필요다. (ex. C, C++, Java, C# 등)
파이썬 소개
컴퓨터 시스템의 발전
1. 컴퓨터와 4차 산업혁명
-컴퓨터의 발전
-1946년 애니악
#컴퓨터의 다양한 활용분야
-범용기계
-튜링 머신의 개념(1937년 알란 튜링)
-인간 두뇌와 컴퓨터(마이크로 프로세서 칩)의 비교
2. 정보 통신과 네트워크
-컴푸터 네트워크의 중요성
-다양한 컴퓨터 네트워크
3.인터넷과 초연결사회
-인터넷의 개념과 발전
-인터넷 서비스의 발전 역사
>>초기 정보검색 수단
>>'인터넷 경제' 시대의 도래
4. 웹의 출현
-1989년 스위스 CREN 연구소의 팀 버너스리
5.초연결사회로 변화
-초연결사회
>>인터넷, 사물인터넷, 센서의 발달
소프트웨어의 중요성
-무어의 법칙: 마이크로프로세서 칩의 성능은 18개월 마다 두 배씩 증가한다.
-소프트웨어의 생산성
-하드웨어의 비용이 급격히 감소, 소프트웨어의 비용은 매우 빠르게 증가
>>인공지능, 빅데이터 분석, 사물인터넷, 자율주행 자동차, 모바일 컴퓨팅의 핵심 기술은 소프트 웨어(즉, 알고리즘)
프로그래밍 언어의 발전
-프로그래밍 언어의 역사
>> 4가지 패러다임: 절차적 언어, 객체지향 언어, 선언적 언어, 함수형 언어
-절차적 언어와 객체지향 프로그래밍 언어
컴파일러와 인터프리터
-기계어와 고수준 언어
>>기계어: 하드웨어에서 자료 표현의 기본 단위인 비트값 0과 1로 표현
-컴파일러: 고수준 언어로 작성된 프로그램을 특정 CPU의 기계어로 번역
-인터프리터: 미리 번역해두는 것이 아니고 프로그램이 실행 될때 한문장 씩 기계어로 해석
파이썬의 철학과 특징
-파이썬의 철학
1991년 네덜란드의 귀도 반 로썸
쓰기 쉽고 이해하기 쉬운 프로그래밍 언어로 개발
Python
장점: 단순성, 오픈소스 언어, high-level 언어, interpreted, 객체지향적, 가독성, 간결한 언어
제약점: C, C++, Java에 비해여 실행 속도가 늦다
인공지능, 빅데이터 분석, 딥러닝, 컴퓨터 비전 영역의 다양한 외부 라이브러리 모듈의 지원으로 파이썬이 많이 이용되고 있다.
사이킷-런, 텐서플로우, 아파치 스파크, 파이토치 등 성능도 뛰어나며 많이 사용되는 머신러닝, 딥러닝 프레임워크들이 파이썬으로 접근이 가능하다.
파이썬은 어디에 작성하는가?
텍스트 에디터와 대화형 인터프리
VS Code, PyCharm, Jupyter Notebook, Colaboratory 등
문제 해결 방법론
-폴야의 문제 해결과정
1. 주어진 문제의 이해
2. 문제를 풀기위한 구체적 방법 > 알고리즘
3. 찾은 방법에 따라 실현 > 프로그램
4. 신뢰성 검증
알고리즘의 중요성
컴퓨터과학은 알고리즘에 관한 공부
알고리즘은 컴퓨터과학에서 가장 중요한 개념이며 핵심 주제
소프트웨어와 알고리즘
알고리즘의 실현
-'잘 정의된 기본 절차(Well-defined Primitives)'들을 이용
-잘 정의된 기본 절차는 어떤 시스템을 만드는 '빌딩 블록'
-기본절차: 소프트웨어 개발에서 기본 절차는 프로그래밍 언어
추천 사이트
1. 타이핑 연습
Typing Practice for Programmers | SpeedCoder
www.speedcoder.net
2. 프로그래밍에 대한 Q&A
Stack Overflow - Where Developers Learn, Share, & Build Careers
Stack Overflow | The World’s Largest Online Community for Developers
stackoverflow.com
3. 번역
DEEP
engineering wonder Making Humans Aquatic DEEP exists to radically advance how humankind can access, explore and inhabit underwater environments. Through flexible, modular subsea habitats, work-class submarines, and advanced human performance research, DEEP
www.deep.com
Python 설치
1. Data Spell
JetBrains: Essential tools for software developers and teams
JetBrains is a cutting-edge software vendor specializing in the creation of intelligent development tools, including IntelliJ IDEA – the leading Java IDE, and the Kotlin programming language.
www.jetbrains.com
DataSpell에서 편의성 향상을 위해 설치할 옵션
Indent Rainbow (들여쓰기)
Key Promotor X (단축키 알려주는 옵션)
Material Theme Ul
Rainbow brackets
https://github.com/naver/d2codingfont 에서 글꼴 다운 받고 Dataspell 시스템 설정 내에서 적용
2. 파이썬 인터프리터 (필요한 라이브러리 제공)
설치 시 PC에 Microsoft Visual C++ Redistributable 설치 여부 확인
Anaconda | The World’s Most Popular Data Science Platform
Anaconda is the birthplace of Python data science. We are a movement of data scientists, data-driven enterprises, and open source communities.
www.anaconda.com
아나콘다 설치 후 시스템 환경 변수 확인
※ 아나콘다 설치 시 아래 내용에 체크 해야 path에 아나콘다가 환경 변수로 들어온다.
※ 설치가 완료되면 Git Bash를 통해 설치된 경로와 버전을 확인 할 수 있다.
'Digital Boot > 수업정리' 카테고리의 다른 글
[Digital Boot] 파이썬 수업 6일차 (0) | 2023.11.08 |
---|---|
[Digital Boot] 파이썬 수업 5일차 (0) | 2023.11.07 |
[Digital Boot] 파이썬 수업 4일차 (0) | 2023.11.06 |
[Digital Boot] 파이썬 수업 3일차 (0) | 2023.11.03 |
[Digital Boot] 파이썬 수업 2일차 (1) | 2023.11.02 |