What is computer science and engineering?
Computer Science and Engineering(이하 CSE)은 계산, 자동화 및 정보를 연구하는 학문입니다.
CSE는 알고리즘, 계산 이론, 정보 이론, 자동화 등의 이론적 분야부터 하드웨어 및 소프트웨어의 설계와 구현 등의 실용적 분야까지 포괄합니다.
CSE는 컴퓨터를 이용하여 주어진 문제를 계산 가능하게 합니다.
CSE를 “Computational Thinking”과 “Problem Solving”의 두 영역으로 나누어 볼 수 있습니다.
- “Computational Thinking”: 현실의 문제를 컴퓨터가 이해할 수 있는 (계산 가능한) 방식으로 정의하는 과정
- “Problem Solving”: 정의가 된 문제에 대한 풀이법을 자료구조나 알고리즘을 사용하여 코드로 작성하는 과정
Computational Thinking의 방법론
- Decomposition: 전체 문제를 작은 여러가지 문제로 나누는 과정.
- Pattern Recognition: 주어진 문제에서 반복적으로 나타나는 패턴을 찾는 과정.
- Abstraction: 문제에서 해결해야할 주요한 정보를 수치화(또는 계산 가능하게)하는 과정.
- Algorithmic Thinking (Algorithm Design): 문제를 해결하는 과정을 step-by-step으로 만드는 과정.
- Automation: 컴퓨터를 이용해 문제 해결 절차를 자동화하고, 문제를 효율적으로 해결하는 과정.
Problem Solving
- 자료구조나 알고리즘을 사용하여 주어진 문제에 대한 풀이법을 코드로 작성하는 과정을 말합니다.
여기에는 특정 요구 사항을 해결하거나 원하는 결과를 얻기 위해 소프트웨어 또는 시스템을 설계, 구현, 테스트 및 최적화하는 작업이 포함됩니다. - (일반적으로 불리는) Problem Solving(PS)은 CSE에서 정의하는 각 분야에 맞는 문제로 정의되며, 이를 해결하는 알고리즘을 설계하는 것을 말합니다.
- (코딩 테스트 분야) Problem Solving(PS)은 LeetCode, CodeForce로 대표되는 코딩 문제를 해결하기 위한 분야를 이야기합니다. 문제 해결을 위한 방법론들(여러가지 풀이 스킬들)이 있으며, 주어진 제한 조건을 만족하는(e.g. Memory capacity, Time limit) 코드를 작성해서 해당 문제에 대한 “정확한” 정답을 출력해야 합니다. 알고리즘을 설계하고 코드로 풀어내는 것을 연습하기 위해서 만들어진 분야입니다.
아래 분야들은 CSE에 포함되는 여러 분야 중 보통 중요하게 다루는 분야들입니다.
- Basic Concepts of Programming Languages
- Data Structure and Algorithms
- Computer Architecture
- Operating System
- Database System
- Computer Network
- Software Engineering
위 분야들 이외에도 CSE에서는 아래와 같은 과목들을 공부한다고 합니다. (선택 과목)
- System of Digital Circuit
- Embedded System
- Introduction to Compiler Design
- Distributed System Concepts
- Linear Algebra
- Introduction to Statistics
- Numerical and GPU Computing
- Linux Kernel Development
- Scientific Computing
- Computer Graphics
- Introduction to Cryptography
- Machine Learning
- Automata
- Discrete Mathematics
- BigData Mining
이 중에서 Upstage AI Lab 과정 중에 공부한 아래 분야들의 주요 내용들을 정리해 보았습니다.
- Data Structure and Algorithms / Computer Architecture / Operating System / Database System / Computer Network
'Upstage AI Lab 5기' 카테고리의 다른 글
Data Structure and Algorithms (2) (1) | 2024.10.23 |
---|---|
Data Structure and Algorithms (1) (0) | 2024.10.23 |
AI를 위한 통계학 (Statistics for Artificial Intelligence) (2) | 2024.10.09 |
AI Engineer로의 첫 걸음 (11) | 2024.10.09 |
Upstage AI Lab 5기 교육 수강 시작... (4) | 2024.10.09 |