GIẢNG VIÊN
La Kiến Vinh
CÔNG CỤ HỖ TRỢ HỌC TẬP
ĐĂNG KÝ
C/C++ & Lập trình nền tảng
1
Chương trình đầu tiên 3 giờ

Tiếp cận các công nghệ đào tạo của STDIO.

  • Cấp phát tài nguyên đào tạo cho học viên.

C/C++ và chương trình đầu tiên.

  • Khởi tạo chương trình và các cú pháp cơ bản.
  • Code Statement.
  • Lập trình C và lập trình C++.
  • *Trình biên dịch và các công cụ hỗ trợ.

Thực hành.

Chi tiết và tư liệu cho học viên.
Chi tiết và tư liệu cho học viên.
2
Tùy biến trong chương trình 3 giờ

Định nghĩa, khai báo biến và sử dụng hiệu quả.

  • Biến - vùng nhớ và định nghĩa.
  • Các kiểu dữ liệu nguyên thủy (C và C++).
  • Các vấn đề về literals.
  • Tối ưu hóa các kiểu dữ liệu.

Thực hành.

Chi tiết và tư liệu cho học viên.
Chi tiết và tư liệu cho học viên.
3
Cấu trúc điều khiển & lặp 6 giờ

Cấu trúc điều khiển và lặp

  • Cấu trúc rẽ nhánh if-else.
  • Cấu trúc lặp while-do.
  • Các bài toán thực tế.
  • Thực hành 2 bài tập.
  • So sánh các cấu trúc điều khiển và cấu trúc lặp để sử dụng tối ưu.

Thực hành.

Chi tiết và tư liệu cho học viên.
Chi tiết và tư liệu cho học viên.
4
Mảng dữ liệu 3 giờ

Mảng dữ liệu 1 chiều.

  • Mảng dữ liệu 1 phần tử.
  • Mảng dữ liệu nhiều phần tử.
    • Các định nghĩa và sử dụng.
    • Bộ nhớ và mảng.
  • Các lưu ý, sai sót thường gặp.

Thực hành.

Chi tiết và tư liệu cho học viên.
Chi tiết và tư liệu cho học viên.
5
Hàm 6 giờ

Bổ sung kiến thức về biến.

  • Giới hạn của biến trong C.
  • Sử dụng biến chuyên sâu trong C++.
  • Thực hành.

Hàm và sử dụng hiệu quả.

  • Định nghĩa và cách sử dụng.
  • Các tham chiếu và tham trị của hàm.
  • *Tham chiếu chỉ thị trình biên dịch, bộ nhớ và mã máy.
  • Thực hành.
Chi tiết và tư liệu cho học viên.
Chi tiết và tư liệu cho học viên.
6
Mảng dữ liệu - đa chiều 6 giờ

Mảng 2 chiều.

  • Cấp phát mảng 2 chiều.
  • Ưu điểm và nhược điểm.

Mảng đa chiều và không gian đa chiều.

  • Hiện thực mảng đa chiều.
    • Cấp phát.
    • Sử dụng.

Thực hành.

Chi tiết và tư liệu cho học viên.
Chi tiết và tư liệu cho học viên.
7
Con trỏ và cấp phát động 3 giờ

Tư duy của hệ thống.

  • Các vùng nhớ cơ bản.
  • Sự ra đời của dữ liệu.
  • Nhu cầu kiểm soát dữ liệu.
  • Cấp phát dữ liệu động (cấp phát động).

Con trỏ.

  • Vì sao cần con trỏ (lý do ra đời của con trỏ).
  • Khai báo và sử dụng.

Mở rộng (lựa chọn).

  • Các tính chất đặc trưng và các nhược điểm.
  • Các phương hướng khắc phục.

Thực hành.

Chi tiết và tư liệu cho học viên.
Chi tiết và tư liệu cho học viên.
8
Phong cách lập trình - Định hướng trong ngành 1 giờ

Phong cách lập trình và ý nghĩa.

  • Các phong cách phổ biến.
  • Phong cách theo dự án.
  • Phong cách lập trình của STDIO.
  • Vấn đề về nghệ thuật comments.
  • Các phương pháp debug chương trình không sử dụng Debugger.

