Tổng quan về giáo trình

Giáo trình Giải thuật ứng dụng trong kinh doanh (tên tiếng Anh: Applied Algorithms in Business) là tài liệu học tập chính quy phục vụ chương trình đào tạo trình độ đại học tại Trường Đại học Ngân hàng Thành phố Hồ Chí Minh (HUB). Học phần được thiết kế dành cho sinh viên thuộc các ngành: Hệ thống thông tin quản lý, Tài chính – Ngân hàng và Quản trị kinh doanh. Nội dung tài liệu được biên soạn bám sát khung đề cương chi tiết đã được Ban Giám hiệu nhà trường phê duyệt, nhằm chuẩn hóa kiến thức tin học ứng dụng và phân tích dữ liệu cho khối ngành kinh tế.

Mục tiêu học tập của giáo trình hướng đến việc trang bị cho người học tư duy mô hình hóa các bài toán kinh tế - nghiệp vụ thành các mô hình dữ liệu và giải thuật xử lý trên máy tính tính toán. Người học được trang bị khả năng lựa chọn cấu trúc dữ liệu thích hợp, cài đặt các thuật toán nền tảng bằng ngôn ngữ lập trình Python, đồng thời đánh giá được hiệu năng và độ phức tạp tính toán của các giải pháp lập trình.

Về mặt cấu trúc, tài liệu được tổ chức theo phương pháp sư phạm thực nghiệm: tóm tắt lý thuyết nền tảng, minh họa bằng mã nguồn Python hoàn chỉnh, in kết quả chạy chương trình thực tế và hướng dẫn giải từng bước. Điểm đặc thù của giáo trình là việc lồng ghép trực tiếp các bài toán quản lý, tài chính, ngân hàng và vận hành doanh nghiệp vào từng cấu trúc dữ liệu và giải thuật trừu tượng, loại bỏ khoảng cách giữa lý thuyết khoa học máy tính và thực tiễn vận hành kinh doanh.


Nội dung kiến thức cốt lõi

Các chương và chủ đề chính

Toàn bộ tài liệu gồm 7 chương được xây dựng theo tiến trình từ cơ bản đến nâng cao:

  • Chương 1: Tổng quan: Định nghĩa giải thuật, cấu trúc dữ liệu và cấu trúc lưu trữ; làm rõ phương trình nền tảng $Data\ Structures + Algorithms = Programs$. Giới thiệu các phương pháp thiết kế giải thuật (chia để trị, quy hoạch động, quay lui, tham lam); phân tích độ phức tạp thời gian bằng ký hiệu Big-O ($O(1)$, $O(n)$, $O(n^2)$, $O(n^3)$, $O(\log n)$); quy tắc cộng và quy tắc nhân; tổng quan về ngôn ngữ Python và các kiểu dữ liệu định sẵn (int, float, str, list, tuple, dict, set, frozenset, bytes, bytearray, memoryview).
  • Chương 2: Đệ quy: Cơ chế hoạt động của hàm đệ quy (phần cơ sở và phần đệ quy) dựa trên nguyên lý ngăn xếp LIFO (Last In First Out); kiểm soát hiện tượng tràn ngăn xếp (stack overhead). Phân loại đệ quy (tuyến tính, nhị phân, phi tuyến, tương hỗ); giải các bài toán kinh điển (Tháp Hà Nội độ phức tạp $2^n - 1$, đổi cơ số 10 sang cơ số 2, dãy Fibonacci, bài toán chia thưởng $m$ phần thưởng cho $n$ học sinh, tính $C_k^n$, $x^n$, ước số chung lớn nhất).
  • Chương 3: Danh sách: Khai báo và các thao tác (thêm, xóa, duyệt) trên danh sách đặc (mảng một chiều); danh sách liên kết đơn, danh sách liên kết đôi, danh sách liên kết vòng và danh sách đa liên kết; cấu trúc ngăn xếp (Stack với các tác vụ Push, Pop) và cấu trúc hàng đợi (Queue - FIFO với Front, Rear). Cài đặt giải thuật Radix Sort bằng hàng đợi.
  • Chương 4: Cây: Cấu trúc cây tổng quát, cây nhị phân (cây hoàn chỉnh, cây đầy đủ); các phương pháp duyệt cây theo thứ tự trước (Preorder), thứ tự giữa (Inorder) và thứ tự sau (Postorder); cây nhị phân tìm kiếm (Binary Search Tree - BST); cấu trúc dữ liệu Heap và cấu trúc cây TRIE lưu trữ chuỗi ký tự.
  • Chương 5: Đồ thị: Định nghĩa đỉnh, cạnh, chu trình, bậc của đỉnh, đồ thị liên thông và đồ thị có trọng số; biểu diễn đồ thị bằng ma trận kề và danh sách kề; giải thuật duyệt theo chiều sâu (DFS) và duyệt theo chiều rộng (BFS); tìm cây khung nhỏ nhất (Minimum Spanning Tree) thông qua thuật toán Prim và thuật toán Kruskal; tìm đường đi ngắn nhất bằng thuật toán Dijkstra.
  • Chương 6: Sắp xếp và tìm kiếm: Nguyên lý và cài đặt các giải thuật sắp xếp: Bubble Sort, Selection Sort, Insertion Sort, Interchange Sort, Merge Sort, Quick Sort, Heap Sort, Radix Sort và Topo Sort; các thuật toán tìm kiếm dữ liệu tuần tự và tìm kiếm nhị phân.
  • Chương 7: Bảng băm: Khái niệm bảng băm (Hash Table), hàm băm (phép chia lấy dư); các kỹ thuật xử lý va chạm gồm phương pháp tạo dây chuyền (separated chaining) và định địa chỉ mở (open addressing với thăm dò tuyến tính và băm kép).

