본문 바로가기
통계와 빅데이터

[ 파이썬컴퓨팅 ] 컴퓨팅 사고

by MumMummi 2024. 8. 31.
현실에서의 프로그램 vs 코딩을 통한 프로그램 차이 파악
프로그래밍의 기반이 되는 컴퓨팅 사고 개념 이해
프로그램의 구조인 순차 구조, 선택 구조, 반복 구조 학습 

 

1. 프로그래밍의 기본 원리 

  • 현실의 프로그램은 전체 과정을 여러 개의 작은 과정으로 분할하고, 작은 과정의 순서가 명확하게 정해져있으며, 각각의 과정은 구체적이고 다른 해석의 여지가 없다는 특징이 있다. 
  • 컴퓨터, 스마트폰을 이용할 때의 공통점은 소프트웨어를 이용한다는 점인데, 하고 싶은 일을 지원해주는 소프트웨어가 없다면 프로그래밍을 통해 직접 개발을 할 수 있다. 
    • 실제로 스마트폰 초창기 서울시 시내버스 정보 앱을 만들어 인기를 끌었던 적이 있음 

 

2. 컴퓨팅 사고

  • 컴퓨팅 사고는 컴퓨터를 이용해서 문제를 해결하려는 논리 체계로 고전적인 사고에 반대되는 개념이다. 
    • 전자계산기로 정리하던 성적을 엑셀로 정리하는 것
    • 발표 자료를 펜과 종이로 쓰지 않고 파워포인트로 쓰는 것
    • SW가 없으면 일을 못하는 것을 코드를 사용해서 하도록 하는 것
  •  일과를 프로그램으로 만들려면 일과를 단위 작업으로 분할하고, 분할된 단위 작업의 순서를 명시하여 수행할 수 있으며, 이러한 것이 컴퓨팅 사고의 예시로 볼 수 있다. 

 

3. 프로그램의 구조 

1) 순차 구조 (Sequence) 

  • 하나의 작업을 수행한 다음, 다음에 예정된 작업을 수행하는 것을 의미하며, 하나의 코드를 수행한 후에 그 다음에 위치하는 코드를 수행하는 구조이다. 
  •  일과에서 프로그램의 시작은 1. 일어난다이고 끝은 10.잔다 라면 순차 구조란 이 중간에서 i번째 일을 한 다음 i+1번째 일을 하도록 하는 것이다. 

 

2) 선택 구조 (Selection) 

  • 다음에 수행할 작업을 조건을 적용해서 결정하는 것으로 프로그램 코드의 수행 순서를 조건식에 따라서 결정하는 구조이다. 어떤 조건을 만족하느냐의 여부를 판단하고 (if then), 그 조건을 만족하면 다음 위치의 코드를 실행한다. 
  • 선택 구조에는 여러 종류가 있는데, 조건식이 참이면 코드를 실행하는 if구조, 조건식이 참이면 a를, 조건식이 거짓이면 b를 수행하는 if-else구조, 그리고 if-else-if-else 구조가 있다. 
  • if-else-if-else 구조란, 조건식이 1이 참이면 a를 수행, 거짓이면 조건식 2를 검사하여 참이면 b를 수행, 거짓이면 c를 수행하는 구조이다. 
  • 한편 switch 구조는 조건이 1이면 a, 2이면 b, 3이면 c 그리고 아무것에도 안맞으면 d를 실행하는 구조이다. (단 switch문은 파이썬에서는 제공하지 않는다.) 
# if - else - if - else 구조
if (배고프면) 
	밥을 먹는다. 
elif (배가 고픈지 안고픈지 잘 모르겠으면) 
	간식을 먹는다. 
else 
	아무 것도 먹지 않는다.

 

3) 반복 구조 (iteration) 

  • 어떤 조건을 만족하는 동안 지정된 작업을 반복하는 구조로 어떤 조건을 만족시키는 동안 수행하는 조건 반복, 몇 번 반복할 것인지를 미리 설정하고 수행하는 횟수 반복, 설정된 집합의 모든 원소를 한 번씩 거쳐가는 원소 반복이 있다. 
  • 조건반복은 무한정 반복하는 것이 아니고, 현재 만족시키고 있는 어떤 조건을 설정 후 이 조건이 아직 만족되는지를 점검하는 형태이다. 조건이 만족되면 다시 반복, 조건이 만족되지 않으면 반복을 끝내고 넘어가는 것이다. 
# 조건 반복
카운터를 0으로 초기화
while (카운터가 미리 정한 값보다 작은가) : 
	작업
	카운터 증가
  • 횟수 반복은 특수한 조건 반복으로 볼 수 있으며, 설정한 횟수만큼 반복을 하는 구조기에 카운터가 필수적이다. 횟수반복은 시작할 때 카운터를 초기화하고, 작업이 카운터를 증가시킨다. 이후 정해진 종료값과 횟수가 일치하면 작업을 중단, 작으면 반복을 계속하는 것이다. 
  • 여기서 카운터를 0으로 설정하는 것은 초기화라고 부르며, 카운터의 값을 증가시키는 것을 증가문, 카운터가 최종 종료값보다 작은지 비교하는 작업을 종결 조건 검사라고 한다. (횟수 반복은 for를 사용한다.) 
for (카운터를 0으로 초기화; 카운터가 종료값보다 작은지 확인; 카운터를 1 증가): 
	작업
  • 원소반복은 유한 개의 원소를 가지고, 순서대로 반복을 수행하는 것이다. 첫번째 원소부터 마지막 원소까지 한번씩 작업을 수행하는 것을 반복한다. 
운동리스트 = (푸시업, 싯업, 스쿼트, 런지, 풀다운) 
for 운동 in 운동 리스트: 
	운동을 한다.