컴퓨터 과학 자체 교육
코스로 컴퓨터 과학 과정을 배우는 완전 무료 프로그램
컴퓨터 과학 소개 (1-2 주)
- 컴퓨터 과학의 개요
- 프로그래밍 소개
- 알고리즘 및 데이터 구조의 개요
- 기본 컴퓨터 조직 및 아키텍처
자원:
- EDX의 Harvard University의 컴퓨터 과학 소개
- Codecademy는 코드 코드를 배우는 방법을 배웁니다
프로그래밍 기초 (4-6 주)
- 파이썬 프로그래밍 언어 소개
- 제어 흐름 명세서
- 데이터 유형 및 구조
- 기능 및 모듈
- 입력 및 출력 작업
- 디버깅 및 오류 처리
- 객체 지향 프로그래밍 개념
자원:
- Coursera의 미시간 대학교의 모든 사람들을위한 파이썬
- Zed Shaw의 파이썬을 어려운 방법으로 배우십시오
데이터 구조 및 알고리즘 (12-16 주)
- 기본 데이터 구조 (배열, 링크 된 목록, 스택, 대기열)
- 고급 데이터 구조 (트리, 그래프, 해시 테이블)
- 알고리즘 분석 및 설계
- 알고리즘 검색 및 정렬
- 재귀
- 동적 프로그래밍
- 욕심 많은 알고리즘
- 알고리즘을 나누고 정복합니다
자원:
- Coursera의 샌디에고 캘리포니아 대학교의 데이터 구조 및 알고리즘 전문 분야
- MIT Press의 알고리즘 소개
컴퓨터 아키텍처 및 시스템 (8-12 주)
- 컴퓨터 하드웨어 및 소프트웨어 개요
- 운영 체제
- 메모리 관리
- 입력/출력 시스템
- 컴퓨터 네트워크
- 분산 시스템
자원:
- Coursera의 Princeton University의 컴퓨터 건축
- 운영 체제 : Remzi H. Arpaci-Dusseau 및 Andrea C. Arpaci-Dusseau의 3 가지 쉬운 작품
데이터베이스 시스템 (8-12 주)
- 데이터베이스 소개
- 관계형 데이터베이스 시스템 (SQL)
- 데이터베이스 설계 및 정규화
- 데이터 쿼리 및 조작
- 데이터베이스 관리
자원:
- Coursera의 Stanford University의 데이터베이스 소개
- sqlbolt (온라인 대화 형 SQL 자습서)
웹 개발 (8-12 주)
- 프론트 엔드 개발 (HTML, CSS, JavaScript)
- 백엔드 개발 (웹 프레임 워크, 서버 측 프로그래밍)
- 데이터베이스 통합 (SQL, ORM)
- 보안 및 인증
자원:
- 오딘 프로젝트 (무료 풀 스택 웹 개발 커리큘럼)
- Freecodecamp (무료 웹 개발 커리큘럼)
소프트웨어 엔지니어링 (8-12 주)
- 소프트웨어 개발 수명주기
- 소프트웨어 프로젝트 관리
- 요구 사항 엔지니어링
- 테스트 및 품질 보증
- 소프트웨어 유지 보수 및 진화
자원:
- 콜로라도 대학교의 소프트웨어 엔지니어링 필수 요소
- Frederick P. Brooks Jr.
인공 지능 및 기계 학습
- 인공 지능 및 기계 학습의 개요
- 감독 학습 알고리즘 (선형 회귀, 로지스틱 회귀, 의사 결정 트리, 지원 벡터 머신, K-Nearest Neighbors, Naive Bayes) (4-6 주)
- 감독되지 않은 학습 알고리즘 (클러스터링, 차원 감소) (4-6 주)
- 강화 학습
- 신경망 및 딥 러닝 (4-6 주)
- 자연어 처리
- 컴퓨터 비전
자원:
- Coursera의 Andrew Ng의 기계 학습
- Yoshua Bengio, Ian Goodfellow 및 Aaron Courville의 딥 러닝
컴퓨터 그래픽 및 시각화 (8-12 주)
- 그래픽 파이프 라인
- 기하학적 변형
- 2D 및 3D 그래픽 프리미티브
- 렌더링 기술 (Ray Tracing, Rasterization)
- 애니메이션 및 시뮬레이션
- 시각화 기술
자원:
- EDX에 도쿄 대학의 컴퓨터 그래픽
- Tomas Akenine-Möller, Eric Haines 및 Naty Hoffman의 실시간 렌더링
인간 컴퓨터 상호 작용 (8-12 주)
- 사용자 인터페이스 디자인의 원리
- 사용자 중심 디자인 프로세스
- 유용성 테스트 및 평가
- 상호 작용 설계
- 정보 시각화
- 접근성
자원:
- 캘리포니아 대학교 샌디에고의 인간 컴퓨터 상호 작용
- Steve Krug의 생각으로 만들지 마십시오
사이버 보안 (8-12 주)
- 네트워크 보안
- 암호화
- 인증 및 액세스 제어
- 맬웨어 분석 및 탐지
- 보안 위험 평가 및 관리
자원:
- New York University Tandon 공학 학교의 사이버 보안 소개 EDX
- Ross J. Anderson의 보안 엔지니어링
소프트웨어 개발 도구 (4-6 주)
- 버전 제어 시스템 (GIT)
- 통합 개발 환경 (IDES)
- 도구 디버깅 및 프로파일 링 도구
- 자동화 및 지속적인 통합 구축 (Jenkins)
자원:
- github의 git 핸드북
- Vogella의 Eclipse IDE 튜토리얼
컴퓨터 과학 수학 (8-12 주)
- 개별 수학
- 선형 대수
- 확률 및 통계
- 계산법
- 숫자 이론
자원:
- MIT OpenCourseware의 매사추세츠 기술 연구소의 컴퓨터 과학 수학
- MIT OpenCourseware의 Gilbert Strang의 선형 대수
컴퓨팅의 윤리 및 사회 (8-12 주)
- 컴퓨팅의 윤리적 문제
- 컴퓨팅의 사회적, 정치적 영향
- 개인 정보 및 보안 문제
- 지적 재산 및 저작권
- 컴퓨팅의 글로벌 영향
자원:
- EDX의 Harvard University의 컴퓨팅 및 사회
- 코드 : 실리콘 밸리와 Margaret O'Mara의 미국의 재생
이것이 나에게 유익한만큼이나 모든 독자들에게 도움이되기를 바랍니다. 이 과정을 마치기위한 모든 예상 시간을 명심하십시오. 공부하는 동안 풀 타임 직업을 기준으로합니다.