목차
이번 포스팅에서는 컴퓨터공학과에서 배우는 과목과 대학순위를 알려드리겠습니다.
1. 컴퓨터공학과 대학순위
no. | 대학명 | 학과명 |
1 | 카이스트 | 전산학부 |
2 | 서울대학교 | 컴퓨터공학부 |
3 | 고려대학교 | 컴퓨터학과 |
4 | 연세대학교 | 컴퓨터과학과 |
5 | 포항공과대학교 | 컴퓨터공학과 |
6 | 한양대학교 | 컴퓨터소프트웨어학부 |
7 | 성균관대학교 | 소프트웨어학과 |
8 | 서강대학교 | 컴퓨터공학과 |
9 | 중앙대학교 | 소프트웨어학부 |
10 | 서울시립대학교 | 컴퓨터과학부 |
위에 열거한 컴퓨터공학과 대학교 순위에는 오차가 있을 수 있으니, 참고용으로만 보시면 될 것 같습니다.
2. 컴퓨터공학과 배우는 과목
컴퓨터공학과에서는 컴퓨터 하드웨어와 소프트웨어에 이르기까지 컴퓨터 시스템의 전반적인 이해를 돕는 다양한 과목을 배웁니다. 프로그래밍 언어와 알고리즘, 자료구조, 운영체제, 컴퓨터 구조, 데이터베이스, 인공지능, 컴퓨터 네트워크 등 컴퓨터 공학의 핵심 이론과 실무를 아우르는 과목들을 순차적으로 학습하게 됩니다.
프로그래밍 기초
변수와 데이터 타입에 대한 개념을 배우게 되며, 기본적인 연산자의 사용법도 익힙니다. 제어문(if, for, while 등)을 사용하여 프로그램의 흐름을 제어하는 방법도 학습합니다.
또한 함수의 정의와 사용, 배열 다루기 등 프로그램을 모듈화하는 방법들도 다루게 됩니다. 객체 지향 프로그래밍의 기초 개념과 클래스의 정의와 사용에 대해서도 알아보고 실습합니다.
마지막으로 입출력 처리와 같은 프로그램의 기본 구성 요소를 학습하게 됩니다.
이와 같이 "프로그래밍 기초" 과목은 실제 프로그램 개발에 필요한 중요한 기초 지식과 기술을 익히는 과정입니다.
자료구조
먼저 자료구조의 기본 개념부터 시작하여, 배열, 연결 리스트, 스택, 큐, 트리, 그래프 등 다양한 자료구조에 대해 공부합니다. 각 자료구조의 정의, 장단점, 구현 방법을 이해하고, 실제 코딩을 통해 구현 연습을 합니다.
또한 검색 알고리즘과 정렬 알고리즘에 대해서도 자세히 다룹니다. 선형 검색, 이진 검색, 버블 정렬, 삽입 정렬, 합병 정렬 등 기본 및 활용도 높은 알고리즘을 중점적으로 파악합니다.
마지막으로 시간 및 공간 복잡도 분석 능력을 기르기 위해 알고리즘의 성능 분석 방법도 학습하게 됩니다.
알고리즘
알고리즘 과목에서는 알고리즘의 기초 개념부터 다양한 알고리즘 설계 기법과 구체적인 알고리즘들에 대해 배웁니다.
먼저 알고리즘의 정의와 성능 분석 방법에 대해 이해합니다. 점근적 표기법을 사용하여 시간 복잡도 및 공간 복잡도를 분석하는 법을 배웁니다.
다양한 알고리즘 설계 기법으로 분할 정복 알고리즘, 탐욕 알고리즘, 동적 계획법 등을 학습합니다. 이를 통해 복잡한 문제를 단순하고 효율적으로 해결할 수 있는 알고리즘을 설계할 수 있습니다.
또한 구체적인 알고리즘으로 정렬 알고리즘, 그래프 알고리즘, 문자열 알고리즘 등을 학습하고 실제로 구현해보는 연습을 통해 알고리즘 능력을 기릅니다.마지막으로 알고리즘 문제 해결 능력 향상을 위한 문제 해결 연습도 병행합니다.
운영체제
운영체제 과목에서는 운영체제의 기본적인 개념과 구조 및 작동 원리를 배웁니다.
운영체제의 주요 기능인 프로세스 관리, 메모리 관리, 파일 시스템, 입출력 관리 등을 자세히 알아봅니다. 이를 통해 운영체제가 시스템 자원을 어떻게 효율적으로 관리하고 있는지 이해할 수 있습니다.
또한 프로세스 동기화 문제를 해결하기 위한 세마포어, 뮤텍스, 모니터와 같은 동기화 기법도 다룹니다. 교착상태, 기아상태 등의 문제를 파악하고 이를 방지하는 방법을 배웁니다.
CPU 스케줄링 알고리즘과 메모리 관리 전략 등 하드웨어와의 상호작용을 위한 운영체제 기능도 중요하게 다루어집니다. 가상 메모리, 페이징 등의 개념도 학습합니다.
컴퓨터 구조
컴퓨터 구조 과목에서는 컴퓨터 하드웨어 및 시스템의 동작 원리를 배웁니다.
먼저 트랜지스터, 논리게이트, 플립플롭과 같은 디지털 논리 회로에서부터 출발하여 컴퓨터의 기본 구조를 이해합니다.
CPU의 동작 원리, 명령어 집합 아키텍처, 산술논리연산장치(ALU), 제어장치 등 중앙처리장치의 세부 구성요소와 실제 동작 방식을 자세히 공부합니다.
캐시 메모리, 주기억장치인 DRAM과 보조기억장치인 디스크 등의 저장장치 계층과 메모리 계층간 데이터 전송 원리도 학습합니다.
인터럽트, 입출력 인터페이스와 같은 시스템 버스 구조 및 작동방식도 중요한 내용입니다.마지막으로 컴퓨터의 성능 향상을 위한 파이프라이닝, 슈퍼스칼라 구조 등의 최적화 기법도 배우게 됩니다.
데이터베이스
데이터베이스 과목에서는 데이터베이스의 기본 개념부터 설계, 구축, 운영까지 다양한 내용을 배웁니다.
먼저 데이터베이스의 기본 개념, 데이터 모델링, 데이터베이스 설계의 이론과 방법론을 배웁니다.
실습을 통해 ERD 다이어그램을 직접 작성해보며, 정규화 과정을 통해 적절한 데이터베이스 스키마를 설계해 봅니다.SQL과 데이터베이스 프로그래밍을 학습하여, 실제로 데이터베이스를 구축하고 데이터를 조작해보는 연습을 진행합니다.
데이터베이스의 튜닝과 최적화 기법을 배워 성능을 향상시키는 방법도 알아봅니다.
마지막으로 트랜잭션과 동시성 제어, 데이터베이스 보안 등 데이터베이스 시스템의 고급 주제들도 다루게 됩니다.
인공지능
인공지능 과목에서는 인공지능의 기초 개념부터 실제 응용 기술까지 다양한 내용을 배웁니다.
먼저 인공지능의 기본 개념, 정의, 역사를 이해하고, 문제 해결 에이전트, 문제 공간, 추론, 불확실성 다루기 등의 기초 이론을 학습합니다.
전문가 시스템, 기계 학습, 자연어 처리와 같은 인공지능의 주요한 응용 분야와 알고리즘을 자세히 공부합니다. 특히, 머신러닝과 딥러닝 알고리즘을 집중적으로 다룹니다.
프로젝트나 실습을 통해 실제 인공지능 시스템을 분석 및 설계해보고 구현해봄으로써 이론과 실무를 연결합니다.
마지막으로 인공지능 윤리, 사회적 영향 등을 토론하며 인공지능 기술을 바람직하게 활용하는 법을 모색합니다.
컴퓨터 네트워크
컴퓨터 네트워크 과목에서는 컴퓨터 네트워크의 기초 개념부터 네트워크 프로토콜과 구조, 응용 기술 등을 배웁니다.
먼저 네트워크의 기본 개념, 통신 모델을 이해하고, 네트워크 하드웨어와 프로토콜 스택에 대해 공부합니다.
TCP/IP 프로토콜의 작동 원리, LAN/WAN의 이더넷, IP 주소체계, 서브넷팅 등을 자세히 알아봅니다.
TCP와 UDP를 비롯한 전송 계층 프로토콜과 IP 라우팅, ICMP, HTTP 프로토콜 등 응용 계층 프로토콜을 중점적으로 다룹니다.
네트워크 보안의 필요성과 방화벽, VPN, IPSec 등의 주요 기술도 학습합니다.
마지막으로 소켓 프로그래밍을 통한 네트워크 응용 프로그램 개발 실습도 병행합니다.