1 - 1 컴퓨터 개요_문제 해결(problem solving)

    728x90
    반응형

    문제 해결(problem solving)

    • 문제 입력 -> 문제해결 방법과 절차, 알고리즘(algorithm) -> 해결 출력

     

    what is computational Thingking?

    • "CT는 읽기, 쓰기, 셈하기와 더불어 누구나 갖춰야 하는 기본 역량"
    • CT는 컴퓨터 과학의 이론, 기술, 도구를 활용하여 현실의 복잡한 문제를 해결하는 사고방식이다. 
    • 의학, 법, 경제, 정치, 예술 등 사회 모든 분야에서 보편적으로 필요한 핵심 능력이다.(Jeannette M. Wing)

     

    컴퓨터 공학 사고력

    "주어진 문제를 분석, 이해하고 문제의 해결방법을 컴퓨터 공학의 원리를 적용하여 알고리즘을 도출하고 컴퓨터가 이해하는 프로그래밍 언어로 제시하는 사고능력"

     

    • 일반적 문제해결과 컴퓨터공학적 문제해결 과정
      • (일반적 문제 해결과정) 문제이해 및 분석 -> 문제해결방안탐색 -> 해결방법 도출 -> 실행 및 평가
      • (컴퓨터공학적 문제 해결과정) 문제이해 및 분석 -> 컴퓨터공학 원리적용 -> 알고리즘 설계와 구현 -> 결과 검토

     

     

    컴퓨터 공학적 문제 해결과정

    • 컴퓨터 공학 사고력은 정보를 처리하는 과정과 방식을 이해하고, 다시 컴퓨터에게 프로그래밍 언어로 명령할 수 있는 사고력
    • 컴퓨터 공학적 문제 해결과정 5단계
      • 1) 문제 이해 및 분석(일반적인 문제 해결 과정과 동일)
      • 2) 컴퓨터 공학적 원리 적용
      • 3) 문제 해결 방법의 설계(알고리즘 설계)
      • 4) 문제 해결 방법의 프로그래밍(알고리즘 구현, 코딩)
      • 5) 결과 검토

     

    컴퓨터 공학의 원리 적용

    • 데이터 수집: 문제의 이해와 분석을 토대로 문제를 해결하기 위한 자료를 모으는 단계
    • 자료분석 : 수집된 자료와 문제에 주어진 자료를 세심히 분류하고 분석하는 단계
    • 데이터 표현 : 문제의 자료 내용을 그래프, 차트, 단어, 이미지 등으로 표현하는 단계
    • 문제분석 : 문제를 해결해나가기 위해 문제를 모듈로 나누어 분석하는 단계
    • 추상화 : 문제의 복잡도를 줄이기 위해 기본 주요 개념의 일반화 정의를 설정하는 단계
    • 알고리즘과 절차 : 지금까지 문제를 해결하기 위한 과정을 순서적 단계로 표현하는 단계
    • 자동화 : 분석한 문제 중 컴퓨터가 수행할 수 있도록 해결과정을 알고리즘화 하는 단계
    • 시뮬레이션 : 문제해결을 위한 실험모델을 만드는 단계

     

    문제 해결 방법의 설계(알고리즘 설계)

    • 분할 정복(divide and conquer) 알고리즘 : 어떤 문제를 해결하는 알고리즈멩서 원래의 문제를 성질이 똑같은 여러 개의 부분 문제로 나누어 해결하여 원래 문제의 해를 구하는 방식 

     

    • 의사코드(pseudo code) : 일반적인 언어로 코드를 흉내내어 알고리즘을 써놓은 코드
      • 1) a변수에 10을 넣는다. 
      • 2) b변수에 20을 넣는다.
      • 3) sum 변수에 a와 b를 더한 값을 넣는다.
      • 4) sum을 출력한다.

     

    • 순서도(flow chart) : 여러 종류의 상자와 화살표를 이용해 명령의 순서(알고리즘)을 보여주는 도형
      • 시작 -> a=10 -> b= 20 -> sum=a+b -> sum -> 끝

     

    728x90
    반응형

    댓글