Mẹo
Khóa học này theo dõi một bằng cấp khoa học máy tính điển hình từ chương trình đầu tiên đến machine learning. Nó bắt đầu với cơ sở lập trình và toán rời rạc, sau đó phát triển: thiết kế hướng đối tượng, cấu trúc dữ liệu và thuật toán, kiến trúc máy tính, hệ điều hành, cơ sở dữ liệu và mạng. Các phần sau bao gồm thiết kế thuật toán, lý thuyết tính toán và trình biên dịch, kỹ thuật phần mềm, và AI và machine learning.
Hai thói quen quan trọng hơn bất kỳ ngôn ngữ nào. Thứ nhất, viết và chạy code mỗi tuần: đọc một giải pháp không giống như tạo ra một giải pháp. Thứ hai, phân tích về chi phí. Một câu trả lời đại học phải nói cách thời gian chạy tăng theo đầu vào, được viết dưới dạng Big-O, và tại sao thuật toán đúng, không chỉ là nó đã hoạt động trên một bài kiểm tra.
Toán rời rạc có thể cảm thấy tách biệt với lập trình. Nhưng không phải. Chứng minh quy nạp là cách bạn chứng minh một hàm đệ quy là đúng, và đồ thị nằm đằng sau bản đồ, mạng lưới và trình biên dịch.
-
1
Cơ sở lập trình
- 1.1 Khóa học này là gì và cách sử dụng nó
- 1.1 Giá trị, kiểu và nhập/xuất
- 1.2 Lựa chọn: chọn giữa các đường đi
- 1.3 Lặp: thực hiện lại
- 1.4 Hàm: đặt tên cho một công việc chỉ một lần
- 1.5 Cấu trúc dữ liệu: danh sách, từ điển, tuple, tập hợp
- 1.6 Tập tin và lỗi
- 1.7 Phân rã, kiểm thử và gỡ lỗi
Đang tải…
-
2
Toán học rời rạc
- 2.1 Lý luận và chứng minh
- 2.2 Tập hợp, hàm số và quan hệ
- 2.3 Quy nạp và đệ quy
- 2.4 Đếm và tổ hợp
- 2.5 Đồ thị và cây
- 2.6 Xác suất rời rạc
Đang tải…
-
3
Cơ sở hệ thống máy tính
- 3.1 Mã hóa nhị phân và dữ liệu
- 3.2 Cổng logic và khối xây dựng kỹ thuật số
- 3.3 Tổng quan bộ xử lý và bộ nhớ
- 3.4 Lệnh máy
- 3.5 Giao diện hệ điều hành
- 3.6 Quá trình biên dịch và thực thi
Đang tải…
-
4
Lập trình hướng đối tượng
- 4.1 Đối tượng và lớp
- 4.2 Đóng gói
- 4.3 Thành phần và kế thừa
- 4.4 Giao diện và đa hình
- 4.5 Ngoại lệ và xử lý lỗi
- 4.6 Kiểm thử và chất lượng thiết kế
Đang tải…
-
5
Cấu trúc dữ liệu và thuật toán
- 5.1 Phân tích tiệm cận
- 5.2 Danh sách, ngăn xếp và hàng đợi
- 5.3 Bít hóa
- 5.4 Cây và đống
- 5.5 Đồ thị và duyệt
- 5.6 Sắp xếp
- 5.7 Tìm kiếm
Đang tải…
-
6
Kiến trúc máy tính
- 6.1 Kiến trúc bộ lệnh
- 6.2 Dữ liệu và điều khiển
- 6.3 Pipeline
- 6.4 Hierarchi bộ nhớ
- 6.5 Nhập/xuất
- 6.6 Song song và hiệu suất
Đang tải…
-
7
Hệ điều hành
- 7.1 Tiến trình và luồng
- 7.2 Lên lịch
- 7.3 Đồng bộ hóa
- 7.4 Bộ nhớ ảo
- 7.5 Hệ thống tập tin
- 7.6 Bảo vệ và bảo mật
Đang tải…
-
8
Cơ sở dữ liệu
- 8.1 Mô hình hóa quan hệ
- 8.2 Đại số quan hệ và SQL
- 8.3 Chuẩn hóa (Normalisation)
- 8.4 Chỉ mục và kế hoạch truy vấn
- 8.5 Giao dịch và đồng thời
- 8.6 Bảo mật và quản trị dữ liệu
Đang tải…
-
9
Mạng máy tính
- 9.1 Phân lớp và kiến trúc
- 9.2 Lớp liên kết và IP
- 9.3 Định tuyến (Routing)
- 9.4 Lớp vận chuyển (TCP/UDP)
- 9.5 Giao thức ứng dụng
- 9.6 An ninh mạng
- 9.7 Cơ bản về hệ thống phân tán
Đang tải…
-
10
Thiết kế và phân tích thuật toán
- 10.1 Đệ quy và công cụ phân tích
- 10.2 Chia để trị
- 10.3 Thuật toán tham lam
- 10.4 Quy hoạch động
- 10.5 Tối ưu hóa đồ thị
- 10.6 Giảm bài toán và NP-đầy đủ
Đang tải…
-
11
Lý thuyết tính toán và trình biên dịch
- 11.1 Automata và ngôn ngữ chính quy
- 11.2 Ngôn ngữ không ngữ cảnh và lý thuyết phân tích cú pháp
- 11.3 Khả năng tính toán
- 11.4 Phân tích từ vựng
- 11.5 Phân tích cú pháp
- 11.6 Phân tích ngữ nghĩa và sinh mã
Đang tải…
-
12
Kỹ thuật phần mềm
- 12.1 Yêu cầu
- 12.2 Kiến trúc và thiết kế
- 12.3 Tương tác người dùng và khả năng truy cập
- 12.4 Kiểm soát phiên bản và làm việc nhóm
- 12.5 Kiểm thử và tích hợp liên tục
- 12.6 An ninh và đạo đức nghề nghiệp
- 12.7 Dự án nhóm
Đang tải…
-
13
Trí tuệ nhân tạo và Học máy
- 13.1 Tìm kiếm
- 13.2 Tri thức và suy luận
- 13.3 Mô hình xác suất
- 13.4 Hồi quy và phân loại
- 13.5 Tối ưu hóa và học tập
- 13.6 Đánh giá và rò rỉ thông tin
- 13.7 Công bằng và giới hạn
Đang tải…