Hình thức: Nhóm 2–5 sinh viên
Trọng số: 40% điểm học phần
Sản phẩm: Source code + README + báo cáo ngắn + trình bày/demo.
Mỗi nhóm thực hiện:
Phần A – Bài tập thực hành: 50%
Phần B – Đề tài tìm hiểu: 50%
Mỗi đề tài/bài tập không quá 02 nhóm đăng ký trùng nhau.
Xây dựng chương trình quản lý kết quả học tập của một nhóm sinh viên.
Mỗi sinh viên gồm:
Mã số sinh viên.
Họ tên.
Danh sách môn học.
Điểm thành phần từng môn.
Điểm tổng kết từng môn.
GPA.
Mỗi môn học có:
Điểm thành phần 1: 40%.
Điểm thành phần 2: 60%.
Chương trình phải:
Cho phép nhập thông tin sinh viên và điểm.
Kiểm tra điểm hợp lệ trong khoảng 0–10.
Tính điểm môn học:
Điểm môn = Điểm 40% × 0.4 + Điểm 60% × 0.6
Điểm môn lấy 01 chữ số thập phân.
GPA lấy 02 chữ số thập phân.
Lưu toàn bộ dữ liệu vào file JSON.
Đọc dữ liệu từ JSON và hiển thị lại.
Tìm kiếm sinh viên theo MSSV/họ tên.
Sắp xếp sinh viên theo GPA.
Thống kê sinh viên có GPA cao nhất, thấp nhất và GPA trung bình của nhóm.
Sử dụng try...except để xử lý lỗi.
Có chương trình Python hoàn chỉnh có khả năng:
Nhập dữ liệu → xử lý → lưu JSON → đọc JSON → tìm kiếm → sắp xếp → thống kê.
Xây dựng chương trình thu thập dữ liệu từ một website công khai.
Nhóm lựa chọn một loại dữ liệu, chẳng hạn:
Giá vàng.
Tỷ giá ngoại tệ.
Thời tiết.
Giá sản phẩm.
Tin tức.
Tuyển dụng.
Dữ liệu thể thao.
Thu thập dữ liệu từ ít nhất một nguồn trực tuyến.
Trích xuất tối thiểu 5 thuộc tính cho mỗi bản ghi.
Làm sạch dữ liệu thu được.
Chuyển dữ liệu về cấu trúc Python phù hợp.
Lưu dữ liệu dưới dạng CSV hoặc JSON.
Đọc lại dữ liệu đã lưu.
Tìm kiếm/lọc dữ liệu.
Sắp xếp theo ít nhất một tiêu chí.
Thực hiện tối thiểu 03 thống kê có ý nghĩa.
Xử lý các trường hợp website/API không trả về dữ liệu hoặc dữ liệu sai định dạng.
Xây dựng được pipeline:
Web/API → Thu thập → Xử lý → Dữ liệu có cấu trúc → File → Thống kê.
Không bắt buộc xây dựng mô hình dự đoán ở bài giữa kỳ. Machine Learning phù hợp hơn với đề tài mở rộng hoặc phần tìm hiểu.
Xây dựng chương trình tự động sinh nhiều tài liệu PDF từ dữ liệu có sẵn.
Có thể lựa chọn:
Hóa đơn.
Phiếu điểm.
Phiếu lương.
Sao kê.
Giấy chứng nhận.
Phiếu đăng ký.
Báo cáo bán hàng.
Đọc dữ liệu từ CSV/Excel/JSON.
Kiểm tra và xử lý dữ liệu đầu vào.
Tính toán các giá trị cần thiết.
Tạo tự động một PDF cho từng đối tượng.
PDF phải chứa thông tin động lấy từ dữ liệu.
Định dạng tài liệu rõ ràng.
Tự động đặt tên file.
Tự động tạo thư mục lưu kết quả.
Ghi log các file đã tạo thành công/thất bại.
Xử lý lỗi bằng try...except.
Ví dụ:
employees.xlsx
↓
Python
↓
salary/
├── NV001.pdf
├── NV002.pdf
├── NV003.pdf
└── ...
Không được tạo thủ công từng PDF.
Xây dựng chương trình tự động gửi email cho danh sách người nhận dựa trên dữ liệu Excel/CSV.
Ví dụ:
Chúc mừng sinh nhật nhân viên.
Thông báo kết quả học tập.
Nhắc hạn thanh toán.
Thông báo lịch học.
Gửi báo cáo định kỳ.
Đọc danh sách từ Excel/CSV.
Kiểm tra dữ liệu email.
Xác định đúng đối tượng cần gửi.
Tạo nội dung email riêng cho từng người.
Gửi email tự động.
Có khả năng đính kèm file.
Không gửi lặp.
Ghi log trạng thái gửi.
Xử lý lỗi gửi email.
Có chế độ test để tránh gửi nhầm hàng loạt.
Pipeline hoạt động:
Excel/CSV → Lọc người nhận → Sinh nội dung → Gửi email → Log kết quả.
Lựa chọn một dataset thực tế và sử dụng Python để khám phá, xử lý và phân tích dữ liệu.
Có thể chọn dữ liệu:
Giáo dục.
Bán hàng.
Dân số.
Việc làm.
Giao thông.
Thời tiết.
Thể thao.
Du lịch.
Tài chính.
Dataset tối thiểu khoảng 500 bản ghi và 5 thuộc tính.
Mô tả nguồn dữ liệu.
Đọc dữ liệu bằng Pandas.
Kiểm tra kiểu dữ liệu.
Phát hiện dữ liệu thiếu/trùng/lỗi.
Làm sạch dữ liệu.
Thực hiện tối thiểu 05 phép phân tích/thống kê.
Sử dụng groupby, lọc, sắp xếp hoặc tổng hợp dữ liệu.
Có ít nhất 04 biểu đồ, trong đó ít nhất 03 dạng biểu đồ khác nhau.
Rút ra ít nhất 03 nhận xét có ý nghĩa từ dữ liệu.
Có thể sử dụng:
NumPy
Pandas
Matplotlib
Seaborn
Một chương trình/Notebook thể hiện đầy đủ:
Dataset → Data Cleaning → Analysis → Visualization → Conclusions.
Xây dựng công cụ tự động xử lý một số lượng lớn file.
Ví dụ:
Tổng hợp nhiều file Excel.
Đổi tên file hàng loạt.
Phân loại file vào thư mục.
Tìm file trùng.
Tổng hợp dữ liệu từ nhiều CSV.
Tạo báo cáo từ nhiều file.
Làm việc với thư mục và file.
Đọc tối thiểu hai loại file hoặc nhiều file cùng loại.
Tự động duyệt file.
Kiểm tra dữ liệu.
Xử lý/tổng hợp dữ liệu.
Xuất kết quả.
Ghi log.
Không ghi đè dữ liệu ngoài ý muốn.
Xử lý file lỗi.
Có README giải thích cách sử dụng.
Một công cụ Python giúp tự động hóa một công việc thực tế thay cho việc xử lý thủ công.
Tìm hiểu về kiểm thử cho các ứng dụng Python (pytest, unittest, mock, selenium,... )
Django: framework fullstack phát triển ứng dụng Web trên quy mô lớn
Tìm hiểu về Dash framework - https://dash.plotly.com
Tìm hiểu thư viện Scikit Learn: Machine Learning với Python
Tìm hiểu thư viện Tensor Flow: Deep Learning với Python
Tìm hiểu thư viện NLTK: Xử lý ngôn ngữ tự nhiên
Tìm hiểu thư viện PyTorch: Deep Learning với Python
Tìm hiểu thư viện Keras: Xây dựng mạng neural
OpenCV: Xử lý ảnh bằng Python
Các đề tài tối đa 2 nhóm, nhóm tối đa 5 sinh viên.
Hạn nộp 29/11/2026.