목록컴퓨터과학개론 (6)
To Be myself
구문론- 의미(의도)가 애매모호하지 않고 명확하게 정의되어야 한다 의미론- 언제나 의미가 동일하게 해석되어야 한다. 기계어- 0과 1로 이루어진 2진수 언어로 컴퓨터 하드웨어를 직접 제어할 수 있는 수준. 사람이 이해하거나 프로그램 작성이 어려워 범용성이 낮음 어셈블리어- 기계어의 명령어를 사람 언어와 유사한 알파벳 형태로 바꾼 언어. 기계어보단 읽기 쉽지만 논리 순서가 컴퓨터에 초점을 둠
중앙처리장치(CPU)- 제어장치, 산술논리연산장치(ALU), 레지스터로 구성- 처리장치 : ALU + fpwltmxj 제어신호: 데이터 처리 연산을 실행시키는 이진신호, 제어장치가 처리장치에 제공상태신호: 처리장치의 상태를 나타내는 상태비트로 연산의 순서 정함, 처리장치로부터 제어장치가 전송받음 기억장치주기억장치: 연산에 필요한 프로그램, 데이터, 중간 결과, 연산 결과 등 저장캐시보조기억장치 입출력장치- 입력장치: 사용자의 입력 값을 컴퓨터 알 수 있는 형태로 변환- 출력장치: 연산 겨로가를 사람이 알 수 있는 형태로 변환해서 내보냄 시스템버스버스: 2개 이상의 장치를연결해주는 통신 선로시스템버스: 중앙처리장치, 기억장치, 입출력장치의 연결 및 데이터 통로 역할 - 주소버스 / 데이터 버스 / 제어버스..
개념정의주어진 문제를 해결하기 위한 풀이 과정 조건: 입출력, 명확성, 유한성, 유효성생성단계기술방법: 자연어, 의사코드, 프로그래밍 언어, 순서도 등 자료구조와의 관계알고리즘에 적합한 자료구조, 자료구조에 적합한 자료구조 선정이 효율적인 프로그래밍의 기초 설계 기법분할정복 방법하향식 접근 방식문제의 입력을 더 나눌 수 없을 때까지 2개 이상의 작은 문제로 순환적(recurisvely)으로 분할하고 분할된 문제를 각각 해결한 뒤 그 해를 결합- 작업 방법: 분할 > 정복 > 결합문제를 작게분할하는 것이 중요예. 이진탐색, 퀵 정렬, 합병 정렬 동적 프로그래밍 방법욕심쟁이 방법
추상화공통적인 개념을 통해 같은 객체를 정의하는 것 자료구조추상화로 자료의 논리적인 관계를 표현한 것 배열동일한 변수에 동일한 자료형의 데이터를 일렬로 저장한 자료구조원소의 논리적 순서 = 원소가 저장된 물리적 순서인덱스(첨자): 변수에서의 데이터 위치원소(값): 변수에 저장된 데이터 자체 1차원 배열: 1개의 인덱스로 데이터접근 A[i]2차원 배열: 행과 열로 구성, 2개의 인덱스 A[i][j]- 열우선 순서 행렬: 첫 번째 원소부터 저장- 행우선 순서 행렬: 첫 번째 행 원소부터 저장희소행렬: 0이 아닌 원소의 (행번호, 열번호, 값) 형태로 저장한 2차원 배열 연결 리스트원소의 논리적 순서가 실제 저장된 순서와 다름노드 = 데이터필드 + 링크 필드데이터필드: 원소값링크필드: 다음 원소의 노드 주..
컴퓨터 시스템의 구성하드웨어폰 노이만 모델- 컴퓨터 내부 구조와 처리를 정의한 모델- 실행될 프로그램은 메모리에 저장되어야 한다는 내장 프로그램 방식을 주장- 프로그램은 유한개의 명령어 조합으로 필요한 부분은 재사용할 수 있음 - 기억장치: 주기억장치, 보조기억장치- 산술논리연산장치(ALU): 산술 및 논리 연산 수행- 제어장치(CU): 다른 장치의 동작을 제어* 중앙처리장치(CPU) = 산술논리연산장치 + 제어장치- 입력장치: 키보드, 마우스, 마이크- 출력장치: 모니터, 프린터, 스피커*보조기억장치도 입출력장치가 될수있음 소프트웨어시스템 소프트웨어: 컴퓨터 자체의 작업 관리와 기능 수행 - 컴파일러, 운영체제, 유틸리티 등응용 소프트웨어: 사용자가 이용하는 프로그램 - 워드프로세서, 데이터베이스, 그..
컴퓨터의 정의- 프로그램이 가능한 데이터 처리기 (programmable data processor) : 외부에서 데이터를 입력받고, 명령의 집합인 프로그램을 통해 데이터를 처리하여 그 결과를 출력하는 기계- 프로그램: 작업 유형과 연산의 집합을 결정함. 즉 문제를 어떻게 해결할지 방법을 찾고 적절하게 문제를 해결하는데 주력 컴퓨터의 장점- 빠른 데이터 처리 cf. 나노초 (10^-9 초)- 정확한 계산 결과 컴퓨터 과학의 정의1) 데이터의 획득, 표현, 처리, 저장, 통신, 접근을 위한 방법의 실행 가능성, 구조화, 표현과 기계화에 대한 학문2) 컴퓨터 자체, 데이터, 알고리즘, 프로그램의 연구를 통해 효율적으로 데이터를 처리하기 위한 기술과 방법을 제공하는 분야3) 알고리즘과 관련된 이슈를 다루는 학문