Kiến thức nền tảng được xây dựng

Giáo trình thiết lập hệ thống lý thuyết nền tảng kết hợp giữa toán học rời rạc và khoa học máy tính:

  1. Lý thuyết tổ chức dữ liệu: Phân biệt rõ ràng giữa cấu trúc dữ liệu logic (mối quan hệ giữa các phần tử dữ liệu) và cấu trúc lưu trữ vật lý trong bộ nhớ máy tính (lưu trữ kế tiếp trong mảng hoặc lưu trữ liên kết thông qua con trỏ pHead, pTail, Node).
  2. Nguyên lý phân tích và tối ưu thuật toán: Sử dụng công cụ hình thức toán học để đánh giá chi phí thời gian chạy $T(n)$ và không gian bộ nhớ của chương trình trong ba trường hợp: tốt nhất, xấu nhất và trung bình.
  3. Kỹ thuật thiết kế giải thuật: Trọng tâm là chiến lược chia để trị (divide-and-conquer) thông qua thiết kế từ trên xuống (top-down design) và tinh chỉnh từng bước (stepwise refinement), phối hợp cùng các nguyên lý quy hoạch động và quay lui (backtracking).

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical Skills): Khai báo, cài đặt và thao tác thành thạo các cấu trúc dữ liệu phức tạp trên nền tảng ngôn ngữ Python; lập trình hướng đối tượng (class, đối tượng dữ liệu sinh viên, hàng hóa, nút liên kết); sử dụng các công cụ phát triển phần mềm như PyCharm.
  • Kỹ năng phân tích (Analytical Skills): Khả năng trừu tượng hóa yêu cầu nghiệp vụ thực tế thành bài toán tính toán; phân tích và lựa chọn thuật toán tối ưu dựa trên độ phức tạp thuật toán và tần suất sử dụng của chương trình.
  • Năng lực ứng dụng thực hành (Practical Competencies): Cài đặt các chương trình ứng dụng cụ thể trong doanh nghiệp:
    • Sử dụng đệ quy để tính lãi gửi tiết kiệm ngân hàng (lãi kép), tính tiền thưởng theo tiêu chí, tính tiền lãi phải trả hàng tháng khi vay ngân hàng.
    • Xây dựng chương trình quản lý sinh viên bằng danh sách đặc và cây nhị phân tìm kiếm.
    • Cài đặt chương trình quản lý hàng hóa, quản lý hóa đơn bán hàng và quản lý sách.
    • Ứng dụng hàng đợi quản lý bệnh nhân theo thứ tự đến trước phục vụ trước (FIFO).
    • Ứng dụng giải thuật Dijkstra để tối ưu hóa quản lý đường bay và mạng lưới giao thông.
    • Ứng dụng thuật toán Prim và Kruskal để giải bài toán vận chuyển hàng hóa và lắp đặt hệ thống mạng lưới điện văn phòng.

