week 3
계산 과정 바라보기 - 나누어 풀기
○문제를 작은 문제 여러 개로 나누어 생각하기
- 작은 문제는 각기 풀 수 있어야 함
- 계산 자료를 넘겨주는 것 외에는 연관성이 없어야 함
계산 과정 바라보기 - 쪼개 풀어 합치기
계산 과정 바라보기 - 눈앞 찾기
- 계산 자료 전체를 분석하기 어려울 때 쓸 수 있음
- 각 단계에서 취할 수 있는 가장 쉬운 선택만 쫓아감
계산 과정 바라보기 - 의미에 맞게 빠트림 없이
●의미에 맞게
- 해당 문제 의미에 맞게 처리
- 그렇지 않으면 의미에 어긋남
●빠트림 없이
- 계산 자료를 모두 처리
- 빠트리는 경우가 있다면 불완전
● ex)'의미에 맞게 빠트림 없이' 확인하는 예 :
- 문제 해결을 위한 계산 과정 전체를 검토
- 프로그래밍 언어에서 기본 연산 설계
- 나누어 풀기에서 작은 문제를 개별적 검토
- 소프트웨어 개발시 계산 자료 정의
퀴즈
계산 자료를 여러개로 쪼갠 뒤 쪼개서 나오는 계싼 자료로부터 작은 답을 구하고 이를 조합하여 원래의 최종 답을 찾아낸다
=> 쪼개 풀어 합치기
계산 자료 전체를 분석하기 어려울 때 쓰는 방법으로 각 단계에서 취할 수 있는 가장 쉬운 선택만 쫓아가면서 문제를 푼다
=> 눈앞 찾기
컴퓨팅 사고 단계
● 프로그래밍에도 익숙해야 함
- 프로그래밍 언어가 생각하는 틀에 영향을 주기 때문
프로그래밍 능력 키우기
● 다른 프로그램을 참조하지 않고 스스로 처음부터 끝까지 작성하는 연습이 필요
프로그래밍 = 계산 과정을 글짓기로 설명
컴퓨팅 사고력과 프로그래밍 능력의 근간
컴퓨팅 사고력 + 프로그래밍 능력
||
' 논리적 사고력 '
퀴즈
컴퓨팅으로 문제 풀기 능력향상 방법은 스스로 작성 하며 연습하는 것이 가장 중요
컴퓨팅의 한계
● "어떤 문제를 컴퓨팅으로 풀 수 있는가?"
- 계산 시간 고려하지 않고 이론상 답이 나오는지만 따짐
● "시간을 아무리 쏟아도 컴퓨팅으로 풀 수 없는 문제가 있는가?"
- 계산이란 무엇인가?
-계산으로 풀 수 없는 문제가 있는가?
계산이란 무엇인가?
- 앨런 튜링의 계산
튜링기계 => 만능기계(오늘날의 컴퓨터)
-알론조 처치의 계산
람다계산법=> 언어(C언어, 파이썬과 같은프로그래밍 언어)
튜링기계, 람다 계산법의 계산은 결국 '컴퓨팅'
계산으로 풀 수 없는 문제가 있는가?
● 이론적으로 무수히 많음
● 실제 예 :
- 프로그램을 입력으로 받아서 실행이 끝나는지 판별하라
- 프로그램 두 개를 입력으로 받아서 동등한 프로그램인지, 즉 같은 조건에서 항상 실행 결과가 같은지 판별하라
퀴즈
컴퓨팅에서 계산으로 풀 수 없는 문제는 존재한다.