컴퓨터공학·소프트웨어 계열에서 무엇을 배우는지 학기별로 살펴보고 수료 프로젝트와 연결할 독학 실습을 안내합니다. 모든 과목을 같은 깊이로 공부하기보다 공통 기반을 익힌 뒤 목표 직무의 선택 과목을 검토합니다.
대학마다 다르며 대표적인 구성입니다. 기존 컴퓨터공학과 안내의 학년별 핵심 과목을 유지하고 응용·선택 과목을 더했으며, 모든 대학이 이 과목을 전부 개설하거나 필수로 지정한다는 뜻은 아닙니다. coverage는 기존 개요의 웹 개발 국비 과정을 기준으로 covered는 주요 내용을 실습하는 편, partial은 일부만 접하는 편, rare는 별도 학습이 필요한 편으로 표시하며 개인의 숙련도를 뜻하지 않습니다. 연결한 책은 실습 보조 자료이며 수학·회로·계산이론 등에는 별도의 강의와 연습문제 자료도 활용합니다.
1학년
프로그래밍과 수학으로 문제를 표현합니다.
1학년 전공 과목과 독학 대응
학기
과목
설명
국비 과정에서 다루는 정도
독학 대응
책
1학기
프로그래밍기초
변수·조건·반복·함수로 입력을 처리하고 오류를 추적합니다.
다룸
수료 프로젝트의 입력 처리를 작은 함수로 옮기고 정상·잘못된 입력의 결과를 확인합니다.
1학기
컴퓨터개론
하드웨어와 소프트웨어의 역할 및 컴퓨터 분야의 연결을 살펴봅니다.
일부
프로그램 실행부터 화면 출력까지 CPU·메모리·운영체제가 맡는 일을 그림으로 정리합니다.
1학기
미적분학
함수의 극한·변화율·적분으로 연속적인 변화를 표현합니다.
거의 없음
함수 그래프를 그린 뒤 미분과 적분의 의미를 설명하고 작은 수치 계산으로 비교합니다.
1학기
이산수학
집합·명제·관계·증명으로 계산 문제의 조건을 표현합니다.
거의 없음
권한 조건을 논리식으로 쓰고 진리표와 코드의 결과를 비교합니다.
1학기
컴퓨팅실습
편집기·터미널·버전 관리로 프로그램을 작성하고 실행합니다.
다룸
빈 실습 폴더에서 프로그램을 실행하고 Git 기록과 재현 절차를 남깁니다.
2학기
프로그래밍응용
여러 함수와 파일을 연결하고 자료형·예외·입출력을 다룹니다.
다룸
파일을 읽어 집계하는 프로그램을 만들고 잘못된 형식과 파일 누락을 처리합니다.
2학기
선형대수
벡터·행렬·연립방정식과 선형변환으로 데이터를 표현합니다.
거의 없음
작은 행렬의 곱을 직접 계산하고 코드 결과와 비교하며 차원의 의미를 확인합니다.
2학기
이산수학응용
그래프·조합·귀납적 사고로 연결과 경우의 수를 분석합니다.
거의 없음
선수 과목 관계를 그래프로 표현하고 순환 관계가 없는지 확인합니다.
2학기
웹프로그래밍기초
HTML·CSS·JavaScript로 문서 구조와 상호작용을 구현합니다.
다룸
입력 폼을 만들고 키보드 조작·입력 오류·화면 크기 변화를 확인합니다.
2학기
기술문서와 문제해결
문제의 조건과 해결 과정을 문서와 코드로 전달합니다.
일부
공식 문서 예제를 실행한 뒤 적용 버전·전제 조건·실패 사례를 README에 기록합니다.
2학년
데이터 표현과 컴퓨터 실행의 기반을 익힙니다.
2학년 전공 과목과 독학 대응
학기
과목
설명
국비 과정에서 다루는 정도
독학 대응
책
1학기
자료구조
리스트·스택·큐·트리·해시의 저장 방식과 연산 비용을 학습합니다.
일부
같은 검색 작업을 배열과 해시로 구현하고 입력 증가에 따른 작업량을 비교합니다.
1학기
객체지향프로그래밍
객체·상속·인터페이스로 책임과 협력 관계를 구현합니다.
다룸
수료 프로젝트에서 업무 규칙과 저장 기능을 분리하고 테스트로 동작을 확인합니다.
1학기
디지털논리회로
논리게이트·조합회로·순차회로로 디지털 동작을 설계합니다.
거의 없음
진리표에서 논리식을 구한 뒤 회로 시뮬레이터로 출력과 상태 변화를 확인합니다.
1학기
확률과통계
확률분포·표본·추정으로 불확실한 관측을 해석합니다.
거의 없음
작은 데이터의 평균·중앙값·분포를 비교하고 표본을 바꿨을 때 결과가 달라지는지 확인합니다.
1학기
프로그래밍언어론
타입·범위·값 전달·실행 모델을 통해 언어의 차이를 이해합니다.
거의 없음
서로 다른 언어의 참조 공유와 변수 범위를 같은 예제로 비교합니다.
2학기
자료구조응용
트리·그래프·우선순위 큐를 문제의 데이터 특성에 맞게 적용합니다.
거의 없음
의존 관계를 그래프로 저장하고 방문 기록을 사용해 순회 결과를 검증합니다.
2학기
컴퓨터구조
명령어·프로세서·메모리 계층이 코드를 실행하는 방식을 학습합니다.
거의 없음
연속 데이터와 흩어진 데이터의 접근을 비교하고 캐시와 입출력의 역할을 설명합니다.
2학기
시스템프로그래밍
프로세스·파일·메모리와 운영체제 인터페이스를 코드로 다룹니다.
거의 없음
실습 환경에서 파일 입출력과 프로세스 실행을 구현하고 실패 시 자원 해제를 확인합니다.
2학기
웹프로그래밍응용
요청·응답과 데이터 저장을 연결해 웹 서비스를 구현합니다.
다룸
화면·API·DB를 연결하고 로그인·입력 검증·오류 응답을 직접 확인합니다.
2학기
수치계산기초
근사 계산과 오차를 다루고 반복적인 수치 해법을 비교합니다.
거의 없음
부동소수점 덧셈 순서에 따른 차이를 관찰하고 근사값의 허용 오차를 정합니다.
3학년
이론을 서비스의 동작과 검증에 연결합니다.
3학년 전공 과목과 독학 대응
학기
과목
설명
국비 과정에서 다루는 정도
독학 대응
책
1학기
운영체제
프로세스·스케줄링·동기화·가상메모리·파일시스템의 관리 원리를 학습합니다.
거의 없음
경쟁 상태를 재현하고 잠금 적용 전후 결과와 실행 중인 프로세스의 자원 사용을 비교합니다.
1학기
알고리즘
탐욕법·분할정복·동적 계획법을 적용하고 정확성과 복잡도를 분석합니다.
일부
같은 문제를 다른 전략으로 풀고 반례·종료 조건·시간 및 공간 비용을 기록합니다.
1학기
데이터베이스
관계형 모델·정규화·SQL·트랜잭션·인덱스로 데이터 일관성을 다룹니다.
일부
SQL 실습에 키·제약조건·롤백 검증을 더하고 동시 수정과 실행계획을 관찰합니다.
1학기
컴퓨터네트워크
계층별 프로토콜·주소·라우팅·신뢰성 있는 전송을 학습합니다.
일부
실습 환경에서 DNS 조회·연결·HTTP 요청을 관찰하고 단계별 실패를 구분합니다.
1학기
소프트웨어공학
요구사항·설계·구현·테스트·변경 관리의 관계를 학습합니다.
일부
사용자 요구와 인수 조건을 작성하고 코드 변경·리뷰·검증 결과를 연결합니다.
2학기
데이터베이스응용
질의 최적화·동시성 제어·데이터 모델의 적용과 한계를 비교합니다.
일부
느린 질의의 실행계획과 인덱스 변경 전후를 비교하고 쓰기 비용도 기록합니다.
2학기
소프트웨어테스팅
테스트 설계·자동화·품질 평가로 요구한 동작을 검증합니다.
일부
업무 규칙의 경계·실패 테스트와 실제 연결을 확인하는 통합 테스트를 구분해 작성합니다.
2학기
사용자인터페이스
사용 흐름·접근성·사용성 평가를 바탕으로 화면을 설계합니다.
일부
수료 프로젝트의 핵심 기능을 키보드로 실행하고 로딩·오류·빈 결과 상태를 점검합니다.
2학기
임베디드시스템
장치 입출력·인터럽트·시간 제약을 고려한 프로그램을 구현합니다.
거의 없음
장치 시뮬레이션에서 입력 주기와 지연을 측정하고 비정상 입력의 처리 방식을 확인합니다.
2학기
계산이론
오토마타·형식언어·계산 가능성과 복잡도 분류를 학습합니다.
거의 없음
간단한 문자열 규칙을 상태 전이로 표현하고 허용·거부 입력의 실행 경로를 기록합니다.
4학년
핵심 선택 과목과 팀 설계로 관심 분야를 확장합니다.
4학년 전공 과목과 독학 대응
학기
과목
설명
국비 과정에서 다루는 정도
독학 대응
책
1학기
캡스톤디자인: 설계·구현
팀이 실제 문제를 정하고 요구사항·설계·구현을 연결합니다.
일부
수료 프로젝트의 사용자 문제를 다시 정의하고 대안 비교와 검증 가능한 요구사항을 작성합니다.
1학기
분산시스템
분산 환경의 통신·복제·일관성·부분 장애를 학습합니다.
거의 없음
격리된 실습 서비스에서 시간 초과와 중복 요청을 발생시키고 저장 결과의 일관성을 확인합니다.
1학기
정보보안
인증·접근 제어·암호의 역할·취약점과 방어 원리를 학습합니다.
일부
타인 데이터 접근과 입력 공격을 테스트하고 보호 대상·신뢰 경계·방어 근거를 기록합니다.
1학기
인공지능
탐색·추론·기계학습으로 문제를 해결하고 결과를 평가합니다.
거의 없음
작은 공개 데이터로 비교 기준을 만들고 학습·평가 데이터를 분리해 실패 사례를 분석합니다.
1학기
컴파일러
어휘·구문·의미 분석과 중간 표현·코드 생성의 흐름을 학습합니다.
거의 없음
간단한 수식 언어의 토큰과 구문 트리를 만들고 올바른 입력과 문법 오류를 구분합니다.
2학기
캡스톤디자인: 검증·개선
설계한 시스템을 시험하고 한계·개선 과정·기여 내용을 전달합니다.
일부
시연 성공 외에 장애·보안·성능 검증을 수행하고 본인 기여와 남은 제한을 정리합니다.
2학기
클라우드·서비스운영
자원 구성·배포 자동화·관측·복구로 서비스 실행 환경을 관리합니다.
일부
실습 환경에서 자동 배포와 상태 확인을 연결하고 설정 오류 뒤 이전 상태 복구를 검증합니다.
2학기
데이터분석·기계학습응용
전처리·특성·평가 지표를 연결해 데이터 기반 결과를 해석합니다.
거의 없음
결측 처리와 데이터 분리 조건을 기록하고 다른 표본에서도 결과가 유지되는지 확인합니다.
2학기
모바일프로그래밍
모바일 앱의 화면 생명주기·비동기 처리·네트워크 연결·기기 권한을 다룹니다.
거의 없음
수료 프로젝트의 API 를 그대로 쓰는 작은 앱을 만들고 네트워크가 끊기거나 느릴 때의 화면 상태를 검증합니다.
2학기
기술세미나·컴퓨팅윤리
기술 자료를 비판적으로 읽고 데이터·저작권·사회적 영향을 검토합니다.
일부
공식 문서와 공개 연구 자료의 주장·근거·한계를 정리하고 AI 도구 사용과 데이터 권한을 설명합니다.
학위 경로
학점은행제
진행 방법
이전 학습 이력과 인정 가능한 학습을 공식 안내에 따라 확인하고 학습자 등록·학점 인정·학위 신청 계획을 세웁니다.
맞는 상황
기존 학습을 활용하며 직장과 병행해 학위 요건을 채우려는 분에게 맞습니다. 학습 경로를 선택할 수 있지만 일정과 신청 절차를 스스로 관리합니다.
고려할 점
국비 수료가 그대로 학점 인정된다고 가정하지 않고 개별 인정 여부를 확인합니다. 학위 요건 이수와 전공 실습의 깊이는 따로 점검합니다.