Định hướng, phân nhánh phát triển trong công nghệ thông tin.

Chi tiết và tư liệu cho học viên.
Chi tiết và tư liệu cho học viên.
9
Xử lý ảnh - I - RGBA 6 giờ

Triển khai STDIO Core D.

  • Download STDIO Core D - phía trên.
  • STDIO Core D (XCode IDE) từ giảng viên.
  • Triển khai STDIO Core D cho học viên.

Mục tiêu của STDIO Core D và Xử lý ảnh.

  • Cung cấp cho học viên hiểu biết cơ bản về xử lý ảnh nền tảng.
  • Mở rộng tư duy cho các loại dữ liệu khác như âm thanh, phim ảnh, các kiến trúc diễn đạt khác.
  • Ứng dụng lập trình mảng, con trỏ, cấp phát động, cấu trúc điều khiển và vòng lặp vào thực tế.

Hướng dẫn học viên sử dụng ảnh mẫu thực hành hòa trộn màu.

Hệ màu RGB và CMYK.

  • Kiến thức về hệ màu.
  • Phương pháp lưu trữ của hệ màu trong lập trình.
  • Demo tạo ra hiệu ứng tăng cường độ màu.

Thực hành lập trình các hiệu ứng hòa trộn màu với STDIO Core D.

Chi tiết và tư liệu cho học viên.
Chi tiết và tư liệu cho học viên.
10
Xử lý ảnh - II - Transformation 6 giờ

Hướng dẫn học viên sử dụng ảnh mẫu thực hành.


Nguồn hình ảnh được lấy từ chương trình American Genius - Jobs vs Gates.

Bổ sung lý thuyết ảnh trong suốt.

  • Kênh Alpha.
  • Cách xử lý.

Thực hành làm trong suốt ảnh.

Các hiệu ứng tương quan xử lý mảng.

  • Trọng tâm của các hệ thống đồ họa 2D, 3D.
    • Các tư duy dời trục.
  • Các hiệu ứng tương quan xử lý mảng.
    • Tịnh tiến.
    • Phép xoay.
    • Phép tỷ lệ.

Thực hành.

Chi tiết và tư liệu cho học viên.
Chi tiết và tư liệu cho học viên.
11
Xử lý ảnh - III - Binary 3 giờ

Bổ sung kiến thức lập trình xử lý nhị phân.

  • Nhị phân và thập lục phân.
  • Lập trình xử lý nhị phân, tối ưu tốc độ thực thi và bộ nhớ lưu trữ.
  • Các ứng dụng của xử lý nhị phân.
  • Demo trong xử lý ảnh.

Hướng dẫn học viên sử dụng ảnh mẫu thực hành.

Thực hành.

Chi tiết và tư liệu cho học viên.
Chi tiết và tư liệu cho học viên.
12
Xử lý ảnh - IV - Hiệu ứng nâng cao 3 giờ

Các hiệu ứng xử lý ảnh nâng cao.

  • Tổng hợp các hiệu ứng.
  • Đánh giá hiệu năng của các hiệu ứng nâng cao.
  • Thảo luận đề xuất tối ưu hóa hiệu năng xử lý.
  • Demo hiệu ứng làm mờ ảnh cơ bản. Yêu cầu học viên tối ưu giải thuật xử lý với 2 tiêu chí.
    • Tối ưu vùng nhớ lưu trữ.
    • Tối ưu tốc độ xử lý (giảm phép toán trên CPU).

Hướng dẫn học viên sử dụng ảnh mẫu thực hành.

Thực hành.

Chi tiết và tư liệu cho học viên.
Chi tiết và tư liệu cho học viên.
13
Xử lý ảnh - V - Tiêu chuẩn & Chính thống 3 giờ

Các phương pháp xử lý ảnh tiêu chuẩn.

  • Bổ sung toán học cơ bản với ma trận.
  • Sử dụng ma trận trong lập trình.
    • Giảng viên demo hàm nhân 2 ma trận (sử dụng mảng 1 chiều lưu trữ).
  • Phép tương quan và tích chập trong xử lý ảnh.
    • So sánh với các phương pháp tự nhiên (các chủ đề về xử lý ảnh I, II, III, IV).
    • Giảng viên demo cách sử dụng phép tương quan và tích chập.

