반응형

CS 및 기반지식/모두를 위한 컴퓨터 과학 CS50 6

[CS50]추상화

모두를 위한 컴퓨터 과학(CS50 2019)를 바탕으로 부족한 CS지식을 다져보고자 정리해본다. ======================================================================= ▷추상화 추상화란 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추려 내는 것을 말한다.인간은 복잡한 시스템과 개념을 추상화 할 수 있기 때문에 더 고차원적인 일에 집중할 수가 있다. 컴퓨터를 사용하면서 밑 단의 0과1을 하나하나 생각해야한다면 얼마나 복잡할까. 삼천포로 천재적인 서번트 증후군은 추상화 능력 대신 극단적인 밑 단의 능력을 갖춘 것이라고 한다. 극단적인 계산 능력은 있으나 사회 시스템을 추상화하여 전체를 이해하기는 어려운 것이다. 프로그래밍도 마찬..

[CS50]컴파일,라이브러리, 메모리, 버그, 디버깅

모두를 위한 컴퓨터 과학(CS50 2019)를 바탕으로 부족한 CS지식을 다져보고자 정리해본다. ======================================================================= ▷컴파일러 사람이 작성한 소스코드를 이진수로 작성된 머신코드로 바꾸어주는 프로그램을 컴파일러라고 한다. C언어의 컴파일러 : clang Java언어의 컴파일러: javac *컴파일러가 무조건 이진수 기계어로 변환하는 것은 아니다. 컴파일은 언어 번역을 뜻한다. 해당 코드를 다른 언어로 번역하는 것. 보통은 기계어에 가까운 언어로 번역을 한다. ▷C의 컴파일링 컴파일은 네 단계로 이루어진다. 1)전처리 : #include가 코드에 포함된다. 2)컴파일 : c코드를 어셈블리어로 컴파일한..

[CS50]컴퓨터 과학을 이해하기 위한 C언어의 기초

모두를 위한 컴퓨터 과학(CS50 2019)를 바탕으로 부족한 CS지식을 다져보고자 정리해본다. ======================================================================= ▷C언어 C언어는 순수 텍스트 기반의 전통 프로그래밍 언어이다. 컴파일 방식으로 동작한다. 기본적으로 다음의 문법적인 특징이 있다. #include //c의 표준입출력 라이브러리 int main(void){ } //c의 엔트리포인트인 main 함수 ; //문을 마치는 세미콜론 ▷C의 데이터타입 bool char String int long float double ▷C언어의 동작 c언어는 좌에서 우로, 위에서 아래로 실행한다. main메소드 아래에 선언한 함수는 인식을 하지 못한다. ..

[CS50]알고리즘과 의사코드(algorithm and pseudo code)

모두를 위한 컴퓨터 과학(CS50 2019)를 바탕으로 부족한 CS지식을 다져보고자 정리해본다. ======================================================================= ▷알고리즘 알고리즘이란 문제 해결을 위한 방법을 말한다. 입력 받은 자료를 출력형태로 만드는 처리과정으로, 입력받은 데이터를 출력형태로 바꾸기 위해 어떤 명령들이 수행되어야 하는지에 대한 규칙들의 순차적 나열이 바로 알고리즘이다. ▷알고리즘에서 중요한 것 똑같은 결과를 내더라도 더 정확하고 더 효율적인 것이 있다. 정확성과 효율성이 높은 알고리즘이 좋은 알고리즘이다. 예를들어 3,000페이지의 전화번호부에서 '홍길동'의 전화번호를 찾는다고 할 때 방법은 다음과 같다. 방법1. 한 장..

[CS50]컴퓨터의 표현법, 컴퓨터는 어떻게 데이터를 표현할까

모두를 위한 컴퓨터 과학(CS50 2019)를 바탕으로 부족한 CS지식을 다져보고자 정리해본다. ======================================================================= 컴퓨터가 다루는 유일한 자원은 바로 '전기'이다. 컴퓨터는 전기만 주면 이를 가지고 숫자, 문자, 이미지, 영상, 음악 등 대부분의 것들을 표현할 수 있는 것이다. 전기의 ON/OFF가 1과0이 되고 1과0을 이용한 이진법으로 숫자를 표현하고 숫자로 문자와 이미지, 음악을 만들어 출력한다. ▷인간에게 익숙한 숫자-십진법 인간은 0~9의 숫자를 이용한 십진법을 사용한다. 십진법 123을 체계적으로 살펴보면 다음과 같다. 123 100 + 20 + 3 (10²×1)+(10¹×2)+(10..

[CS50] 컴퓨터 과학은 무엇일까

모두를 위한 컴퓨터 과학(CS50 2019)를 바탕으로 부족한 CS지식을 다져보고자 정리해본다. ======================================================================= ▷컴퓨터과학이란? 컴퓨터과학은 문제해결에 대한 학문이다. 여기서 문제해결이란 입력을 받아 출력을 만들어내는 과정을 말하며 입력과 출력, 그 중간에 있는 과정이 컴퓨터과학이다. 컴퓨터과학의 토대는 '약속'이다. 입력값을 표현하는 약속, 출력값을 표현하는 약속. 즉, 표준이 필요하다. 컴퓨터 과학의 첫번째는 어떻게 표현하는지 표현 방법에 대한 개념(약속)을 아는 것이다.

반응형