[이산수학 - 1강] 이산수학은 무엇이며 왜 배우는 걸까?
한국방송통신대학교 이산수학 강의 1강을 듣고 공부한 내용을 정리한 포스팅입니다
1강의 학습목표
-
이산적인 데이터와 연속적인 데이터를 구분할 수 있다.
-
문제 해결과정에 사용되는 용어들을 도구, 기법, 방법론으로 구분할 수 있다.
-
추상화의 의미를 이해할 수 있다.
-
알고리즘을 기술하기 위한 의사코드의 사용법을 이해하고 올바르게 사용할 수 있다.
- 이산수학 ( discreate mathmatics ) 이란?
-
이산적인 ( < -> 연속적인 ) 수학구조에 대해서 연구하는 학문
-
이산적 데이터를 처리 ( ex: 아날로그 시그널, 데이터 - 변환 -> 디지털 시그널, 데이터 ) 하기 위해 필요한 수학
이산수학의 주요내용
논리, 증명, 집합, 행렬, 관계, 함수, 부울대수, 그래프, 트리, 조합이론, 알고리즘, 오토마타 및 형식 언어
학습 목적
- 문제해결 방법을 모델링하고 구현하는 과정에서 사용되는 수학구조를 이해하고 활용하기 위해
- 수학적 추론 기법을 익히기 위해
- 새로운 개념을 체계화시키고 표현할 수 있는역량을 함양하기 위해
- 수학의 도구, 기법, 방법론
도구 : 정의, 정리
기법 : ex) 대입법, 가감법, 근의 공식 ...
방법론 : 상황에 따라 사용할 기법을 선택하는 것
- 추상화
위와 같은 도구, 기법, 방법론을 활용해 문제를 해결하려면 우선 실생활의 문제를 수학적 모델로 변화시켜야 한다. 이러한 과정을 수학적 모델링이라고 한다.
- 수학적 모델링을 이용한 문제 해결 과정 : 문제 -> 추상모델 -> 변형된 모델 -> 문제의 해결책
만약 실생활의 문제를 컴퓨터로 해결하려고 한다면 문제를 컴퓨터의 영역으로 옮기는 과정이 필요하다. 이를 정보 모델링 이라고 한다.
- 정보 모델링을 이용한 문제 해결 과정 : 문제 -> 정보 -> 처리 -> 문제의 해결책
이 과정에서 사용되는 것이 추상화다. 추상화란 문제와 관련된 핵심 내용만 남기고 관련 없는 내용을 제거하여 문제를 단순화 시키는 과정이다. 이를 잘 활용하면 복잡한 실생활의 문제도 수학적 도구로 표현하고 수학적 기법을 통해 해결할 수 있다.
- 의사 코드
알고리즘
어떠한 문제를 해결하기 위한 단계적인 컴퓨터 명령어들의 집합을 알고리즘이라고 한다
알고리즘의 표현
- 컴퓨터 프로그래밍 언어
- 순서도 ( flow chart )
- 의사 코드
- 컴퓨터 프로그래밍 언어 : 동작을 세밀하게 지시할 수 있지만 프로그래밍 언어의 문법 등 부차적인 표현에 신경써야 해서 알고리즘의 핵심요소가 잘 드러나지 않을 수 있다.
- 순서도 : 작동 방식을 도식화할 수 있지만 내용이 복잡할 경우 표현하기가 어렵다
- 의사 코드 : 모호한 부분은 프로그래밍 언어의 문법을 채용하고, 구체적으로 표현할 필요가 없는 부분은 자연어를 통해 설명하여 알고리즘의 작동방식을 표현하는 용도로만 사용하는 유사 프로그래밍 코드.
할당문과 제어문
의사코드에서 사용되는 명령어는 할당문과 제어문으로 나누어진다
- 할당문
값을 저장하기 위한 구문
- 제어문
알고리즘의 흐름을 제어하는 구문 순차문과 조건문, 반복문으로 나누어진다.
- 순차문 : 위에서부터 아래로 순차적으로 실행되는 구문
- 조건문 : if~else, switch
- 반복문 : for, while , foreach