Hướng dẫn học viên sử dụng ảnh mẫu thực hành.

Thực hành lại hiệu ứng blur ảnh và bloom với tư duy này.

Chi tiết và tư liệu cho học viên.
Chi tiết và tư liệu cho học viên.
14
Xử lý file - I - File nhị phân 3 giờ

File và file nhị phân.

  • Xử lý các file nhị phân.
  • Demo đọc ghi file nhị phân với C chuẩn và thảo luận.
  • Xử lý các file lớn.

Hướng dẫn học viên sử dụng file mẫu thực hành.

STDIOFileRW_normal.tar

Thực hành.

Chi tiết và tư liệu cho học viên.
Chi tiết và tư liệu cho học viên.
15
Xử lý file - II - Ứng dụng 3 giờ

File lưu trữ và lập trình ứng dụng file.

  • Lý thuyết nén, giải nén file.
  • Demo giải thuật nén cơ bản và hướng dẫn học viên.
  • Phân tích ưu điểm nhược điểm và học viên cải tiến giải thuật.

Hướng dẫn học viên sử dụng file mẫu thực hành.

STDIOFileCompress_normal.tar

Thực hành.

*Nâng cao, bảo mật dữ liệu (lựa chọn).

  • Dữ liệu thô (raw).
  • Các vấn đề về tấn công dữ liệu (data hacking).
  • Thực hành mã hóa, giải mã dữ liệu và mã hóa, giải mã file.
Chi tiết và tư liệu cho học viên.
Chi tiết và tư liệu cho học viên.
16
Xử lý file - III - Kiến trúc file 6 giờ

Bổ sung kiến thức struct cơ bản cho phần thực hành về kiến trúc file.

Kiến trúc các file cơ bản.

  • Thuộc tính và dữ liệu file.
  • Hệ thống các thành phần của file.

Thực hành.

Hướng dẫn học viên sử dụng ảnh mẫu thực hành.

Chi tiết và tư liệu cho học viên.
Chi tiết và tư liệu cho học viên.
17
Xử lý chuỗi - I - Cơ bản và ASCII 6 giờ

Chuỗi trong C/C++.

  • Quy ước về chuỗi.
  • Chuỗi mã hóa ASCII và các quy tắc của chuỗi.
  • Demo hiện thực hàm xử lý chuỗi.
  • Các sai sót thường gặp.

Thực hành.

Chi tiết và tư liệu cho học viên.
Chi tiết và tư liệu cho học viên.
18
Xử lý chuỗi - II - Nâng cao 6 giờ

Kiến thức chuyên sâu về chuỗi.

  • Các trường hợp sai sót thường gặp và cách thức thiết kế xử lý phù hợp.
  • Lựa chọn phương pháp cấp phát phù hợp cho chuỗi.

Mã hóa Unicode (lựa chọn).

  • Mã hóa chuỗi Unicode, sự phổ biến.
  • UTF-8 và UTF-16.

Thực hành.

Chi tiết và tư liệu cho học viên.
Chi tiết và tư liệu cho học viên.
19
Kiểm tra chất lượng 3 giờ

Ôn tập và kiểm tra chất lượng.

  • Kiểm tra chất lượng theo tiêu chuẩn doanh nghiệp.
  • Kiểm tra các thiếu sót và củng cố, ôn tập.
  • Đánh giá khả năng và tư vấn tối ưu hướng giải quyết bài kiểm tra năng lực.
Chi tiết và tư liệu cho học viên.
Chi tiết và tư liệu cho học viên.
20
Danh sách liên kết - Struct 3 giờ

Struct.

  • Struct trong C (cú pháp và tính năng).
  • Struct trong C++ (cú pháp và tính năng mở rộng).
  • Sử dụng.
  • Thực hành.

Chuyên sâu (lựa chọn).

  • Bộ nhớ của struct.
  • Vi xử lý và struct.
  • Thực hành.
Chi tiết và tư liệu cho học viên.
Chi tiết và tư liệu cho học viên.
21
Danh sách liên kết - Hiện thực 3 giờ

