Module Advanced Programming with Java giúp học viên nắm vững các khái niệm và kỹ thuật cốt lõi trong lập trình, nâng cao tư duy và kỹ năng lập trình. Kết thúc module này, học viên thành thạo việc phát triển các ứng dụng dựa trên ngôn ngữ Java, mô hình lập trình Hướng đối tượng và Cấu trúc dữ liệu và giải thuật.
Nội dung khóa học
Nền tảng lập trình Java
7 bài học · 86 hoạt động-
Hướng dẫn cài đặt môi trường
-
Quy ước viết mã trong Java
-
Hướng dẫn cài đặt và sử dụng Antigravity
-
Những tính năng mới của Java 8
-
[Bài đọc] Giới thiệu ngôn ngữ lập trình Java
-
[Bài đọc] Tìm hiểu về JDK, JRE, JVM
-
[Bài đọc] Các thành phần của JDK, JRE, JVM
-
[Bài đọc] Tại sao nên dùng mã trung gian là Java byte code
-
[Bài đọc] Một chương trình Java đơn giản
-
[Bài đọc] Tạo, biên dịch và thực thi một chương trình Java
-
[Bài đọc] Trình bày mã nguồn Java
-
[Thực hành] Hiển thị thời gian của hệ thống
-
[Bài tập] Giải Cứu Hệ Thống Bán Vé MegaCine - Thoát Khỏi "Mê Cung" Rẽ Nhánh
-
[Bài đọc] Các loại lỗi trong lập trình
-
[Dialogue] Tổng kết bài học
-
[Quiz] Introduction to Java
-
[Bài đọc] Khai báo biến và kiểu dữ liệu
-
[Bài đọc] Các toán tử số học và phép gán
-
[Bài đọc] Toán tử gán tăng cường và toán tử tăng giảm
-
[Bài đọc] Toán tử logic
-
[Bài đọc] Toán tử quan hệ và kiểu dữ liệu Boolean
-
[Bài đọc] Mức độ ưu tiên và sự kết hợp của toán tử
-
[Code Inspection] Tại sao phép chia lại biến thành số 0 tròn trĩnh?
-
[Bài tập] Ứng dụng chuyển đổi tiền tệ
-
Quiz: Biến, Kiểu dữ liệu & Toán tử
-
[Bài đọc] Câu lệnh if
-
[Bài đọc] Câu lệnh if-else
-
[Thực hành] Giải phương trình bậc nhất
-
[Thực hành] Tính số ngày trong tháng
-
[Thực hành] Tính chỉ số cân nặng của cơ thể
-
[Bài đọc] Câu lệnh if lồng và câu lệnh if-else đa chiều
-
[Bài đọc] Toán tử ba ngôi
-
[Bài đọc] Câu lệnh switch-case
-
[Thực hành] Kiểm tra năm nhuận
-
[Code Inspection] Bẫy dấu chấm phẩy - Empty Statement Trap trong câu lệnh if
-
[Thực hành] Cứu vãn Hệ thống Ví điện tử PayFails
-
[Code Inspection] Bẫy rơi tự do - Fall-through Trap trong switch-case
-
[Bài tập] Ứng dụng đọc số thành chữ
-
[Bài đọc] Giới thiệu vòng lặp
-
[Bài đọc] Vòng lặp for
-
[Bài đọc] Vòng lặp while
-
[Bài đọc] Vòng lặp do-while
-
[Bài đọc] Sử dụng vòng lặp nào ?
-
[Code Inspection] Bẫy số thực - Floating-Point Trap trong vòng lặp for
-
[Bài đọc] Vòng lặp lồng nhau
-
[Bài đọc] Từ khoá break và continue
-
[Code Inspection] Bẫy vòng lặp lồng nhau - Nested Loops Trap với lệnh break
-
[Thực hành] Kiểm tra số nguyên tố
-
[Thực hành] Ứng dụng tính tiền lãi cho vay
-
[Thực hành] Tìm ước số chung lớn nhất
-
[Thực hành] Chiến dịch Tối ưu hóa Máy quét An ninh CyberScan
-
[Code Inspection] Bẫy biến đếm bị bỏ qua - Continue Trap trong vòng lặp while
-
[Bài tập] Hiển thị các loại hình
-
[Bài tập] Hiển thị 20 số nguyên tố đầu tiên
-
[Bài tập] Tối Ưu Hóa Trạm Điều Phối SpeedyLogis - Giải Cứu "Cơn Ác Mộng" Vòng Lặp
-
[Code Inspection] Bẫy mã cồng kềnh - Arrow Anti-Pattern và Exhaustive Loop Trap
-
[Quiz] Vòng lặp trong Java
-
[Bài giảng] Mảng trong Java
-
[Bài đọc] Mảng một chiều
-
[Bài đọc] Mảng nhiều chiều
-
[Bài đọc] Sao chép nội dung của một mảng
-
[Thực hành] Đảo ngược các phần tử của mảng
-
[Thực hành] Tìm giá trị trong mảng
-
[Thực hành] Tìm giá trị lớn nhất trong mảng
-
[Bài tập] Xoá phần tử khỏi mảng
-
[Bài tập] Thêm phần tử vào mảng
-
[Bài tập] Gộp mảng
-
[Bài tập] Mảng hai chiều - tính tổng các số ở đường chéo chính của ma trận vuông
-
[Code Inspection] Bẫy gán tham chiếu mảng
-
[Code Inspection] Bẫy giải phóng bộ nhớ Stack và Heap
-
[Quiz] Mảng trong Java
-
[Bài đọc] Phương thức trong java
-
[Bài đọc] Định nghĩa phương thức
-
[Bài đọc] Gọi phương thức
-
[Bài đọc] Phương thức không có kiểu dữ liệu trả về (void method)
-
[Bài đọc] Truyền tham trị (Passing Arguments by Values)
-
[Bài đọc] Truyền một mảng cho một phương thức
-
[Thực hành] Chương trình chuyển đổi nhiệt độ
-
[Thực hành] Tìm giá trị nhỏ nhất trong mảng sử dụng phương thức
-
[Thực hành] Giải mã "Bóng ma Bộ nhớ" tại Hệ thống Dữ liệu FinTrack
-
[Bài tập] Tìm phần tử lớn nhất trong mảng hai chiều
-
[Bài tập] Tính tổng các số ở một cột xác định
-
[Bài tập] Đếm số lần xuất hiện của ký tự trong chuỗi
-
[Code Inspection] Bẫy truyền tham trị với kiểu dữ liệu nguyên thủy
-
[Code Inspection] Bẫy gán lại tham chiếu trong phương thức
-
[Quiz] Phương thức trong java
Lập trình hướng đối tượng
5 bài học · 69 hoạt động-
[Bài giảng] Lớp và đối tượng
-
[Bài đọc] Tổng quan OOP & Định nghĩa Lớp và Đối tượng
-
[Bài đọc] Phương thức khởi tạo
-
[Bài đọc] Biến tham chiếu và Cơ chế bộ nhớ
-
[Thực hành] Lớp hình chữ nhật
-
[Thực hành] Giải phẫu Thiết kế Hệ thống Kho hàng SmartLogis
-
[Bài tập] Xây dựng lớp QuadraticEquation (Phương trình bậc hai)
-
[Bài tập] Xây dựng lớp StopWatch
-
[Bài tập] Xây dựng lớp Fan
-
[Code Inspection] Bẫy che khuất biến - Constructor Parameter Shadowing Trap với từ khóa this
-
[Quiz] Lớp và đối tượng trong Java
-
[Bài giảng] Access modifier
-
[Bài đọc] Access modifier
-
[Bài đọc] Local Variables và Access Modifiers
-
[Bài đọc] Các phương thức getter và setter
-
[Thực hành] Hồi Sinh Hệ Thống Ngân Hàng BugBank
-
[Bài tập] Xây dựng lớp Hình tròn
-
[Bài tập] Xây dựng lớp chỉ ghi trong Java
-
[Bài tập] Giải Cứu Game "Zombie Swarm" - Ác Mộng Cạn Kiệt RAM và "Cái Chết Liên Hoàn"
-
[Code Inspection] Bẫy ẩn danh phạm vi - Package-Private Overriding Trap với Access Modifier
-
[Code Inspection] Bẫy đóng gói nửa vời - Encapsulation Trap với Getter/Setter và từ khóa private
-
[Code Inspection] Bẫy biến dùng chung - Static Variable Trap với thuộc tính lớp
-
[Quiz] Access modifier
-
[Bài giảng] Package & Static
-
[Bài đọc] Biến static trong Java
-
[Bài đọc] Phương thức static trong Java
-
[Bài đọc] Truy cập vào thành phần static
-
[Thực hành] Static Method
-
[Thực hành] Static Property
-
[Bài đọc] Package
-
[Code Inspection] Bẫy bối cảnh tĩnh - Static Context Trap với vòng đời thuộc tính và phương thức
-
[Code Inspecition] Bẫy trùng tên lớp - Name Collision Trap với package và Fully Qualified Class Name
-
[Quiz] Static Method và Static Property
-
[Bài đọc] Thừa kế
-
[Bài đọc] Lớp cha (Superclasses) và lớp con (Subclasses)
-
[Bài đọc] Sử dụng từ khóa "super"
-
[Thực hành] Hệ các đối tượng hình học
-
[Bài giảng] Method Overriding
-
[Bài đọc] Cài đè (overriding) và nạp chồng (overloading)
-
[Bài đọc] Bản chất của Đa hình (Polymorphism) trong Java
-
[Thực hành] Giải cứu Hệ thống Tính Lương "Cồng Kềnh" tại TechCorp
-
[Thực hành] Giải mã "Cú Lừa" Của Trình Biên Dịch Tại FastDelivery
-
[Bài tập] Lớp Circle và lớp Cylinder
-
[Bài tập] Lớp Point2D và lớp Point3D
-
[Bài tập] Tái Cấu Trúc Trạm Trung Chuyển SmartFreight - Xóa Sổ "Rừng" Lệnh Điều Kiện Bằng Đa Hình
-
[Bài đọc] Lớp Object và phương thức toString()
-
[Code Inspection] Bẫy che khuất thuộc tính - Field Hiding Trap với kế thừa và đa hình
-
[Code Inspection] Bẫy đa kế thừa - Multiple Inheritance Trap với Abstract Class và Interface
-
[Quiz] Kế thừa
-
[Bài đọc] Lớp Object
-
[Bài đọc] Phương thức trừu tượng
-
[Bài đọc] Lớp trừu tượng
-
[Bài đọc] Ví dụ Lớp trừu tượng
-
[Bài đọc] Đa thừa kế và vấn đề hình thoi
-
[Bài đọc] Giao diện (Interfaces)
-
[Bài đọc] Giao diện Comparable
-
[Bài đọc] Giao diện Cloneable
-
[Bài đọc] Interfaces vs. Abstract Classes
-
[Bài đọc] Ví dụ Interfaces vs. Abstract Classes
-
[Thực hành] Lớp Animal và interface Edible
-
[Thực hành] Triển khai interface 'Comparable' cho các lớp hình học
-
[Thực hành] Triển khai interface 'Comparator' để so sánh cách lớp hình học
-
[Thực hành] Tái Cấu Trúc Hệ Thống Năng Lượng EcoGrid
-
[Bài tập ] Triển khai interface 'Resizeable' cho các lớp hình học
-
[Bài tập] triển khai interface 'Colorable' cho các lớp hình học
-
[Code Inspection] Bẫy bản thiết kế dang dở - Abstract Class Instantiation Trap
-
[Code Inspection] Bẫy luật ngầm interface - Implicit Public Trap với Access Modifier
-
[Code Inspection] Bẫy đa hình tĩnh - Static Binding Trap với Overloading và Overriding
-
[Quiz] Abstract Class & Interface
Cấu trúc dữ liệu & Thuật toán
8 bài học · 78 hoạt động-
[Bài đọc] Giới thiệu về danh sách
-
[Bài giảng] ArrayList
-
[Bài giảng] LinkedList
-
[Bài đọc] ArrayList
-
[Bài đọc] Danh sách liên kết
-
[Bài đọc] Cấu trúc dữ liệu set trong java
-
[Thực hành] Triển khai lớp List đơn giản
-
[Thực hành] Triển khai lớp LinkedList đơn giản
-
[Bài tập] Triển khai các phương thức của ArrayList theo thư viện java.util.ArrayList
-
[Bài tập] Triển khai các phương thức của LinkedList theo thư viện java.util.LinkedList
-
[Code Inspection] Bẫy cấu trúc dữ liệu sai bài toán - ArrayList vs LinkedList Performance Trap
-
[Code Inspection] Bẫy tìm kiếm tuyến tính - ArrayList Contains Trap với HashSet và cơ chế Hashing
-
[Code Inspection] Bẫy ép kiểu mù - ClassCastException Trap với Generics và Type Safety
-
[Quiz] DSA: Danh sách, Generic
-
[Bài đọc] Cấu trúc Queue
-
[Thực hành] Triển khai Queue sử dụng danh sách liên kết
-
[Optional] [Thực hành] Triển khai Queue sử dụng mảng
-
[Code Inspection] Bẫy hàng đợi ngược chiều - LIFO vs FIFO Trap với Queue và ArrayDeque
-
[Bài tập] Triển khai Queue sử dụng danh sách liên kết vòng
-
[Optional] [Bài tập] Kiểm tra chuỗi Palindrome sử dụng Queue
-
[Optional] [Bài tập] Tổ chức dữ liệu hợp lý - Demerging sử dụng Queue
-
[Bài đọc] Cấu trúc Stack
-
[Thực hành] Triển khai stack sử dụng lớp LinkedList trong thư viện java.util
-
[Bài tập] Đảo ngược phần tử trong mảng số nguyên sử dụng Stack
-
[Optional] [Thực hành] Triển khai Stack sử dụng mảng
-
[Optional] [Bài tập] Chuyển đổi từ hệ thập phân sang hệ nhị phân
-
[Optional] [Bài tập] Kiểm tra dấu ngoặc trong biểu thức sử dụng Stack
-
[Code Inspection] Bẫy chồng đĩa sai nguyên lý - ArrayList LIFO Trap với Stack và Deque
-
[Bài đọc] Cấu trúc dữ liệu cây
-
[Bài đọc] Cây tìm kiếm nhị phân (BST-Binary Search Tree)
-
[Optional] [Thực hành] Cài đặt cây tìm kiếm nhị phân
-
[Code Inspection] Bẫy danh sách phẳng đa cấp - Nested Loop Trap với Tree và Đệ quy
-
[Optional] [Bài tập] Cài đặt thao tác xoá trong Binary Search Tree
-
[Optional] [Bài tập] Cài đặt thao tác duyệt theo thứ tự postorder trong Binary Search Tree
-
[Optional] [Bài tập] Cài đặt thao tác duyệt theo thứ tự preorder trong Binary Search Tree
-
[Optional] [Bài tập] Cài đặt thao tác tìm kiếm trong Binary Search Tree
-
Giới thiệu cấu trúc dữ liệu Map
-
[Bài đọc] Cấu trúc Map trong Java Collection Framework
-
[Thực hành] Phân biệt giữa HashMap và HashSet
-
[Bài tập] Đếm số lần xuất hiện của mỗi từ trong một chuỗi sử dụng Map
-
[Code Inspection] Bẫy tra cứu tuyến tính - ArrayList Search Trap với HashMap và cơ chế Key-Value
-
[Bải giảng] Data Structures & Java Collection Framework
-
[Bài đọc] Java Collections Framework
-
[Bài đọc] Cấu trúc Tree trong Java Collection Framework
-
[Thực hành] Sử dụng HashMap, LinkedHashMap, TreeMap để lưu danh sách sinh viên theo độ tuổi
-
[Thực hành] Sắp xếp với Comparable và Comparator
-
[Bài tập] Luyện tập sử dụng ArrayList, LinkedList trong Java Collection Framework
-
[Đọc thêm] Sắp xếp với Comparable và Comparator trong Java
-
[Code Inspection] Bẫy duyệt chỉ số LinkedList - Random Access Trap với ArrayList và for-each
-
[Code Inspection] Bẫy so sánh định danh - equals/hashCode Contract Trap với HashSet và Custom Object
-
[Code Inspection] Bẫy tự chế thuật toán ngày tháng - Reinvent the Wheel Trap với java.time và Third-party API
-
[Quiz] Java Collection Framework
-
[Bài đọc] Tìm kiếm tuần tự (Linear Search)
-
[Bài đọc] Thuật toán tìm kiếm nhị phân (Binary Search)
-
[Bài đọc] Độ phức tạp của thuật toán
-
[Thực hành] Cài đặt thuật toán tìm kiếm nhị phân không sử dụng đệ quy
-
[Optional] [Thực hành] Tính độ phức tạp của thuật toán
-
[Bài tập] Tìm chuỗi tăng dần có độ dài lớn nhất
-
[Optional] [Bài tập] Cài đặt thuật toán tìm kiếm nhị phân sử dụng đệ quy
-
[Optional] [Bài tập] Tìm chuỗi liên tiếp có độ dài lớn nhất
-
[Code Inspection] Bẫy ngắt vòng lặp sớm - Early Return Trap trong thuật toán Linear Search
-
[Code Inspection] Bẫy thu hẹp biên sai - Infinite Loop Trap trong thuật toán Binary Search
-
[Code Inspection] Bẫy đếm vòng lặp cảm tính - Big O Trap với độ phức tạp thời gian O(N²)
-
[Quiz] Thuật toán tìm kiếm
-
[Bài đọc] Thuật toán sắp xếp nổi bọt
-
[Bài đọc] Thuật toán sắp xếp chọn
-
[Bài đọc] Thuật toán sắp xếp chèn
-
[Thực hành] Cài đặt thuật toán sắp xếp nổi bọt
-
[Thực hành] Minh hoạ thuật toán sắp xếp nổi bọt
-
[Thực hành] Cài đặt thuật toán sắp xếp chọn
-
[Thực hành] Giải Cứu Máy Chủ FastPay - Trận Chiến Độ Phức Tạp Thuật Toán (Big O)
-
[Bài tập] Minh hoạ thuật toán sắp xếp chèn
-
[Bài tập] Cài đặt thuật toán sắp xếp chèn
-
[Code Inspection] Bẫy vượt biên mảng - ArrayIndexOutOfBoundsException Trap trong thuật toán Bubble Sort
-
[Code Inspection] Bẫy mất dữ liệu khi dịch chuyển - Data Overwrite Trap trong thuật toán Insertion Sort
-
[Code Inspection] Bẫy swap sớm trong vòng lặp - Premature Swap Trap trong thuật toán Selection Sort
-
[Code Inspection] Bẫy chọn sai thuật toán - Sorting Algorithm Selection Trap với Time và Space Complexity
-
[Quiz] Thuật toán sắp xếp
Kỹ năng lập trình Java chuyên nghiệp
7 bài học · 108 hoạt động-
[Bài giảng] Clean code
-
[Bài giảng] Refactoring
-
[Bài đọc] Coding Convention trong Java
-
[Thực hành] Refactoring - đổi tên biến và tách hằng
-
[Thực hành] Refactoring - tách biến
-
[Thực hành] Refactoring - tách phương thức
-
[Thực hành] Chiến Dịch "Dọn Rác" Mã Nguồn Tại Hệ Thống Đặt Hàng OmniCart
-
[Bài tập] Luyện tập Refactoring
-
[Quiz] Clean Code & Refactoring
-
[Code Inspection] Bẫy code bẩn - Clean Code Trap với Naming Convention và Magic Numbers
-
[Code Inspection] Bẫy kim tự tháp - Nested Conditionals Trap với Arrow Anti-Pattern
-
[Code Inspection] Bẫy God Class - 5 Technique Refactoring Trap với mã nguồn ôm đồm
-
[Code Inspection] Bẫy sao chép mã - Duplicated Code Trap với nguyên tắc DRY
-
[Bài đọc] TDD (Test Driven Development ) - Phát triển hướng kiểm thử
-
[Bài đọc] Tổng quan về Kiểm thử và Kiểm thử tự động
-
[Bài đọc] Các cấp độ trong Kiểm thử
-
[Bài đọc] Giới thiệu JUnit
-
[Bài đọc] Sử dụng JUnit
-
[Thực hành] Ứng dụng máy tính đơn giản và Kiểm thử tự động với JUnit
-
[Thực hành] Tìm giá trị tuyệt đối và Lập trình hướng kiểm thử
-
[Bài tập] Tính ngày tiếp theo
-
[Bài tập] Phân loại tam giác
-
[Bài tập] chương trình tính kết quả FizzBuzz
-
[Quiz] Automation test & TDD
-
[Code Inspection] Bẫy test thủ công - Manual Testing Trap với Unit Test và JUnit
-
[Code Inspection] Bẫy ảo giác Unit Test - Contract Mismatch Trap với Integration Test
-
[Code Inspection] Bẫy phụ thuộc thật - Real Dependency Trap với Mocking và Mockito
-
[Bài đọc] Giới thiệu về Ngoại lệ
-
[Bài đọc] Phân loại ngoại lệ: Checked và UnChecked
-
[Bài đọc] Xử lý ngoại lệ
-
[Bài đọc] Ném và né ngoại lệ
-
[Thực hành] Debug ứng dụng Java bằng Antigravity IDE
-
[Thực hành] Sử dụng lớp ArrayIndexOutOfBoundsException
-
[Thực hành] Sử dụng lớp NumberFormatException
-
[Thực hành] Giải Cứu Dịch Vụ Lõi CoreBank - Cuộc Chiến Phân Loại "Ngoại Lệ"
-
[Bài tập] Sử dụng lớp IllegalTriangleException
-
[Đọc thêm] Ngoại lệ do người dùng tự định nghĩa
-
[Code Inspection] Bẫy rò rỉ tài nguyên - Resource Leak Trap với finally và Try-with-resources
-
[Code Inspection] Bẫy Exception chung chung - Generic Exception Trap với Custom Checked và Unchecked Exception
-
[Code Inspection] Bẫy tham chiếu dùng chung - Object Reference Reuse Trap trong vòng lặp khởi tạo danh sách
-
[Code Inspection] Bẫy Auto-unboxing với null - NullPointerException Trap với Integer Wrapper và kiểu nguyên thủy
-
[Quiz] Xử lý ngoại lệ và Debug
-
[Bài đọc] Lớp File
-
[Bài đọc] Java IO
-
[Bài đọc] Đọc/Ghi file văn bản
-
[Bài đọc] Ghi dữ liệu sử dụng PrintWriter
-
[Bài đọc] Lớp File trong gói java.io
-
[Bài đọc] Các dòng vào/ra trong java API
-
[Bài đọc] Tự động đóng tài nguyên bằng cách sử dụng try-with-resources
-
[Bài đọc] Đọc dữ liệu sử dụng Scanner
-
[Bài đọc] Scanner hoạt động như thế nào?
-
[Bài đọc] Xử lý file trong Java bằng FileWriter
-
[Bài đọc] Xử lý file trong Java bằng FileReader
-
[Thực hành] Tính tổng các số trong file text
-
[Thực hành] Tìm giá trị lớn nhất và ghi ra file
-
[Bài tập] Copy file text
-
[Bài tập] Đọc file .csv
-
[Code Inspection] Bẫy listFiles() trả về null - NullPointerException Trap với File API và thư mục không tồn tại
-
[Code Inspection] Bẫy dữ liệu kẹt trong bộ đệm - BufferedWriter Flush Trap với cơ chế Buffer và try-with-resources
-
[Code Inspection] Bẫy dùng sai loại Stream - Character Stream Trap với Binary File và Buffer I/O
-
[Quiz] IO: Text File
-
[Bài đọc] Text I/O vs. Binary I/O
-
[Bài đọc] Binary I/O Classes
-
[Bài đọc] Đọc và ghi Binary Files trong Java
-
[Bài đọc] FileInputStream/FileOutputStream
-
[Bài đọc] DataInputStream/DataOutputStream
-
[Bài đọc] Tạo DataInputStream/DataOutputStream
-
[Thực hành] Copy các file có dung lượng lớn
-
[Thực hành] Đọc và ghi danh sách sinh viên ra file nhị phân
-
[Thực hành] Chiến Dịch Tối Ưu Hóa Trạm Dữ Liệu DataHub - Đánh Bại "Nút Thắt Cổ Chai" I/O
-
[Bài tập] Quản lý sản phẩm lưu ra file nhị phân
-
[Bài tập] Thảm Họa Sao Lưu Tại CloudVault - Giải Cứu Dữ Liệu "Rùa Bò" và Hỏng Hóc
-
[Optional] [Bài tập] Copy file nhị phân
-
[Code Inspection] Bẫy đọc sai thứ tự byte - Sequential Order Trap với DataInputStream và Binary File
-
[Code Inspection] Bẫy chuỗi Serialization - NotSerializableException Trap với transient và serialVersionUID
-
[Code Inspection] Bẫy đọc byte lẻ float32 - Single Byte Read Trap với DataInputStream và Mini-batch Loading
-
[Quiz] IO: Binary File & Serialization
-
[Bài đọc] Khái niệm về Thread
-
[Bài đọc] Đồng bộ (Synchronization)
-
[Bài đọc] Garbage Collection trong Java
-
[Đọc thêm] Thread main trong Java
-
[Thực hành] Thực hành tạo luồng bằng Runnable
-
[Thực hành] Racing Cars
-
[Thực hành] Xây dựng ứng dụng đếm số
-
[Thực hành] Khủng Hoảng Flash Sale - Chặn Đứng Thảm Họa Đa Luồng (Multithreading)
-
[Bài tập] Tạo thread đơn giản
-
[Bài tập] Hiển thị số chẵn/lẻ
-
[Bài tập] Hỗn Loạn Tại Tổng Kho AI - Giải Cứu Đội Quân Robot Chở Hàng
-
[Optional] [Bài tập] Tìm số nguyên tố
-
[Code Inspection] Bẫy gọi run() thay vì start() - Direct Run Call Trap với Multi-threading và Runnable
-
[Code Inspection] Bẫy tranh chấp dữ liệu - Race Condition Trap với Synchronized và AtomicInteger
-
[Quiz] Threading
-
[Bài đọc] Regular Expression (Regex)
-
[Bài đọc] String trong Java
-
[Thực hành] Validate email
-
[Thực hành] Validate account
-
[Thực hành] Crawl danh sách bài hát
-
[Thực hành] Lọc danh sách bài hát từ HTML
-
[Thực hành] Giải Cứu Hệ Thống Báo Cáo DataStream - Cơn Ác Mộng "Cộng Chuỗi"
-
[Bài tập] Validate tên của lớp học
-
[Bài tập] Validate số điện thoại
-
[Bài tập] Kiểm Thử Cổng Đăng Ký PayGuard - Trận Chiến Săn Tìm "Điểm Chết" Regular Expression
-
[Optional] [Bài tập] Crawl tin tức
-
[Code Inspection] Bẫy khóa chéo vòng tròn - Deadlock Trap với Lock Ordering và ReadWriteLock
-
[Code Inspection] Bẫy khớp tham lam - Greedy Matching Trap với Regex, Pre-compiled Pattern và Matcher
-
[Code Inspection] Bẫy cộng chuỗi bất biến - String Immutability Concatenation Trap với StringBuilder và StringBuffer
-
[Code Inspection] Bẫy Regex kiểm tra giá trị số - IPv4 Range Validation Trap với Leading Zeros và Clean Code
-
[Quiz] String & Regex
Phân tích và thiết kế phần mềm
4 bài học · 63 hoạt động-
[Bài đọc] Tổng quan về nguyên lý SOLID
-
[Bài đọc] Nguyên lý SOLID
-
[Bài đọc] Single Responsibility Principle
-
[Bài đọc] Open Closed Principle
-
[Bài đọc] Liskov Substitution Principle
-
[Bài đọc] Interface Segregation Principle
-
[Bài đọc] Dependency Inversion Principle
-
[Bài đọc] Phân tích và thiết kế hướng đối tượng (OOAD)
-
[Bài đọc] Use Case Diagram
-
[Bài đọc] Class Diagram
-
[Bài đọc] Activity Diagram
-
[Bài đọc] Sequence Diagram
-
[Thực hành] Xây dựng sơ đồ Use case cho một hệ thống thương mại điện tử
-
[Thực hành] Xây dựng Class Diagram cho hệ thống eCommerce
-
[Thực hành] Xây dựng Activity Diagram cho hệ thống eCommerce
-
[Bài tập ] Vẽ biểu đồ lớp (class diagram)
-
[Xem thêm] Livestream "SOLID - Những nguyên lý sống còn"
-
[Code Inspection] Bẫy class ôm đồm - Single Responsibility Principle Trap với SOLID và Over-engineering
-
[Code Inspection] Bẫy thiết kế dư thừa - Over-engineering Trap với nguyên tắc YAGNI và Simple Design
-
[Code Inspection] Bẫy hàm ôm đồm - Long Method Trap với Extract Method và Guard Clauses
-
[Quiz] OOAD & SOLID
-
[Bài đọc] Mẫu thiết kế (Design Pattern)
-
[Bài đọc] Mẫu thiết kế Singleton
-
[Bài đọc] Mẫu thiết kế Object Pool
-
[Bài đọc] Mẫu thiết kế Factory Method
-
[Thực hành] Factory Method
-
[Thực hành] Triển khai Object Pool
-
[Thực hành] Triển khai Singleton
-
[Bài tập] Áp dụng Factory Method
-
[Bài tập] Sử dụng bộ nhớ hiệu quả với Memory Pool
-
[Code Inspection] Bẫy khởi tạo tràn lan - Resource Leak Trap với Singleton Pattern và Thread Safety
-
[Code Inspection] Bẫy khởi tạo cứng nhắc - Hard-coded Instantiation Trap với Factory Method Pattern và Open/Closed Principle
-
[Code Inspection] Bẫy khởi tạo tốn kém lặp lại - Repeated Instantiation Trap với Object Pool Pattern và Thread Safety
-
[Quiz] Design Patterns
-
[Xem thêm *] Design Pattern - Những công thức vàng trong thiết kế phần mềm
-
[Bài đọc] Mẫu thiết kế Proxy
-
[Bài đọc] Mẫu thiết kế Facade
-
[Bài đọc] Mẫu thiết kế Adapter
-
[Thực hành] Triển khai Proxy
-
[Thực hành] Triển khai Facade
-
[Thực hành] Triển khai Adapter
-
[Bài tập] Triển khai Proxy Pattern
-
[Bài tập] Triển khai Facade Pattern
-
[Bài tập] Áp dụng Adapter
-
[Code Inspection] Bẫy giao diện không tương thích - Interface Mismatch Trap với Adapter Pattern và Data Transformation
-
[Code Inspection] Bẫy Client biết quá nhiều - Tight Coupling Trap với Facade Pattern và God Object
-
[Code Inspection] Bẫy tải lại tài nguyên lãng phí - Redundant Loading Trap với Proxy Pattern và Caching
-
[Quiz] Design Patterns: Structural Design Pattern
-
[Bài đọc] Mẫu thiết kế Observer
-
[Bài đọc] Mẫu thiết kế Command
-
[Bài đọc] Mẫu thiết kế Template Method
-
[Đọc thêm] Mẫu thiết kế Strategy
-
[Đọc thêm] Một ví dụ đơn giản về Strategy Pattern
-
[Thực hành] Triển khai Strategy
-
[Thực hành] Triển khai Template Method
-
[Thực hành] Triển khai Observer
-
[Thực hành] Nâng Cấp Hệ Thống Đa Kênh OmniNotify - Đập Tan "Nút Thắt" Cứng Nhắc Với SOLID
-
[Bài tập] Triển khai Strategy Pattern
-
[Code Inspection] Bẫy Remote gắn chặt thiết bị - Tight Coupling Trap với Command Pattern và tính năng Undo
-
[Code Inspection] Bẫy hỏi thăm liên tục - Polling Trap với Observer Pattern và Memory Leak
-
[Code Inspection] Bẫy thuật toán trùng lặp - Duplicated Algorithm Trap với Template Method Pattern và Hook
-
[Code Inspection] Bẫy switch-case phình to - Conditional Explosion Trap với Strategy Pattern và Open/Closed Principle
-
[Quiz] Design Patterns: Behavioral Design Pattern
Đánh giá năng lực tổng hợp
3 bài học · 13 hoạt động-
[Bài đọc] Giới thiệu tổng quan về JavaFX
-
[Bài đọc] Các thành phần cơ bản (Stage, Scene, Node & Layout)
-
[Bài đọc] Xử lý sự kiện & Điều khiển giao diện
-
[Bài đọc] Kỹ thuật Data Binding và Observable trong JavaFX
-
[Bài đọc] Giới thiệu Scene Builder
-
[Thực hành] Tạo dự án JavaFX đầu tiên
-
[Thực hành] Xây dựng ứng dụng với các điều khiển (Controls)
-
[Thực hành] Làm việc với Layout và hiển thị dữ liệu với Scene Builder
-
[Thực hành] Quản lý đa màn hình và chuyển Scene trong JavaFX
-
[Bài tập] Xây dựng ứng dụng quản lý nhân sự
-
[Quiz] Tổng quan JavaFX
-
[Case Study] Chương trình xây dụng dữ liệu từ điển
-
Nộp bài kiểm tra cuối module
Khóa học liên quan
Bootcamp Preparation
Khoá học BootCamp Preparation giúp học viên làm chủ các kiến thức lập trình cơ bản và tư duy giải quyết vấn đề. Hoàn thành khoá học, học viên có đủ ki...
Học cách học - C8
Nếu bạn gặp một bài toán khó, dù cố gắng nhiều mà giải mãi không xong, thì làm thế nào? Câu trả lời phổ biến nhất là cố gắng tìm ra chỗ sai trong lập...
Hoàn thành mọi việc với Kanban
“Tôi bận”, “Tôi không có đủ thời gian” hay “Ước gì một ngày 48 tiếng” gần như đã trở thành những câu cửa miệng trong cuộc sống của chúng ta ngày nay....
Sử dụng Generative AI - Biến AI thành Trợ lý Đắc lực của bạn
Bạn có đang nghe về AI, ChatGPT ở khắp mọi nơi và cảm thấy mình sắp bị bỏ lại phía sau? Bạn lo lắng rằng AI quá phức tạp, chỉ dành cho dân công nghệ, hay đơn giản là không biết bắt đầu từ đâu để ứng dụng vào công việc và cuộc sống? Nếu có, khóa học "GenAI Essential" chính là điểm khởi đầu hoàn hảo dành cho bạn. Khóa học này giới thiệu cho bạn về trí tuệ nhân tạo tạo sinh (GenAI) và giải thích cách thức hoạt động của các mô hình ngôn ngữ lớn và các công cụ AI tạo sinh, như ChatGPT. Khám phá việc sử dụng GenAI một cách hiệu quả cho các nhiệm vụ từ đơn giản tới phức tạp. Các kiến thức và kỹ năng học được có ý nghĩa cho cả hiện tại lẫn đáp ứng các thay đổi trong tương lai. Đây là chiếc chìa khóa để bạn không chỉ hiểu, mà còn tự tin biến AI thành trợ lý đắc lực, một đồng minh sáng tạo, và một lợi thế cạnh tranh thực sự trong kỷ nguyên số.
Prompt Engineering: Khai thác hiệu quả Generative AI
Bạn có đang nghe về AI, ChatGPT ở khắp mọi nơi và cảm thấy mình sắp bị bỏ lại phía sau? Bạn lo lắng rằng AI quá phức tạp, chỉ dành cho dân công nghệ, hay đơn giản là không biết bắt đầu từ đâu để ứng dụng vào công việc và cuộc sống? Nếu có, khóa học "GenAI Essential" chính là điểm khởi đầu hoàn hảo dành cho bạn. Khóa học này giới thiệu cho bạn về trí tuệ nhân tạo tạo sinh (GenAI) và giải thích cách thức hoạt động của các mô hình ngôn ngữ lớn và các công cụ AI tạo sinh, như ChatGPT. Khám phá việc sử dụng GenAI một cách hiệu quả cho các nhiệm vụ từ đơn giản tới phức tạp. Các kiến thức và kỹ năng học được có ý nghĩa cho cả hiện tại lẫn đáp ứng các thay đổi trong tương lai. Đây là chiếc chìa khóa để bạn không chỉ hiểu, mà còn tự tin biến AI thành trợ lý đắc lực, một đồng minh sáng tạo, và một lợi thế cạnh tranh thực sự trong kỷ nguyên số.
Học cách học
Nếu bạn gặp một bài toán khó, dù cố gắng nhiều mà giải mãi không xong, thì làm thế nào? Câu trả lời phổ biến nhất là cố gắng tìm ra chỗ sai trong lập...
Lập trình Web với Java
Khóa học Lập trình Web với Java được thiết kế chuyên sâu để xây dựng nền tảng vững chắc nhất cho một Backend Developer. Khóa học giúp học viên làm chủ...
Web Front-end Devlopment with ReactJS
Module Xây dựng ứng dụng Web với ReactJS giúp học viên làm chủ được các kiến thức và kỹ năng lập trình bất đồng bộ, xử lý được các sự kiện, hiệu ứng, giao tiếp được với server. Nội dung về “React JS” giúp bạn tiếp cận với nền tảng công nghệ Front-end hiện đại và phổ biến nhất hiện nay. Kết thúc module, học viên có thể phát triển được các ứng dụng web sử dụng công nghệ JavaScript và thư viện ReactJS. Module "Xây dựng ứng dụng Web với ReactJS" không chỉ giúp học viên làm chủ kỹ thuật Front-end hiện đại nhất mà còn tiên phong cập nhật xu hướng tích hợp Generative AI vào sản phẩm phần mềm. Bên cạnh việc thành thạo kỹ năng lập trình bất đồng bộ, xử lý sự kiện, quản lý state và giao tiếp với server, học viên sẽ được trang bị tư duy sử dụng AI làm đòn bẩy công nghệ. Kết thúc module, học viên có khả năng phát triển các ứng dụng web thông minh, hiệu suất cao, sẵn sàng cho thị trường lao động công nghệ mới.
Git và Github từ căn bản đến nâng cao
Để bắt đầu hành trình trở thành một lập trình viên chuyên nghiệp, việc hiểu và sử dụng thành thạo hai công cụ là Git và GitHub là điều kiện tiên quyết.
C++ Cơ bản 2: Hàm, Mảng, Chuỗi & Con trỏ
Làm chủ hàm, tham chiếu, đệ quy, mảng 1D/2D, std::vector, tìm kiếm - sắp xếp, xử lý chuỗi và con trỏ bộ nhớ động theo chuẩn C++20.