Java Cơ bản: Từ con số 0 đến tư duy lập trình
Khoá học dành cho người chưa từng lập trình. Bạn sẽ đi từ chương trình Java đầu tiên đến việc tự viết các chương trình console hoàn chỉnh: nhập xuất dữ liệu, tính toán, rẽ nhánh, vòng lặp, phương thức và mảng.
Nội dung được xây dựng dựa trên JDK 21 và IntelliJ IDEA. Mỗi bài học gồm bài đọc có ví dụ chạy được ngay trên trình duyệt, bài đọc hiểu code và bài tập lập trình chấm tự động.
Khoá gồm 8 chương, một mini project giữa khoá và một dự án cuối khoá.
Nội dung khóa học
Module 1. Làm quen với Java
5 bài học · 29 hoạt động-
Máy tính gồm những gì?
-
Bit, byte và bộ nhớ
-
Từ mã máy đến ngôn ngữ bậc cao
-
Trình biên dịch và trình thông dịch
-
Hệ điều hành
-
Kiểm tra nhanh: Máy tính và ngôn ngữ lập trình
-
Java ra đời như thế nào?
-
Đặc tả ngôn ngữ, API, JDK và IDE
-
Cài đặt JDK
-
Cài đặt IntelliJ IDEA và tạo project đầu tiên
-
Thực hành: Chạy chương trình đầu tiên trên máy của bạn
-
Chương trình Welcome
-
Từ khoá, khối lệnh và ký tự đặc biệt
-
In nhiều dòng với println và print
-
Đọc code: println và print
-
Thực hành: In ba thông điệp
-
Thực hành: In bảng số
-
Biên dịch và chạy: bytecode và JVM
-
Tính toán và in kết quả
-
Thực hành: Tính giá trị biểu thức
-
Thực hành: Xấp xỉ số pi
-
Thực hành: Diện tích và chu vi hình tròn
-
Phong cách lập trình
-
Lỗi cú pháp
-
Lỗi runtime và lỗi logic
-
Bốn lỗi người mới hay gặp
-
Tìm lỗi: Chương trình tính trung bình
-
Thực hành: Sửa lỗi logic đổi nhiệt độ
-
Tổng kết Module 1
Module 2. Biến, kiểu dữ liệu và biểu thức
7 bài học · 50 hoạt động-
Thuật toán và biến: tính diện tích hình tròn
-
Đọc dữ liệu từ bàn phím với Scanner
-
Đọc nhiều giá trị
-
Thực hành: Đổi độ C sang độ F
-
Thực hành: Thể tích hình trụ
-
Định danh: quy tắc đặt tên
-
Khai báo và khởi tạo biến
-
Câu lệnh gán và biểu thức gán
-
Đọc code: lần vết phép gán
-
Hằng số với final
-
Quy ước đặt tên trong Java
-
Thực hành: Đổi dặm sang kilômét
-
Thực hành: Đổi feet sang mét
-
Các kiểu dữ liệu số
-
Toán tử số học và phép chia nguyên
-
Phép chia dư và ứng dụng
-
Đọc code: chia nguyên và chia dư
-
Thực hành: Đổi phút ra năm và ngày
-
Thực hành: Tổng các chữ số
-
Luỹ thừa với Math.pow
-
Thực hành: Khoảng cách giữa hai điểm
-
Literal số nguyên
-
Literal số thực và ký pháp khoa học
-
Thứ tự tính của biểu thức
-
Từ công thức toán sang Java
-
Đọc code: phép chia trong biểu thức
-
Thực hành: Năng lượng đun nước
-
Thực hành: Chiều dài đường băng
-
Toán tử gán mở rộng
-
Toán tử tăng và giảm
-
Đọc code: i++ và ++i
-
Chuyển đổi kiểu số và ép kiểu
-
Giữ hai chữ số thập phân bằng ép kiểu
-
Đọc code: ép kiểu
-
Thực hành: Tiền lãi tháng tới
-
Thực hành: Bảng luỹ thừa
-
Bài toán: hiển thị giờ hiện tại
-
Thực hành: Giờ theo múi giờ
-
Quy trình phát triển phần mềm
-
Tính khoản vay: từ yêu cầu đến thiết kế
-
Tính khoản vay: cài đặt và kiểm thử
-
Thực hành: Giá trị đầu tư tương lai
-
Bài toán: đổi tiền lẻ
-
Thực hành: Máy ATM trả tiền
-
Lỗi về biến và Scanner thừa
-
Tràn số nguyên
-
Sai số làm tròn và chia nguyên ngoài ý muốn
-
Tìm lỗi: chương trình tính điểm trung bình
-
Thực hành: Trung bình ba số nguyên
-
Tổng kết Module 2
Module 3. Cấu trúc rẽ nhánh
7 bài học · 56 hoạt động-
Kiểu boolean và toán tử quan hệ
-
Câu lệnh if
-
Thực hành: Giá trị tuyệt đối
-
Câu lệnh if-else
-
Đọc code: if và if-else
-
Thực hành: Số chẵn hay số lẻ
-
Câu lệnh if lồng nhau
-
if-else nhiều nhánh
-
Đọc code: if lồng nhau
-
Thực hành: Xếp loại học lực
-
Bài toán: Tính và phân loại BMI
-
Thực hành: Phân loại BMI
-
Bài toán: Tính thuế luỹ tiến
-
Thực hành: Tính thuế luỹ tiến
-
Thực hành: Phí vận chuyển
-
Quên ngoặc nhọn và dấu chấm phẩy thừa
-
else treo: else thuộc về if nào?
-
Đọc code: else thuộc về if nào?
-
Kiểm tra biến boolean: == true và =
-
So sánh hai số thực
-
Viết if gọn hơn
-
Tìm lỗi: Chương trình tính giá vé
-
Thực hành: Sửa chương trình tính thưởng
-
Sinh số ngẫu nhiên với Math.random()
-
Bài toán: Trò chơi phép trừ
-
Đọc code: Hoán đổi hai biến
-
Thực hành: Trò chơi phép cộng
-
Thực hành: Tung đồng xu
-
Thực hành: Sắp xếp ba số nguyên
-
Toán tử logic !, && và ||
-
Toán tử loại trừ ^
-
Thực hành: Chia hết cho 5 và 6
-
Khoảng giá trị và luật De Morgan
-
Đánh giá đoản mạch
-
Đọc code: Biểu thức logic
-
Bài toán: Năm nhuận
-
Thực hành: Chu vi tam giác
-
Bài toán: Xổ số
-
Thực hành: Dò vé số
-
Câu lệnh switch
-
break và hiện tượng chạy xuyên
-
Đọc code: switch thiếu break
-
Bài toán: Con giáp của năm
-
Thực hành: Thứ trong tuần
-
Thực hành: Số ngày trong tháng
-
Ghi chú: switch kiểu mới với mũi tên
-
Thực hành: Ngày trong tương lai
-
Biểu thức điều kiện ? :
-
Thực hành: Giá vé theo tuổi
-
Độ ưu tiên của toán tử
-
Tính kết hợp của toán tử
-
Đọc code: Độ ưu tiên toán tử
-
Gỡ lỗi chương trình
-
Thực hành: Gỡ lỗi chương trình xếp loại
-
Thực hành: Số đối xứng
-
Tổng kết Module 3
Module 4. Hàm toán học, ký tự và chuỗi
8 bài học · 60 hoạt động-
Lớp Math: lũy thừa, căn và lượng giác
-
Các phương thức làm tròn
-
Đọc code: Làm tròn số âm
-
Thực hành: Diện tích ngũ giác đều
-
Các phương thức min, max và abs
-
Thực hành: Lớn nhất, nhỏ nhất và độ chênh
-
Số ngẫu nhiên trong một khoảng
-
Thực hành: Gieo hai con xúc xắc
-
Ví dụ: Tính các góc của tam giác
-
Thực hành: Khoảng cách giữa hai thành phố
-
Kiểu char và bảng mã Unicode, ASCII
-
Ký tự thoát
-
Thực hành: In đường dẫn và lời trích
-
Ép kiểu giữa char và số
-
Đọc code: Tăng giảm ký tự
-
Thực hành: Ký tự của một mã ASCII
-
So sánh và kiểm tra ký tự
-
Thực hành: Phân loại ký tự
-
Thực hành: Chữ cái ngẫu nhiên
-
Chuỗi và đối tượng String
-
Lấy ký tự bằng charAt
-
Thực hành: Độ dài, ký tự đầu và ký tự cuối
-
Nối chuỗi
-
Đọc code: Cộng hay nối?
-
Đổi chữ hoa, chữ thường và cắt khoảng trắng
-
Đọc chuỗi từ bàn phím: next và nextLine
-
Đọc một ký tự từ bàn phím
-
Thực hành: Nguyên âm hay phụ âm
-
Thực hành: Đổi điểm chữ sang điểm số
-
So sánh bằng: equals và ==
-
Tìm lỗi: Đăng nhập luôn thất bại
-
So sánh thứ tự với compareTo
-
Thực hành: Sắp xếp ba thành phố
-
Kiểm tra đầu, cuối và chuỗi con
-
Thực hành: Kiểm tra chuỗi con
-
Lấy chuỗi con với substring
-
Tìm kiếm với indexOf và lastIndexOf
-
Đọc code: Cắt và tìm trong chuỗi
-
Thực hành: Tách họ và tên
-
Chuyển đổi giữa chuỗi và số
-
Thực hành: Tách đô la và xu
-
Ví dụ: Trò chơi đoán ngày sinh
-
Thực hành: Đoán ngày sinh với Y và N
-
Ví dụ: Đổi chữ số thập lục phân sang thập phân
-
Thực hành: Đổi số thập phân sang chữ số hex
-
Thực hành: Ngành học và năm học
-
Ví dụ: Xổ số dùng chuỗi
-
Thực hành: Dò vé số hai chữ số
-
Thực hành: Sinh biển số xe ngẫu nhiên
-
printf và đặc tả định dạng
-
Thực hành: Tính tiền lãi
-
Độ rộng và độ chính xác
-
Đọc code: Độ rộng tự giãn
-
Căn trái, căn phải và in bảng
-
Thực hành: In bảng giá
-
Tìm lỗi: printf không khớp kiểu
-
Thực hành: Phiếu lương
-
Sơ đồ tư duy: Hàm toán học, ký tự và chuỗi
-
Mini project: Tính tiền điện bậc thang
-
Tổng kết Module 4
Module 5. Vòng lặp
8 bài học · 56 hoạt động-
Vòng lặp while
-
Đọc code: vòng lặp while
-
Thực hành: Đếm ngược
-
Thực hành: Tổng từ 1 đến n
-
Lặp đến khi trả lời đúng
-
Trò chơi đoán số
-
Ba bước thiết kế vòng lặp
-
Thực hành: Mười câu hỏi phép cộng
-
Lặp vô hạn và lỗi lệch một
-
Tìm lỗi: tổng các số chẵn
-
Điều khiển vòng lặp bằng giá trị cầm canh
-
Đọc code: tăng biến trong điều kiện
-
Thực hành: Đếm số dương, số âm và tính trung bình
-
Thực hành: Số lớn nhất và số lần xuất hiện
-
Vòng lặp do-while
-
Đọc code: vòng lặp do-while
-
Thực hành: Nhập tháng hợp lệ
-
Thực hành: Đếm số chữ số
-
Vòng lặp for
-
Biến điều khiển và các biến thể của for
-
Đọc code: vòng lặp for
-
Thực hành: Bảng đổi dặm sang kilômét
-
Thực hành: Các số chia hết cho 5 và 6
-
Chọn loại vòng lặp nào?
-
Tìm lỗi: dấu chấm phẩy thừa
-
Thực hành: Số n nhỏ nhất có bình phương vượt ngưỡng
-
Vòng lặp lồng nhau
-
In bảng cửu chương
-
Đọc code: vòng lặp lồng nhau
-
Thực hành: Tam giác số
-
Thực hành: Tam giác số căn phải
-
Thực hành: Các cặp số từ 1 đến 7
-
Sai số số thực trong vòng lặp
-
Thực hành: Tổng một dãy phân số
-
Tìm ước chung lớn nhất
-
Thực hành: Ước chung lớn nhất theo cách đếm lùi
-
Dự đoán học phí tương lai
-
Thực hành: Gửi tiết kiệm hằng tháng
-
Đổi số thập phân sang hệ 16
-
Đọc code: đổi sang hệ 16
-
Thực hành: Đổi số thập phân sang nhị phân
-
Thực hành: Phân tích ra thừa số nguyên tố
-
Lệnh break trong vòng lặp
-
Lệnh continue
-
Đọc code: break trong vòng lặp lồng nhau
-
Khi nào nên dùng break và continue?
-
Thực hành: Ước nhỏ nhất khác 1
-
Thực hành: Tổng các số không âm
-
Kiểm tra chuỗi đối xứng
-
Thực hành: Đảo ngược chuỗi
-
Thực hành: Đếm nguyên âm và phụ âm
-
Kiểm tra một số nguyên tố
-
In 50 số nguyên tố đầu tiên
-
Thực hành: Số nguyên tố từ 2 đến 1000
-
Thực hành: Số hoàn hảo
-
Tổng kết Module 5
Module 6. Phương thức
10 bài học · 61 hoạt động-
Vì sao cần phương thức?
-
Định nghĩa một phương thức
-
Gọi một phương thức
-
Ngăn xếp lời gọi (call stack)
-
Đọc code: Lần theo các lời gọi phương thức
-
Thực hành: Số ngũ giác
-
Thực hành: Tổng các chữ số
-
Phương thức void
-
void hay trả về giá trị?
-
Mọi nhánh đều phải return
-
Lệnh return trong phương thức void
-
Đọc code: Phương thức void có return sớm
-
Thực hành: In số đảo ngược
-
Thực hành: In tam giác số
-
Tìm lỗi: Định nghĩa và gọi phương thức
-
Đối số phải khớp với tham số
-
Truyền tham trị
-
Vì sao swap không đổi được hai biến?
-
Đọc code: Tham số trùng tên với biến
-
Đọc code: Tham số là một bản sao
-
Thực hành: Đổi nhiệt độ
-
Thực hành: Sắp xếp ba số
-
Mô-đun hoá: ước chung lớn nhất
-
Phương thức gọi phương thức: số nguyên tố
-
Thực hành: Đếm số nguyên tố
-
Thực hành: Số đối xứng
-
Thực hành: Số nguyên tố sinh đôi
-
Hệ nhị phân và hệ thập lục phân
-
Đổi một ký tự hex thành số
-
Thuật toán Horner và chương trình Hex2Dec
-
Đọc code: Lần vết thuật toán Horner
-
Thực hành: Đổi nhị phân sang thập phân
-
Thực hành: Đếm ký tự trong chuỗi
-
Nạp chồng phương thức
-
Trình biên dịch chọn phương thức nào?
-
Lời gọi mơ hồ
-
Đọc code: Phương thức nào được gọi?
-
Thực hành: Diện tích đa giác đều
-
Tìm lỗi: Nạp chồng phương thức
-
Biến cục bộ và phạm vi
-
Phạm vi trong vòng lặp và khối lồng nhau
-
Đọc code: Phạm vi và giá trị của biến
-
Tìm lỗi: Phạm vi của biến
-
Ký tự ngẫu nhiên từ số ngẫu nhiên
-
Lớp RandomCharacter
-
Thực hành: In chữ hoa và chữ số ngẫu nhiên
-
Thực hành: In dãy ký tự
-
Thực hành: Kiểm tra mật khẩu
-
Trừu tượng hoá phương thức
-
Thiết kế từ trên xuống: bài toán in lịch
-
Cài đặt từ trên xuống với stub
-
Thực hành: Số ngày trong năm
-
Thực hành: Số ngày trong tháng
-
Thực hành: Tên tháng
-
Ngày đầu tháng rơi vào thứ mấy?
-
Thực hành: Thứ của một ngày bất kỳ
-
In tiêu đề và thân lịch
-
Thực hành: In thân lịch
-
Chương trình PrintCalendar hoàn chỉnh
-
Thực hành: Kiểm tra số thẻ tín dụng
-
Tổng kết Module 6
Module 7. Mảng một chiều
11 bài học · 61 hoạt động-
Vì sao cần mảng?
-
Khai báo và tạo mảng
-
Kích thước, giá trị mặc định và truy cập phần tử
-
Khởi tạo nhanh mảng
-
Đọc code: Kích thước mảng có đổi không?
-
Thực hành: Mảng các số chính phương
-
Nhập và in mảng
-
Thực hành: In dãy số theo thứ tự ngược
-
Tính tổng và tìm phần tử lớn nhất
-
Thực hành: Phần tử nhỏ nhất và vị trí của nó
-
Xáo trộn mảng ngẫu nhiên
-
Dịch các phần tử của mảng
-
Đọc code: Gán lan truyền trong mảng
-
Thực hành: Dịch phải mảng
-
Dùng mảng để tra cứu thay cho if-else
-
Vòng lặp for-each
-
Thực hành: Đếm số điểm đạt
-
Lỗi vượt chỉ số mảng
-
Tìm lỗi: Tính điểm trung bình
-
Thực hành: Xếp loại theo điểm cao nhất
-
Phân tích dãy số: bao nhiêu số lớn hơn trung bình?
-
Thực hành: Phân tích điểm số
-
Biểu diễn bộ bài bằng mảng
-
Thực hành: Gọi tên lá bài
-
Rút bốn lá bài ngẫu nhiên
-
Thực hành: Đếm số lần xuất hiện
-
Gán biến mảng không phải là sao chép
-
Đọc code: Hai biến, mấy mảng?
-
Sao chép mảng bằng vòng lặp và System.arraycopy
-
Thực hành: Ghép hai mảng
-
Truyền mảng cho phương thức
-
Phương thức có thể thay đổi mảng được truyền vào
-
Đọc code: Gán lại tham số mảng
-
Thực hành: Trung bình cộng của mảng
-
Trả về mảng từ phương thức
-
Thực hành: Đảo ngược mảng tại chỗ
-
Đếm số lần xuất hiện của từng chữ cái
-
Thực hành: Đếm chữ cái trong một từ
-
Tham số biến đổi (varargs)
-
Đọc code: Phương thức với tham số biến đổi
-
Thực hành: Ước chung lớn nhất của nhiều số
-
Tìm kiếm tuyến tính
-
Thực hành: Tìm vị trí của một số
-
Ý tưởng tìm kiếm nhị phân
-
Cài đặt tìm kiếm nhị phân
-
Đọc code: Lần vết tìm kiếm nhị phân
-
Thực hành: Tìm kiếm nhị phân
-
Ý tưởng sắp xếp chọn
-
Cài đặt sắp xếp chọn
-
Đọc code: Hai lượt đầu của sắp xếp chọn
-
Thực hành: Sắp xếp giảm dần
-
Thực hành: Mảng đã sắp xếp chưa?
-
Sắp xếp và tìm kiếm với lớp Arrays
-
So sánh, điền và in mảng với lớp Arrays
-
Đọc code: fill, toString và equals
-
Thực hành: Sắp xếp và in mảng bằng lớp Arrays
-
Thực hành: Hai mảng có cùng nội dung?
-
Truyền chuỗi cho phương thức main
-
Chương trình Calculator dùng tham số dòng lệnh
-
Thực hành: Cộng các tham số dạng chuỗi
-
Tổng kết Module 7
Module 8. Mảng nhiều chiều và dự án cuối khoá
8 bài học · 46 hoạt động-
Khai báo và tạo mảng hai chiều
-
Độ dài của mảng hai chiều và mảng răng cưa
-
Đọc code: Thay một hàng của mảng hai chiều
-
Thực hành: Tạo mảng tam giác
-
Nhập và in mảng hai chiều
-
Thực hành: Nhập và in ma trận
-
Tính tổng tất cả phần tử và tổng theo cột
-
Đọc code: Tổng của một cột
-
Thực hành: Tổng từng cột
-
Tìm hàng có tổng lớn nhất
-
Thực hành: Phần tử lớn nhất và vị trí của nó
-
Giá trị ngẫu nhiên và xáo trộn mảng hai chiều
-
Thực hành: Xáo trộn các hàng
-
Truyền mảng hai chiều cho phương thức
-
Trả về mảng hai chiều từ phương thức
-
Đọc code: Phương thức trả về kích thước ma trận
-
Thực hành: Tổng đường chéo chính
-
Thực hành: Cộng hai ma trận
-
Tìm lỗi: Tổng theo cột
-
Thực hành: Nhân hai ma trận
-
Phân tích bài toán chấm trắc nghiệm
-
Chương trình GradeExam
-
Thực hành: Chấm bài từ dữ liệu nhập
-
Thực hành: Xếp học viên theo số câu đúng
-
Thực hành: Tổng giờ làm trong tuần
-
Biểu diễn các điểm bằng mảng hai chiều
-
Chương trình FindNearestPoints
-
Đọc code: Đếm số cặp điểm
-
Thực hành: Cặp điểm gần nhất
-
Thực hành: Thành phố trung tâm
-
Sudoku và cách biểu diễn lưới
-
Kiểm tra một ô trên hàng và cột
-
Xác định khối 3x3 chứa một ô
-
Chương trình CheckSudokuSolution
-
Đọc code: Ô đầu của khối 3x3
-
Thực hành: Kiểm tra lời giải Sudoku
-
Mảng ba chiều
-
Đọc code: Truy cập phần tử mảng ba chiều
-
Bài toán: Nhiệt độ và độ ẩm theo ngày
-
Thực hành: Nhiệt độ và độ ẩm trung bình
-
Bài toán: Đoán ngày sinh bằng mảng ba chiều
-
Thực hành: Tổng điểm của từng học viên
-
Tổng kết Module 8
-
Sơ đồ tư duy: Java cơ bản
-
Dự án cuối khoá: Trò chơi Tic-tac-toe trên console
-
Bài kiểm tra cuối khoá
Giảng viên
Nguyen Nhat