Danh sách liên kết.

  • Lý thuyết danh sách liên kết.
  • Thuận lợi và nhược điểm so với mảng trong vấn đề truy xuất.
  • Hiện thực danh sách liên kết.

Tối ưu hóa danh sách liên kết.

  • Sự khác biệt về kiến trúc bộ nhớ và hiệu năng hoạt động so với mảng.
  • Tái tổ chức danh sách liên kết.
Chi tiết và tư liệu cho học viên.
Chi tiết và tư liệu cho học viên.
22
Danh sách liên kết - Rắn săn mồi & Máy tính 3 giờ

Ứng dụng danh sách liên kết vào game Rắn săn mồi.

  • Triển khai game rắn sắn mồi với danh sách liên kết đã hiện thực.

Ứng dụng hiện thực Stack & Queue.

  • Giới thiệu Stack và Queue.
  • Hiện thực Stack và Queue cơ bản.
  • Ký pháp Ba Lan và hiện thực Máy tính (Calculator).

Tích hợp Rắn săn mồi và Máy tính vào STDIO Core D.

Chi tiết và tư liệu cho học viên.
Chi tiết và tư liệu cho học viên.
23
Giải thuật - Đệ quy & Fractal 6 giờ

Đệ quy.

  • Cơ bản đệ quy.
  • Demo bài toán tính toán giai thừa và Fibonacy.
  • Nhược điểm của đệ quy về tốc độ và độ an toàn của ứng dụng.
  • Tính ứng dụng của đệ quy.
  • Thực hành.

Fractal - Sử dụng đệ quy và STDIO Core D xây dựng các Fractal.

Thực hành.

Chi tiết và tư liệu cho học viên.
Chi tiết và tư liệu cho học viên.
24
Giải thuật - Sắp xếp & Tìm kiếm - Game Minesweeper 3 giờ

Sắp xếp dữ liệu.

  • Sắp xếp và các ứng dụng của sắp xếp.
  • Các giải thuật sắp xếp dữ liệu cơ bản.
  • Thực hành.
  • Phân tích hiệu suất sắp xếp, độ phức tạp của các bài thực hành.

Tìm kiếm dữ liệu.

  • Các phương pháp tìm kiếm dữ liệu.
    • Tuần tự.
    • Có ưu tiên.

Hiện thực tính năng phát sinh bàn cờ trong game Minesweeper sử dụng STDIO Minesweeper Frameword - STDIOMinesweeper.zip.

Chi tiết và tư liệu cho học viên.
Chi tiết và tư liệu cho học viên.
25
Lập trình hướng đối tượng - I - Tiếp cận 3 giờ

Giới thiệu về lập trình hướng đối tượng.

  • Demo về 1 lớp hướng đối tượng.
  • Các ưu điểm và nhược điểm của lập trình hướng đối tượng so với thủ tục.
  • Sơ lược tính chất lập trình hướng đối tượng.
  • Tính trừu tượng, đóng gói, kế thừa, đa hình.

Làm quen với class.

  • struct và class?

Thực hành.

Chi tiết và tư liệu cho học viên.
Chi tiết và tư liệu cho học viên.
26
Lập trình hướng đối tượng - II - Trừu tượng & Đóng gói 3 giờ

Trừu tượng hóa dữ liệu.

  • Tư duy trừu tượng và phân tích trừu tượng hóa.
  • Sử dụng các kỹ thuật để trừu tượng hóa 1 thực thể.

Đóng gói dữ liệu.

  • Phân tích lý do ẩn giấu dữ liệu và đóng gói.
  • Đóng gói dữ liệu từ nguyên thủy.
  • Đóng gói dữ liệu dựa vào sự hỗ trợ của ngôn ngữ lập trình (private, protected, public).

Thực hành tận dụng khả năng lập trình hướng đối tượng để chống Hack dữ liệu.

Chi tiết và tư liệu cho học viên.
Chi tiết và tư liệu cho học viên.
27
Lập trình hướng đối tượng - III - Kế thừa & Đa hình 3 giờ

Kế thừa và mối quan hệ trong kế thừa.

  • Sự trùng lắp và phân mảnh codes.
  • Mối quan hệ trong kế thừa và các ngộ nhận.
  • Thiết kế mối quan hệ kế thừa.
  • Kỹ thuật hiện thực.