Phương pháp giảng dạy và học tập

Giáo trình áp dụng mô hình tiếp cận tích hợp lý thuyết - thực nghiệm (concept-to-code):

  1. Cấu trúc bài giảng chuẩn hóa: Mỗi chương mở đầu bằng mục tiêu và tóm tắt lý thuyết cô đọng; tiếp theo là các đoạn mã nguồn Python minh họa chi tiết từng giải thuật; ngay dưới mã nguồn là ảnh chụp hoặc dữ liệu kết quả thực thi chương trình để sinh viên đối chiếu.
  2. Hệ thống bài tập phân cấp:
    • Câu hỏi lý thuyết và bài tập có lời giải: Giúp củng cố các định nghĩa, quy tắc tính Big-O, vẽ cây đệ quy, mô phỏng quá trình duyệt đồ thị DFS/BFS, quá trình phân tách nhánh của Quick Sort, Merge Sort.
    • Bài tập tình huống kinh doanh: Đặt sinh viên vào các bài toán quản trị nhân sự, kế toán, logistics, ngân hàng.
    • Bài tập tự rèn luyện: Cung cấp các đề bài mở để người học tự thiết kế giải thuật và viết mã nguồn độc lập.
  3. Phương pháp đánh giá và tự học: Tài liệu cung cấp các câu hỏi trắc nghiệm kiến thức, hướng dẫn truy vết từng bước chạy của vòng lặp, tính số phép toán so sánh và gán. Sinh viên có thể tự kiểm tra mã nguồn thông qua bộ dữ liệu mẫu đính kèm giáo trình.

Điểm nổi bật và cập nhật

  • Tính cập nhật về công nghệ: Toàn bộ cấu trúc dữ liệu và giải thuật được chuyển đổi và cài đặt hoàn toàn bằng Python – ngôn ngữ có cú pháp rõ ràng, thư viện mở rộng phong phú và là công cụ tiêu chuẩn trong phân tích dữ liệu, trí tuệ nhân tạo hiện nay.
  • Hệ thống mã nguồn mở đính kèm: Đính kèm toàn bộ các tập tin mã nguồn hoàn chỉnh có thể tải trực tiếp qua liên kết lưu trữ trực tuyến (Code_GTUD.rar), giúp người học trực tiếp chạy thử nghiệm trên môi trường IDE PyCharm mà không cần gõ lại từ đầu.
  • Tính thực tiễn cao đối với khối ngành kinh tế: Khác với các tài liệu cấu trúc dữ liệu thuần kỹ thuật máy tính, giáo trình này thay thế các ví dụ trừu tượng bằng các nghiệp vụ kinh tế cụ thể: tính lãi suất ngân hàng, quản lý dòng tiền vay nợ, tối ưu chi phí vận tải tuyến đường, sắp xếp hóa đơn kế toán, điều phối xếp hàng thanh toán tại quầy thu ngân.
  • Hệ thống bảng biểu và thuật ngữ đối chiếu: Cung cấp bảng tra cứu thuật ngữ song ngữ Anh – Việt đầy đủ ở phần đầu tài liệu (ví dụ: Devide-and-conquer / Chia để trị, Linked list / Danh sách liên kết, Minimum spanning tree / Cây khung nhỏ nhất, Dynamic programming / Quy hoạch động), hỗ trợ sinh viên đọc hiểu các tài liệu chuyên ngành quốc tế.

