ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 1.3. What Is Computer Science?
    번역/Problem Solving with Algorithms and Data 2017. 10. 8. 21:11
    반응형

    이 문서는 영문으로된 내용을 구글 번역기를 활용하여 번역한 내용입니다. 
    개인적인 공부 및 추후 다시 볼 수 있도록 하기 위해 개인 블로그에 번역 내용을 옮겨 놓았습니다.
    원문과 내용이 다를시 책임지지 않으며, 저작권 문제가 발생시 언제든 삭제 될 수 있습니다. 


    Problem Solving with Algorithms and Data Structures using Python by Bradley N. Miller, David L. Ranum is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License


    컴퓨터 과학은 종종 정의하기 어렵습니다. 이것은 아마도 이름에 "컴퓨터"라는 단어가 불행하게 사용 된 것일 수 있습니다. 알고 계시 겠지만 컴퓨터 과학은 단순히 컴퓨터를 연구하는 것이 아닙니다. 컴퓨터가 규율의 도구로서 중요한 지원 역할을하지만, 그 도구 일뿐입니다.


    컴퓨터 과학은 문제, 문제 해결 및 문제 해결 과정에서 나오는 해결책을 연구합니다. 주어진 문제를 감안할 때 컴퓨터 과학자의 목표는 발생할 수있는 문제의 모든 사례를 해결하기위한 지침의 단계별 알고리즘을 개발하는 것입니다. 알고리즘은 문제를 해결할 수있는 유한 프로세스입니다. 알고리즘은 솔루션입니다.

    컴퓨터 과학은 알고리즘 연구로 생각할 수 있습니다. 그러나 일부 문제에는 해결책이 없을 수도 있다는 점을주의해야합니다. 이 내용이 본문의 범위를 벗어나는 것으로 입증되었지만 컴퓨터 과학을 공부하는 사람들에게는 문제를 해결할 수 없다는 사실이 중요합니다. 우리는 컴퓨터 과학을 완전히 정의 할 수 있습니다. 그런 다음 두 가지 유형의 문제를 모두 포함하고 컴퓨터 과학이 문제 해결 솔루션 연구이며 해결책이없는 문제 연구입니다.

    또한 문제와 해결책을 기술 할 때 계산 가능한 단어를 포함하는 것이 매우 일반적입니다. 문제를 해결할 수있는 알고리즘이 있다면 문제를 계산할 수 있다고합니다. 컴퓨터 과학에 대한 또 다른 정의는 컴퓨터 과학이 계산 가능한 것이 아니라 계산 가능한 문제의 연구, 알고리즘의 존재와 존재에 대한 연구라고 말합니다. 어쨌든 "컴퓨터"라는 단어가 전혀 나오지 않았다는 것을 알게 될 것입니다. 솔루션은 기계와 독립적으로 간주됩니다.

    컴퓨터 과학은 문제 해결 과정 자체와 관련되어 있으며 추상화에 대한 연구이기도합니다. 추상화를 통해 우리는 논리적 및 물리적 관점을 분리하는 방식으로 문제와 솔루션을 볼 수 있습니다. 공통적 인 예를 들어 보면 기본 개념은 친숙합니다.

    당신이 학교에 몰거나 오늘 일할지도 모를 자동차를 생각해보십시오. 운전자, 자동차 사용자, 당신은 의도 된 목적으로 차를 활용하기 위해 어떤 상호 작용을합니다. 들어가서 열쇠를 넣고 차를 시동, 변속, 제동, 가속 및 조종하여 운전하십시오. 추상화의 관점에서, 우리는 당신이 자동차의 논리적 인 관점을보고 있다고 말할 수 있습니다. 자동차 설계자가 제공하는 기능을 사용하여 한 위치에서 다른 위치로 이동할 수 있습니다. 이러한 기능을 인터페이스라고도합니다.

    반면에 자동차를 수리해야하는 정비사는 매우 다른 관점을 취합니다. 그녀는 운전 방법을 알고있을뿐만 아니라 우리가 당연시하는 모든 기능을 수행하는 데 필요한 모든 세부 사항을 알아야합니다. 그녀는 엔진 작동 방식, 변속기가 기어 변속 방식, 온도 조절 방식 등을 이해해야합니다. 이것은 물리적 인 관점으로 알려져 있습니다. 세부 사항은 "내부적으로”발생합니다.

    우리가 컴퓨터를 사용할 때도 똑같은 일이 일어납니다. 대부분의 사람들은 이러한 유형의 응용 프로그램이 작동하도록하는 세부 정보를 몰라도 컴퓨터를 사용하여 문서를 작성하고 전자 메일을 보내고받으며 웹 서핑, 음악 재생, 이미지 저장 및 게임을합니다. 이들은 논리적 또는 사용자 관점에서 컴퓨터를 봅니다. 컴퓨터 과학자, 프로그래머, 기술 지원 직원 및 시스템 관리자는 컴퓨터에 대해 다른 시각을 가지고 있습니다. 운영 체제 작동 방식, 네트워크 프로토콜 구성 방법 및 기능을 제어하는 다양한 스크립트를 코딩하는 방법에 대해 자세히 알아야합니다. 사용자가 간단히 추측하는 하위 수준 세부 정보를 제어 할 수 있어야합니다.

    이 두 예제의 공통점은 사용자가 인터페이스 작동 방식을 알고있는 한 추상화 사용자 (때로는 클라이언트라고도 함)는 세부 사항을 알 필요가 없다는 것입니다. 이 인터페이스는 사용자가 구현의 기본 복잡성과 통신하는 방식입니다. 추상화의 또 다른 예로서 파이썬 math모듈을 생각해보십시오. 모듈을 가져 오면 다음과 같은 계산을 수행 할 수 있습니다.
    이것은 절차적 추상화의 예입니다. 우리는 제곱근이 어떻게 계산되는지를 반드시 알 필요는 없지만, 함수가 호출되는 것과 그것을 어떻게 사용 하는지를 알 수 있습니다. 가져 오기를 올바르게 수행하면 함수가 올바른 결과를 제공한다고 가정 할 수 있습니다. 우리는 누군가가 제곱근 문제에 대한 해결책을 구현했음을 알고 있지만, 그것을 사용하는 방법 만 알면됩니다. 이를 프로세스의 "블랙 박스"보기라고도합니다. 우리는 인터페이스를 간단히 설명합니다 : 함수의 이름, 필요한 것 (매개 변수), 리턴 될 내용. 세부 정보는 내부에 숨겨져 있습니다 (그림 1 참조).


    반응형

    '번역 > Problem Solving with Algorithms and Data' 카테고리의 다른 글

    1.6. Why Study Algorithms?  (0) 2017.10.08
    1.5. Why Study Data Structures and Abstract Data Types?  (0) 2017.10.08
    1.4. What Is Programming?  (0) 2017.10.08
    1.2. Getting Started  (0) 2017.10.08
    1.1. Objectives  (0) 2017.10.08
Designed by Tistory.