Tính đa hình.

  • Đa hình trong ứng dụng.
  • Lợi ích và các nhược điểm.
  • Cách thức hiện thực.

Thực hành.

Chi tiết và tư liệu cho học viên.
Chi tiết và tư liệu cho học viên.
28
Đồ án cuối khóa - Điều khiển xe thông minh 6 giờ

Giới thiệu về đồ án điều khiển thông minh cuối khóa. Mục tiêu, tổng hợp các kiến thức đã học vào ứng dụng thực tế.

  • Giới thiệu về Internet of Things.
  • Giảng viên giới thiệu về phần cứng xe điều khiển.
  • Giới thiệu các tính năng học viên cần hiện thực (có liên quan đến các kiến thức đã học).
  • Hướng dẫn học viên thao tác với các phần cứng và lập trình C++ trên vi điều khiển.
  • Mã hóa thông tin giao tiếp từ máy tính đến xe thông minh chống tấn công trên đường truyền.

Sử dụng STDIO Core D để thực hiện các tính năng điều khiển từ máy tính đến phần cứng.

Chi tiết và tư liệu cho học viên.
Chi tiết và tư liệu cho học viên.
Phần mở rộng*
1
Các trình biên dịch trên nền tảng khác 3 giờ

Mục tiêu xây dựng 1 chương trình C++ trên Linux để trải nghiệm khả năng đa nền tảng. Điều này quan trọng để hình thành khả năng tiếp cận lập trình trên các hệ điều hành khác như iOS, Android, MAC OSX, ...

  • Linux và các vấn đề về lập trình đa nền tảng.
  • Giảng viên hướng dẫn sử dụng Linux cơ bản.
  • Sử dụng GNU Compiler Collection (GCC).
  • Cài đặt môi trường hiện thực lập trình C++.
Chi tiết và tư liệu cho học viên.
Chi tiết và tư liệu cho học viên.
2
Build project - Directive & Preprocessor 3 giờ

Các quá trình 1 project được build như thế nào?

  • Building process.
  • Directive C
Chi tiết và tư liệu cho học viên.
Chi tiết và tư liệu cho học viên.
3
Thư viện liên kết tĩnh và động 1 giờ

Tạo các thư viện liên kết tĩnh & động.

  • Tạo thư viện liên kết tĩnh.
  • Tạo thư viện liên kết động.
  • Các nhược điểm và thuận lợi.
  • Ứng dụng hiệu quả thư viện.
Chi tiết và tư liệu cho học viên.
Chi tiết và tư liệu cho học viên.
4
Kiến trúc bộ nhớ cơ bản 1 giờ

Hệ thống lại kiến trúc bộ nhớ của 1 chương trình được viết bởi C/C++.

Chi tiết và tư liệu cho học viên.
Chi tiết và tư liệu cho học viên.
5
struct - enum - union & template 1 giờ

Tìm hiểu các tính năng hỗ trợ thêm trong tổ chức project C++.

  • Nhắc lại struct và vấn đề bộ nhớ của struct.
  • Enum, union và cách sử dụng hiệu quả.
  • template và khả năng Generic.
Chi tiết và tư liệu cho học viên.
Chi tiết và tư liệu cho học viên.
6
Chủ đề C++11 & C++14 1 giờ

Các tính năng của C++98 cho đến phiên bản C++14.

  • Các cải tiến và tính năng mới từ C++11.
  • Các chuyến tàu lỡ của C++11 và sự xuất hiện trong C++14.

Bản thử nghiệm C++17.

Chi tiết và tư liệu cho học viên.
Chi tiết và tư liệu cho học viên.
7
Con trỏ hàm 1 giờ

Con trỏ hàm và Late binding.

  • Nhắc lại con trỏ dành cho dữ liệu, biến.
  • Nhược điểm của "pre" Late binding trong thiết kế ứng dụng.
  • Late binding và con trỏ hàm.
Chi tiết và tư liệu cho học viên.
Chi tiết và tư liệu cho học viên.
Cài đặt các phần mềm cần thiết để học lập trình..