Đối tượng sử dụng giáo trình

  • Sinh viên đại học: Giáo trình được biên soạn chuyên biệt cho sinh viên năm thứ nhất và năm thứ hai các ngành Hệ thống thông tin quản lý, Tài chính – Ngân hàng, Quản trị kinh doanh, Kế toán – Kiểm toán tại Trường Đại học Ngân hàng TP.HCM và các trường đại học khối kinh tế.
  • Yêu cầu kiến thức tiên quyết (Prerequisites): Người học cần nắm vững kiến thức nhập môn tin học, kỹ năng sử dụng máy tính cơ bản và cú pháp nền tảng của ngôn ngữ lập trình Python (biến, câu lệnh điều kiện if-else, vòng lặp for, while, hàm và danh sách).
  • Giảng viên chuyên ngành: Sử dụng làm tài liệu giảng dạy chính thức, khung bài giảng lý thuyết và ngân hàng câu hỏi, bài tập thực hành trên phòng máy cho môn học Giải thuật ứng dụng trong kinh doanh.
  • Người tự học và nghiên cứu ứng dụng: Tài liệu phù hợp cho các chuyên viên phân tích nghiệp vụ (Business Analyst), nhân viên tài chính - dữ liệu cần củng cố tư duy thuật toán và tối ưu hóa quy trình xử lý dữ liệu tự động bằng Python.

Câu hỏi thường gặp

1. Giáo trình này phù hợp với ai?

Tài liệu phù hợp cho sinh viên khối ngành kinh tế, tài chính, ngân hàng và quản trị kinh doanh cần học cấu trúc dữ liệu và giải thuật ứng dụng, cũng như người làm việc trong lĩnh vực kinh doanh muốn áp dụng lập trình Python vào giải quyết bài toán vận hành.

2. Cần kiến thức nền nào để học?

Người học cần trang bị kiến thức cơ bản về lập trình Python (các kiểu dữ liệu cơ bản, cấu trúc rẽ nhánh, vòng lặp, định nghĩa hàm) và các khái niệm toán học rời rạc cơ bản.

3. Điểm khác biệt với giáo trình khác?

Giáo trình tinh gọn lý thuyết hàn lâm, sử dụng Python thay vì C/C++/Java, tích hợp trực tiếp các bài toán nghiệp vụ kinh doanh (tính lãi ngân hàng, điều phối hàng đợi bệnh nhân, định tuyến giao thông, quản lý hóa đơn) làm ví dụ minh họa và bài tập thực hành.

4. Làm sao để tự học hiệu quả?

Người học nên đọc phần tóm tắt lý thuyết, quan sát sơ đồ minh họa, chạy các file code mẫu có sẵn trên môi trường PyCharm, đối chiếu kết quả in ra của chương trình và tự làm lại các bài tập tự rèn luyện ở cuối mỗi chương.

5. Có tài liệu bổ trợ nào kèm theo?

Giáo trình cung cấp liên kết tải gói mã nguồn hoàn chỉnh (Code_GTUD.rar), hệ thống bảng tra cứu thuật ngữ chuyên ngành Anh - Việt, danh mục bảng biểu và đồ thị trực quan cho toàn bộ 7 chương.


Kết luận

Giáo trình Giải thuật ứng dụng trong kinh doanh của nhóm tác giả Trường Đại học Ngân hàng TP.HCM là tài liệu học tập chuẩn hóa, kết nối giữa khoa học dữ liệu tính toán và quản trị kinh doanh hiện đại. Với lộ trình 7 chương từ tổng quan Big-O, đệ quy, danh sách, cây, đồ thị đến sắp xếp, tìm kiếm và bảng băm, tài liệu định hình tư duy giải quyết vấn đề có hệ thống trên nền tảng Python. Mọi đóng góp học thuật và phản hồi chuyên môn về nội dung tài liệu được tiếp nhận qua kênh thư điện tử chính thức của nhóm biên soạn: thonv@hub.vn và dangph@hub.vn.