개요
Computer Science 분야의 다양한 주제들을 폭넓게 다룹니다.
특히 프로그래밍의 기초 및 기반이 되는 내용들을 중심으로, 여러 세부 분야에서 필요로 하는 개념, 중요하다고 생각하거나 흥미있는 주제들을 주로 다룹니다.
수학과 컴퓨터 과학 두 분야에 모두 관심이 있기 때문에 컴퓨터 과학 관련 주제들에도 수학적으로 접근하고자 할 것입니다.
즉, 빠르고 실전적인 사용법이나 해결 방법보다, 주로 주제에 대한 충분한 논리적, 수학적 이해를 바탕으로 추상적인 기술적 접근법이나 구현 방법을 설명하는 데 중점을 둘 것입니다.
Contents / 목차
Programming Basics / 프로그래밍 기초
Basic concepts and core principles of programming / 프로그래밍의 기본 개념과 핵심 원리
- Programming fundamentals / 프로그래밍 기초
- Variables and data types / 변수와 데이터 타입
- Arrays and pointers / 배열과 포인터
- Structures / 구조체
- Operations and operators / 연산과 연산자
- Conditional statements / 조건문
- Loops and iterations / 반복문과 루프
- Functions and modular programming / 함수와 모듈화 프로그래밍
- Input and output / 입출력
Algorithm Basics / 알고리즘 기초
Basic concepts and knowledge of algorithms / 알고리즘의 기본 개념과 기초 지식
- Algorithm complexity and Big O notation / 알고리즘 복잡도와 Big O 표기법
- Boolean algebra and bitwise operations / 불 대수와 비트 연산
- Binary search / 이진 탐색
Data Structures / 자료구조
Fundamental data structures and their applications / 기초적인 자료구조와 활용
Trees / 트리
Concepts and basics of trees / 트리의 개념과 기초
- Tree fundamentals / 트리 기본 개념
- BFS and DFS / BFS와 DFS
- Binary search trees / 이진 탐색 트리
- Heaps and priority queues / 힙과 우선순위 큐
Sorting Algorithms / 정렬 알고리즘
Major sorting algorithms / 주요 정렬 알고리즘
- Bubble sort / 버블 정렬
- Selection sort / 선택 정렬
- Insertion sort / 삽입 정렬
- Merge sort / 병합 정렬
- Quick sort / 퀵 정렬
- Radix sort / 기수 정렬
- Suffix arrays / 접미사 배열
Graphs / 그래프
Basic concepts and algorithms of graphs / 그래프의 기본 개념과 알고리즘
- Graph representations / 그래프 표현 방식
- Shortest path algorithms / 최단 경로 알고리즘
- Topological sorting / 위상 정렬
- Minimum spanning trees / 최소 신장 트리
Algorithm Design Paradigms / 알고리즘 설계 기법
Algorithm design techniques and applications / 알고리즘 설계 기법과 응용
- Divide and conquer / 분할 정복
- Greedy algorithms / 탐욕 알고리즘
- Dynamic programming / 동적 프로그래밍
- Recursion / 재귀
- Approximation algorithms / 근사 알고리즘