'''이론 컴퓨터 과학 {{{#!wiki style="display: inline-block; font-family:Times New Roman, serif;font-style:italic"''' | |||||
{{{#!wiki style="margin: 0 -10px -5px; min-height: calc(1.5em + 5px)" {{{#!folding [ 펼치기 · 접기 ] {{{#!wiki style="margin: -5px -1px -11px" | <colbgcolor=#a36> 이론 | ||||
기본 대상 | 수학기초론{수리논리학(논리 연산) · 계산 가능성 이론 · 범주론 · 집합론} · 이산수학(그래프 이론) · 수치해석학 · 확률론 및 통계학 · 선형대수학 | ||||
다루는 대상과 주요 토픽 | |||||
계산 가능성 이론 | 재귀함수 · 튜링 머신 · 람다대수 · 처치-튜링 명제 · 바쁜 비버 | ||||
오토마타 이론 | FSM · 푸시다운 · 튜링 머신(폰노이만 구조) · 정규 표현식 · 콘웨이의 생명 게임 · 형식언어 | ||||
계산 복잡도 이론 | 점근 표기법 · 튜링 기계^고전, 양자, 비결정론적, 병렬 임의접근 기계^ · 알고리즘 · 자료구조 · 알고리즘 패러다임(그리디 알고리즘, 동적 계획법) | ||||
정보이론 | 데이터 압축(무손실 압축 포맷 · 손실 압축 포맷) · 채널 코딩(채널 용량) · 알고리즘 정보 이론(AIT) · 양자정보과학 | ||||
프로그래밍 언어이론 | 프로그래밍 언어(함수형 언어 · 객체 지향 프로그래밍 · 증명보조기) · 메타 프로그래밍 · 유형 이론 · 프로그래밍 언어 의미론 · 파싱 · 컴파일러 이론 | ||||
주요 알고리즘 및 자료구조 | |||||
기초 | 정렬 알고리즘 · 순서도 · 탐색 알고리즘 | ||||
추상적 자료형 및 구현 | 배열^벡터^ · 리스트^연결 리스트^ · 셋(set)^레드-블랙 트리, B-트리^ · 우선순위 큐^힙, 피보나치 힙^ | ||||
수학적 최적화 | 조합 최적화 | 외판원 순회 문제 · 담금질 기법 · 유전 알고리즘 · 기계학습 | |||
볼록 최적화 | 내부점 방법 · 경사하강법 | ||||
선형계획법 | 심플렉스법 | ||||
계산 수론 및 암호학 | 밀러-라빈 소수판별법 · Pollard-rho 알고리즘 · 쇼어 알고리즘 · LLL 알고리즘 · 해시(MD5 · 암호화폐 · 사전 공격(레인보우 테이블) · SHA) · 양자 암호 | ||||
대칭키 암호화 방식 | 블록 암호 알고리즘(AES · ARIA · LEA · Camellia) · 스트림 암호 알고리즘(RC4) | ||||
공개키 암호화 방식 | 공개키 암호 알고리즘(타원 곡선 암호 · RSA) · 신원 기반 암호 알고리즘(SM9) | ||||
계산기하학 | 볼록 껍질 · 들로네 삼각분할 및 보로노이 도형^Fortune의 line-sweeping 알고리즘^ · 범위 탐색^vp-tree, R-tree^ · k-NN | ||||
그래프 이론 | 탐색^BFS, DFS, 다익스트라 알고리즘, A* 알고리즘^ · 에드몬드-카프 · 크루스칼 알고리즘 · 위상 정렬 · 네트워크 이론 | ||||
정리 | |||||
정지 문제대각선 논법 · 암달의 법칙 · P-NP 문제미해결 · 콜라츠 추측미해결 | |||||
틀:이산수학 · 틀:수학기초론 · 틀:컴퓨터공학 | }}}}}}}}} |
1. 개요
1~100까지 짝수의 합이 변수 S에 저장되는 프로그램의 순서도 예시 |
어떤 일을 처리하는 과정을 간단한 기호와 화살표로 도식화한 그림. 주로 컴퓨터 프로그래밍에서 프로그램이 돌아가는 과정을 그림으로 나타낼 때 사용되는 일종의 블록선도이다. 이 순서도를 그리는 데 특화된 자(尺)를 템플릿, 또는 컴퓨터 도형자라고 부른다.
2. 기호
종류는 다음과 같다. MS 오피스에서도 삽입 > 도형 > 순서도를 들어가면 각 기호와 대략적인 설명이 나온다.- 흐름선: 화살표 방향으로 데이터의 흐름을 표시하는 선.
- 터미널: 소시지 모양. 순서도의 시작과 끝을 표시.
- 처리: 직사각형. 각종 연산이나 데이터 이동 등의 처리를 표시.
- 입출력: 옆으로 기울어진 평행사변형. 터미널에 의한 입출력 표시.
- 콘솔 입력: 왼쪽이 낮고 오른쪽이 높은 사다리꼴[1]. 사용자가 키 조작 등으로 입력하는 것을 표시.
- 카드 입력: 왼쪽 위 귀퉁이가 살짝 잘려나간 직사각형. 천공 카드를 매체로 하는 입출력을 표시한다. 현재는 천공 카드가 거의 사장된 저장매체라 실무에서 이 기호를 보긴 어렵다.
- 화면 출력: 길쭉한 대포알 모양. 처리 결과를 화면에 출력한다.
- 프린터 출력: 직사각형 아랫변이 물결로 바뀐 모양. 프린터로 출력한다.
- 준비: 옆으로 길쭉한 육각형. 초기 변수 설정 등을 표시.
- 판단: 옆으로 길쭉한 마름모. 조건에 따른 분기 등을 표시.
- 연결자: 동그라미. 같은 페이지 안에서 흐름이 다른 곳과 연결되는 입출구를 표시.
- 페이지 연결자: 곧은 역오각형[2]. 다른 페이지에 흐름이 계속될 때 표시.
- 반복: 가로 왈(曰)자 모양. 윗칸에는 반복 조건을 적어놓고 아래칸에 반복 작업을 위의 기호들로 나열한다.
현대에는 순서도의 도형 중 사각형(처리), 마름모(조건분기), 동그라미(처리 시작/끝) 정도만 사용한다. 예외로 드럼통 기호(자기디스크)를 데이터베이스 처리 기호로 전용해서 쓰기도 하고 천공 카드 기호를 외부 리소스 파일을 나타내는 기호로 쓰기도 한다. 기호의 원래 의미대로 쓰는 게 아니므로 해석할 때 주의가 필요하다. 현대적인 프로그래밍 환경에 맞춰 엄격한 기호 체계를 사용하고 싶다면 UML이 있으니 그걸 사용하는 게 좋다. 그 외에 원래 순서도에는 정의되어 있지 않은 구름 모양 기호가 등장하기도 하는데, 클라우드 컴퓨팅 환경임을 의미한다.
3. 예시
쉬운 예시.
오버클럭 문서에 나오는 AMD K10 마이크로아키텍처 CPU들의 컷칩 과정.
xkcd 1488화. 단 이 만화는 시작은 순서도이지만 뒤로 가면서 다이어그램이 회로도로 바뀐다.
무분별한 지름신을 방지하기 위한 자가진단을 순서도로 표현한 것이다.
4. 관련 프로그램
- 이드로우 맥스(EdrawMax):순서도,평면도,회로도 프로그램. 한국어 지원.
- Dia Diagram Editor: Windows, Mac OS X 및 Linux 무료 소프트웨어.
- Diagrams.net: 무료 온라인 순서도 도구. 구글 드라이브를 통한 공동 작업 지원.
- GitMind: 무료 온라인 순서도 및 마인드 맵 도구.
- Gliffy: 협업 다이어그램 도구.
- Microsoft Visio: 그림이나 도표를 그리는 소프트웨어.
- RAPTOR: 프로그램 도구.
- Miro - 플로우차트, 순서도, 마인드맵 등 무료 시각 협업 플랫폼. 한국어 지원.
- Flowcode: 마이크로 컨트롤러용 프로그래밍 언어
- 숨: 범용 프로그래밍 언어