본문 영역으로 바로가기

컴퓨팅 사고

강좌 소개

이 강좌는 컴퓨팅의 원리를 소개하고 컴퓨팅으로 문제를 풀 때 핵심이라 할 수 있는 컴퓨팅 사고(Computational Thinking)를 소개합니다. 컴퓨팅 사고는 컴퓨터의 장단점을 고려하여 컴퓨팅으로 문제를 풀고자 할 때 적합한 사고의 틀입니다. 컴퓨팅 사고력은 문제를 얼마나 컴퓨터의 눈으로 바라보는지에 따라 결정되며 사람이 직접 계산을 수행할 때와는 매우 다른 생각의 틀을 요구합니다. 강의에서는 컴퓨팅이 어떤 개념인지 살펴본 뒤 컴퓨팅 사고의 핵심 요소를 공부합니다. 그리고 Python 언어를 이용해서 컴퓨팅 사고를 연습하고 컴퓨팅을 직접 구현해 봅니다.

선수 과목

이 강좌는 배경 지식이 따로 필요하지 않습니다.

강사

Course Staff Image #1

박성우

POSTECH 컴퓨팅사고력센터장
Carnegie Mellon 대학 Computer Science 박사 (2005)
프로그래밍언어론, 전산논리 전공
POSTECH 컴퓨터공학과 교수 (2006-)

강좌 구성

본 강좌는 컴퓨팅 사고 기본 단계부터 심화 단계까지 다루며 다음 주제로 구성되어 있습니다. 두 번째 주제 '계산 자료' 강의부터 Python 프로그래밍 연습이 있고 네 번째 주제 '함수' 강의부터 Python 프로그래밍 숙제가 있습니다.
  1. 컴퓨팅 사고
    계산이라는 개념을 전반적으로 소개합니다. 계산으로 문제 푸는 과정을 알아보고 사람이나 컴퓨터가 계산으로 문제를 풀 때 어떤 공통점이나 차이점이 있는지 알아봅니다. 마지막으로 컴퓨팅 사고가 무엇인지 설명합니다.
  2. 계산 자료
    계산의 첫 단계에서는 계산 대상으로부터 핵심 요소를 뽑아서 계산 자료로 바꿉니다. 계산 자료에 어떤 종류가 있는지 알아봅니다.
  3. 연산
    연산은 외부와 소통하지 않고 혼자서 수행할 수 있는 계산 과정입니다. 프로그래밍 언어에서 연산을 어떻게 표현하는지 알아봅니다.
  4. 함수 - 계산 언어 확장하기
    함수는 계산의 핵심 요소 중 하나로서 계산 과정을 표현하는 도구로 볼 수도 있고 계산 언어를 확장하는 도구로 볼 수도 있습니다. 함수로 계산 언어 확장하는 방법을 알아봅니다.
  5. 자기 부르기 함수
    자기 부르기 함수는 컴퓨팅사고에서만 나오는 특유의 계산 과정을 표현하는 도구입니다. 자기 부르기 함수로 계산 과정 표현하는 방법을 알아봅니다.
  6. 다음 유도하기
    계산 자료를 컴퓨터 눈으로 바라볼 때 핵심은 작은 것 하나 또는 여러 개로부터 더 큰 것을 간단하게 이끌어 내는 다음 유도하기에 있습니다. 다음 유도하기에 기초하여 계산 자료를 알맹이로 요약하는 방법과 다음 유도하기로 계산 자료를 해석한 뒤 계산 과정 표현하는 방법을 알아봅니다.
  7. 쪼개 풀어 합치기
    계산 과정을 컴퓨터 눈으로 바라볼 때 핵심은 문제를 더 이상 나눌 수 없을 때 쓸 수 있는 쪼개 풀어 합치기에 있습니다. 쪼개 풀어 합치기로 계산 과정 표현하는 방법을 알아봅니다.
  8. 명령
    명령은 외부와 소통하며 수행하는 계산 과정입니다. 프로그래밍 언어에서 명령을 어떻게 표현하는지 알아봅니다.
  9. 함수 - 암흑 상자
    함수는 계산 과정을 표현하는 도구로 볼 수도 있지만 계산 과정 자체를 계산 자료의 일종으로 바꾸는 암흑 상자로 볼 수도 있습니다. 컴퓨팅 사고에서 함수를 암흑 상자로 해석하는 것이 왜 중요한지 알아봅니다.
  10. 꼬리물기 자기 부르기 함수
    자기 부르기 함수는 계산 범위가 커지면 제대로 작동하지 않을 수 있습니다. 꼬리물기 자기 부르기 함수를 통해서 이런 문제를 어떻게 해결하는지 알아봅니다.
  11. 병렬 계산
    가장 복잡한 계산 형태는 수행 주체 여러 개가 동시에 협력하며 계산을 수행하는 병렬 계산입니다. 프로그래밍 언어에서 병렬 계산을 어떻게 표현하는지 알아봅니다.

교재

본 강좌에서는 강사가 직접 집필한 교재를 씁니다. 강의 내용을 요약하였으며 PDF 문서로 제공됩니다.

프로그래밍 연습

본 강좌에서는 두 번째 주제 '계산 자료' 강의부터 Python 프로그래밍 연습이 있습니다. 별도의 소프트웨어 설치없이 웹브라우저 안에서 Python 프로그래밍을 연습할 수 있는 환경을 제공합니다. 또한 강의별로 프로그래밍 연습 페이지가 제공되므로 별도의 Python 교재가 필요 없습니다.

프로그래밍 숙제 채점 및 피드백

본 강좌에서는 네 번째 주제 '함수' 강의부터 Python 프로그래밍 숙제가 있습니다. 숙제는 자동으로 채점됩니다. 오답 제출시 오류를 직접 수정할 수 있도록 프로그램 분석 기술을 이용하여 전문성 있는 피드백을 제공합니다.

등록