본문 바로가기

Coding : 청년 AI · Big Data 아카데미/Python

1-1 문제 해결 : 컴퓨팅 사고력과 문제해결

 

모든 내용은 청년 AI·Big Data 아카데미 온라인 기초과정 (MOOC) 내용입니다. 

개인 복습을 위해 강의 내용을 정리해 포스팅합니다. 

 

 

Problem Solving

 

-      문제입력 → 문제해결 (문제해결방법과 절차 : 알고리즘 ) → 해결출력

-      ex. 학생 100명 출석부르는걸 문제 인식 -> 알고리즘 -> 얼굴인식출석시스템. 

 

 

 

Computational Thinking

 

-      정의 : 컴퓨터 과학자처럼 생각하기

-      CT는 읽기, 쓰기, 셈하기와 더불어 누구나 갖춰야하는 기본 역량

-      CT는 컴퓨터 과학자뿐만 아니라 누구나 배워서 활용할 수 있는 보편적인 사고이자 기술.

-      CT는 컴퓨터과학 이론, 기술, 도구를 활용하여 현실의 복잡한 문제를 해결하는 사고방식.

-     의학, 법, 경제, 예술 등 모든 분야에서 보편적으로 필요한 핵심 능력이다.  

 

-      교육부 정의 : 컴퓨팅의 기본 개념과 원리를 기반으로 문제를 효율적으로 해결할 수 있는 사고능력

-      컴퓨팅 사고능력의 구성요소

 

  • 문제를 컴퓨터로 해결할수 있는 형태로 구조화
  • 자료를 분석하고 논리적으로 조직하기
  • 모델링이나 시뮬레이션 등 추상화를 통해 자료 표현
  • 알고리즘적 사고를 통하여 해결방법 자동화
  • 효율적인 해결방법 수행하고 검증하기
  • 문제 해결과정을 다른 문제에 적용하고 일반화하기.

 

 

 

Computational Thinking

 

-      컴퓨터가 문제 해결하는 방식을 이해하고 이를 현실 문제 해결에 적용하는 것이 컴퓨팅 사고력

-      사람이 추상적으로 갖고 있는 생각을 컴퓨터가 자동적으로 처리하는 과정

-      추상화 : 실제 세계의 문제를 해결 가능한 형태로 표현하는 사고과정

-      자동화 : 추상화 과정 속 만들어진 해결모델을 컴퓨터가 이해할 수 있는 프로그래밍 언어로 표현하기

-      컴퓨팅 사고력은 인간 사고력으로 처리하기에 어렵거나 시간이 걸리는 작업을 대신, 인간 문제해결능력 확장

 

 

 

미국의 컴퓨터과학교사협회 : 컴퓨팅 사고력 아홉가지 세부요소 

 

  •       자료수집 : 해결하는 문제와 관련된 자료 모으기 
  •       자료분석 : 자료 이해하고 패턴 찾아서 결론 도출
  •       자료표현 : 적절한 그래프, 차트, 글, 그림 등으로 자료 정리
  •       문제분해 : 문제를 해결 가능한 수준의 작은 문제로 나누기
  •       추상화 : 문제 해결을 위해 반드시 필요한 핵심요소를 파악하고 복잡함을 단순화
  •       알고리즘과 절차 : 문제를 해결하거나 어떤 목표를 달성하기 위해 수행되는 일련의 단계
  •       자동화 : 컴퓨팅 시스템이 수행할 수 있는 형태로 해결책 나타내기
  •       시뮬레이션 : 자동화의 결과이며, 문제를 해결하기 위해 만든 모델을 실행시켜 결과 파악하기     
  •      병렬화 : 목표 달성을 위한 작업을 동시에 수행하도록 자원 구성.

 

 

 

 

MIT 미디어랩 : 컴퓨터 사고력 요소 개념, 연습, 관점 측면에서 3가지로 나누고 세부사항 제시 

 

-      시퀸스 : 프로그래밍 개념 과제를 위한 일련의 단계를 정의하는것

-      반복 : 같은 시퀸스를 몇번이고 실행하는 것

-      이벤트 : 이것을 통해 다른 것이 일어나도록 만드는 것

-      조건 : 조건에 따라 결정하도록 만드는 것

-      연산 : 수학적, 논리적 표현식에 따라 계산하는것

-      데이터 : 값을 저장, 검색, 수정하는 것

 

 

  • 개념 : 시퀸스, 반복, 병렬처리, 이벤트, 조건, 연산, 데이터
  • 연습 : 점진적 시도와 개념, 테스팅과 디버깅, 재 사용과 재조합, 추상화와 모듈화
  • 관점 : 표현하기, 연결하기, 질문하기

 

 

컴퓨터공학 사고력

 

-      주어진 일상생활 문제를 분석, 이해하고 문제해결방법을 컴퓨터공학 원리로 컴퓨터가 이해하는 프로그래밍 언어로 제시하는 사고능력 

 

 

 

 

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

 

-      문제 이해 및 분석

-      컴퓨터 공학적 원리 적용

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

-      문제해결방법의 프로그래밍(알고리즘 구현, 코딩)

-      결과 검토

 

 

 

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

 

 

 

 

 

 

문제해결방법 설계 (알고리즘 설계) : 분할 정복 알고리즘

 

-      여러 알고리즘 기본 단위가 되는 해결방법. 기본적으로 크고 방대한 문제를 조금씩 독립적으로 수행할 수 있는 단위로 나눠가면서 용이하게 볼 수 있는 문제 단위로 나눈 다음 그것들을  합쳐서 해결하는 개념. 

 

'Coding : 청년 AI · Big Data 아카데미 > Python' 카테고리의 다른 글

4. 조건문  (0) 2021.12.26
3-1 연산자  (0) 2021.12.22
2-3 입출력 함수  (0) 2021.12.22
2-2 변수와 메모리  (0) 2021.12.22
2-1 파이썬 개요  (0) 2021.12.22