TỔNG QUAN GIÁO TRÌNH LẬP TRÌNH PYTHON CƠ BẢN (MÃ MÔN HỌC: MH30)
Tổng quan về giáo trình
Giáo trình Lập trình Python cơ bản (mã môn học: MH30) là tài liệu học tập chuyên môn bắt buộc thuộc chương trình đào tạo ngành Tin học ứng dụng ở trình độ Cao đẳng. Tài liệu được ban hành chính thức theo Quyết định số 459/QĐ-NSG ngày 31 tháng 08 năm 2022 của Hiệu trưởng Trường Cao đẳng Bách Khoa Nam Sài Gòn, do ThS. Đào Thị Xuân Hường đảm nhiệm vai trò chủ biên và hoàn thành công tác biên soạn vào ngày 30 tháng 01 năm 2022.
Về vị trí trong chương trình đào tạo, môn học đóng vai trò nền tảng giúp người học bước đầu làm quen với môi trường lập trình Python, nắm bắt các kỹ thuật xử lý dữ liệu để xây dựng các ứng dụng đa nền tảng.
Mục tiêu học tập (Learning Outcomes) của giáo trình được xác định cụ thể trên ba phương diện:
- Về kiến thức: Người học nắm vững cú pháp khai báo biến, các toán tử toán học, cấu trúc điều khiển rẽ nhánh, cấu trúc vòng lặp, cú pháp định nghĩa hàm và các thao tác cơ bản với cấu trúc dữ liệu mảng, tập tin, thư mục.
- Về kỹ năng: Vận dụng được hệ thống cú pháp và các thư viện chuẩn của Python để giải quyết các bài toán kỹ thuật, bài toán tính toán số học và xử lý logic thực tế.
- Về năng lực tự chủ và trách nhiệm: Rèn luyện tác phong công nghiệp, tính kiên trì trong lập trình, tính cẩn trọng khi gỡ lỗi (debug) và ý thức tuân thủ quy định bản quyền mã nguồn.
Cấu trúc giáo trình gồm 8 chương chính, triển khai theo phương pháp tiếp cận thực hành trực tiếp (hands-on programming):
- Chương 1: Tổng quan về lập trình Python
- Chương 2: Phép toán cơ bản, biến và nhập xuất trong Python
- Chương 3: Cấu trúc điều khiển, vòng lặp và cấu trúc mảng
- Chương 4: Numpy
- Chương 5: Sets và Dictionaries
- Chương 6: Strings
- Chương 7: Hàm
- Chương 8: Lỗi và sửa lỗi
Điểm đặc thù của giáo trình là việc lồng ghép triết lý thiết kế The Zen of Python (PEP 20), hướng dẫn chi tiết môi trường phát triển tích hợp Visual Studio Code kết hợp thực thi khối lệnh tương tác (#%%), đồng thời đưa nội dung thư viện tính toán khoa học NumPy vào ngay khối kiến thức cơ sở.
Nội dung kiến thức cốt lõi
GIÁO TRÌNH PYTHON CƠ BẢN (MH30)
[NỀN TẢNG CÚ PHÁP] [CẤU TRÚC ĐIỀU KHIỂN & MẢNG] [MỞ RỘNG & TỐI ƯU]
- Cài đặt & VS Code (`#%%`) - Rẽ nhánh: `if - elif - else` - Thư viện `NumPy` & Vectorization
- Kiểu dữ liệu & Biến - Lặp: `while`, `for` - `Sets`, `Dictionaries`, `Strings`
- Toán tử & Thư viện `math` - Cấu trúc: `list`, `tuple` - Xây dựng `Hàm` (Functions)
- Nhập/Xuất: `input()`, `print()` - Điều hướng: `break`, `continue` - Cơ chế gỡ lỗi (Debugging)
Các chương và chủ đề chính
Nội dung giáo trình được thiết kế theo tiến trình logic từ các khái niệm cơ bản đến xử lý dữ liệu phức tạp:
- Chương 1: Tổng quan về lập trình Python: Trình bày lịch sử phát triển ngôn ngữ do Guido van Rossum khởi xướng từ năm 1989 tại CWI (Hà Lan) dựa trên ngôn ngữ ABC, chuyển giao cho Hội đồng chỉ đạo năm 2019; hướng dẫn cài đặt Python interpreter, thiết lập biến môi trường
PATH; hướng dẫn cấu hình công cụ Visual Studio Code và điểm qua các môi trường như PyCharm, Spyder, PyDev, IDLE, Wing, cùng các nền tảng chạy trực tuyến (OnlineGDB, Pydroid 3). - Chương 2: Phép toán cơ bản, biến và nhập xuất trong Python: Cung cấp bảng tra cứu các phép toán số học (
+,-,*,/,%,**,e,j), các hàm trong packagemath(math.pi,math.e,math.sqrt,math.gcd,math.log); quy tắc định danh biến (không bắt đầu bằng chữ số, không chứa ký tự đặc biệt ngoài dấu_, phân biệt hoa/thường, không trùng keywords hay built-in functions); cách sử dụng hàminput(), ép kiểu (int(),float()), và định dạng xuất dữ liệu quaprint()(định dạng%.2f). - Chương 3: Cấu trúc điều khiển, vòng lặp và cấu trúc mảng: Phân tích cú pháp khối lệnh rẽ nhánh
if - elif - elsethông qua thụt lề (indentation); toán tử so sánh và logic (and,or,not); vòng lặpwhile, vòng lặpfor; các lệnh điều hướng luồng (break,continue,pass); cấu trúc dữ liệu tuần tựlist(đặc tính động, đa kiểu) vàtuple(hằng số); cơ chế đánh chỉ mục (index dương từ0, index âm từ-1) và kỹ thuật cắt mảng slicing[start:stop:step]; các phương thức mảng (append(),insert(), lệnhdel). - Chương 4: Numpy: Giới thiệu thư viện tính toán khoa học NumPy (khởi nguồn từ Numeric và Numarray do Travis Oliphant phát triển năm 2005); hướng dẫn cài đặt qua
pip install numpy; cấu trúc dữ liệundarrayđồng nhất kiểu; các hàm tạo mảngnp.arange(),np.linspace(),np.random.rand(); thực hiện các phép toán vector hóa (vectorized operations) không qua vòng lặp. - Chương 5, 6, 7 và 8: Khái niệm và phương thức thao tác trên cấu trúc tập hợp (
Sets), từ điển (Dictionaries), xử lý chuỗi ký tự (Strings); cú pháp định nghĩa hàm để tái sử dụng mã; phân loại lỗi lập trình (lỗi cú pháp, lỗi thực thi, lỗi logic) và quy tắc viết mã hạn chế phát sinh lỗi.
Kiến thức nền tảng được xây dựng
Giáo trình thiết lập hệ thống nguyên lý lập trình gồm:
- Triết lý thiết kế phần mềm: Quán triệt các nguyên tắc trong tài liệu PEP 20 (The Zen of Python): "Simple is better than complex", "Explicit is better than implicit", tối giản hóa cấu trúc cú pháp so với các ngôn ngữ C/C++ và Java.
- Cơ chế định kiểu dữ liệu động (Dynamic Typing): Trình thông dịch tự động suy luận kiểu dữ liệu của biến tại thời điểm gán giá trị, không yêu cầu từ khóa khai báo kiểu tường minh.
- Quy chuẩn thụt dòng (Indentation Rule): Xác định khối lệnh hoàn toàn thông qua khoảng trắng đồng nhất thay cho các cặp dấu ngoặc nhọn
{}. - Mô hình chỉ mục hai chiều (Dual Indexing): Hệ thống định vị phần tử trong chuỗi/danh sách hỗ trợ cả chiều tiến (không âm, từ trái sang phải) và chiều lùi (âm, từ phải sang trái).
Kỹ năng phát triển
- Kỹ năng kỹ thuật (Technical skills): Cài đặt và quản lý môi trường làm việc; sử dụng trình quản lý gói
pip; thao tác kịch bản trực tiếp trên cửa sổ tương tác (Interactive Window) của VS Code; khai báo và vận hành cấu trúc dữ liệu dạng mảng. - Kỹ năng phân tích thuật toán (Analytical skills): Xây dựng lưu đồ giải thuật cho bài toán rẽ nhánh logic; chuyển đổi giải thuật toán học sang mã lệnh (khai triển chuỗi Taylor tính $\ln(1+x)$, phương pháp lặp Newton-Raphson tính căn bậc hai với sai số $10^{-12}$, thuật toán chuyển đổi hệ đếm thập phân sang nhị phân).
- Năng lực ứng dụng thực tế (Practical competencies): Xử lý kiểm tra lỗi truyền tin thông qua thuật toán tính bit Parity 8-bit (chẵn/lẻ); tính toán chỉ số khối cơ thể (BMI) trên tập dữ liệu đa đối tượng bằng toán tử mảng NumPy; tổ chức mảng hai chiều phân tích dữ liệu bán hàng theo ca và ngày trong tuần.
Phương pháp giảng dạy và học tập
QUY TRÌNH HỌC TẬP VÀ THỰC HÀNH
Phương pháp sư phạm (Pedagogical Approach)
Giáo trình áp dụng mô hình sư phạm thực hành trực tiếp. Mỗi chủ đề lý thuyết được gắn liền với các khối mã nguồn minh họa tối giản, có chú thích kết quả đầu ra trực quan. Người học được yêu cầu trực tiếp nhập lại (type-in) từng dòng mã lệnh, quan sát trạng thái thực thi trên trình thông dịch nhằm hình thành phản xạ phát hiện lỗi cú pháp và ghi nhớ cấu trúc lệnh.
Hệ thống bài tập và nghiên cứu tình huống (Case Studies)
Tài liệu phân chia hệ thống bài tập thành hai cấp độ:
1. Bài tập có lời giải mẫu
Đóng vai trò mẫu định hình tư duy giải thuật, bao gồm:
- Thuật toán phân loại số nguyên chẵn/lẻ bằng toán tử
% 2. - Thuật toán xác định dấu của tích hai số thực (
so1 * so2 < 0,so1 * so2 > 0). - Thuật toán tìm giá trị lớn nhất trong ba số thực.
- Hệ thống quy đổi điểm chữ sang thang điểm số của các trường đại học.
- Bài toán tính thưởng nhân viên dựa trên hệ số đánh giá năng lực $n$ (thang đo từ 0.0, công thức tiền thưởng $$2400 \times n$).
- Thuật toán kiểm tra năm nhuận dựa trên tổ hợp điều kiện chia hết cho 400, 100 và 4.
2. Bài tập thực hành tự giải
Yêu cầu người học tự thiết kế mã nguồn cho các bài toán phức hợp:
- Tính diện tích hình học (tam giác, hình tròn).
- Giải phương trình bậc hai $ax^2 + bx + c = 0$ có kiểm tra điều kiện nghiệm.
- Xác định thứ trong tuần của ngày 1 tháng 1 cho một năm bất kỳ theo công thức giải tích.
- Tính chu vi đa giác từ chuỗi tọa độ $(x, y)$ dừng khi gặp khoảng trắng.
- Tính toán mã kiểm tra chẵn lẻ Parity bit cho khối dữ liệu 8-bit nhị phân.
- Chuyển đổi số thập phân sang nhị phân bằng thuật toán chia dư liên tiếp cho 2.
- Tính giá trị hàm xấp xỉ $\ln(1+x)$ theo chuỗi lũy thừa Taylor với điều kiện dừng $|so_hang| \le 10^{-10}$.
- Thuật toán Newton tính căn bậc hai của số $x$ với điều kiện dừng $|guess^2 - x| \le 10^{-12}$.
- Lọc, chèn và sắp xếp danh sách (
list); tìm số nguyên tố bằng cấu trúc lặp lồng nhau (whilekết hợpfor). - Khởi tạo và phân tích mảng 2 chiều NumPy kích thước $(2 \times 7)$ mô phỏng dữ liệu kinh doanh sáng/chiều trong tuần.
Phương pháp đánh giá và hướng dẫn tự học
- Đánh giá: Thông qua độ chính xác của kết quả đầu ra khi biên dịch, khả năng xử lý các trường hợp ngoại lệ đầu vào (ví dụ kiểm tra $|x| < 1$ trong chuỗi Taylor), và chuẩn mực trình bày code (đặt tên biến có nghĩa, thụt lề đúng quy cách).
- Chỉ dẫn tự học: Giáo trình khuyến nghị sinh viên sử dụng phím tắt
Ctrl + Spaceđể kiểm tra gợi ý hàm (IntelliSense) trong VS Code; sử dụng lệnhwhosđể theo dõi danh sách biến tồn tại trong bộ nhớ; dùng lệnhdel ten_bienđể giải phóng biến; tra cứu tài liệu hàm trực tiếp bằng cú pháp dấu chấm hỏi (ví dụ:math.log?hoặcnumpy.arange?).
Điểm nổi bật và cập nhật
Cập nhật so với các phiên bản tiền nhiệm
Giáo trình cập nhật các mốc thay đổi kỹ thuật của ngôn ngữ Python:
- Ngừng hỗ trợ nhánh Python 2.x: Nêu rõ mốc thời gian ngày 01/01/2020 khi Python 2.7 chính thức dừng toàn bộ các bản vá bảo mật, đồng thời giới thiệu tiện ích
2to3dùng để tự động chuyển đổi mã nguồn cũ sang chuẩn Python 3.x. - An toàn phiên bản: Cập nhật thông tin ngừng hỗ trợ của Python 3.6 và phân tích nguyên nhân ra đời của các bản cập nhật mới (như Python 3.8 hay 3.10 theo PEP 619) nhằm xử lý các nguy cơ bảo mật liên quan đến thực thi mã từ xa và nhiễm độc bộ nhớ đệm (web cache).
| Tiêu chí | Cấu trúc Danh sách (list) |
Mảng khoa học (numpy.ndarray) |
|---|---|---|
| Kiểu phần tử | Đa dạng (chứa đồng thời số nguyên, số thực, chuỗi) | Đồng nhất một kiểu dữ liệu duy nhất |
| Hiệu năng | Tốc độ xử lý trung bình trên tập dữ liệu lớn | Tối ưu hóa tính toán số học, tốc độ cao |
| Cơ chế tính toán | Cần sử dụng vòng lặp duyệt từng phần tử | Hỗ trợ tính toán vector hóa (Vectorization) |
| Thêm phần tử | Gọi phương thức: list_name.append(value) |
Gọi hàm thư viện: np.append(arr, value) |
| Bộ nhớ | Cấp phát phân tán cho từng đối tượng | Cấp phát khối bộ nhớ liên tục |
Xu hướng công nghệ tích hợp
- Môi trường tương tác dạng Cell: Hướng dẫn kỹ thuật chia mã nguồn thành các ô thực thi độc lập thông qua ký hiệu
# %%trên Visual Studio Code, kết hợp tổ hợp phímShift + Enterđể chạy từng cell trong cửa sổ tương tác mà không cần nạp lại toàn bộ chương trình. - Điện toán khoa học với NumPy: Đưa mô hình tính toán mảng thay thế cho vòng lặp duyệt thủ công, minh họa qua bài toán tính đồng loạt chỉ số BMI từ hai mảng cân nặng và chiều cao: $$\text{arr_BMI} = \frac{\text{arr_can_nang}}{\text{arr_chieu_cao}^2}$$
- Hệ sinh thái công cụ lập trình đương đại: Khảo sát các IDE chuyên dụng gồm PyCharm, Spyder (tích hợp Matplotlib, SciPy, Pandas, SymPy), PyDev (tích hợp Unittest, PyLint, MyPy), IDLE và Wing IDE.
Đối tượng sử dụng giáo trình
ĐỐI TƯỢNG SỬ DỤNG VÀ YÊU CẦU ĐẦU VÀO
[ĐIỀU KIỆN TIÊN QUYẾT] [MỤC TIÊU SỬ DỤNG]
- Thao tác máy tính cơ bản - Học tập mô đun bắt buộc MH30
- Tư duy logic số học - Tra cứu tài liệu giảng dạy
- Không yêu cầu biết lập trình trước - Tự học & Luyện kỹ năng viết code
- Sinh viên hệ đào tạo: Tài liệu được thiết kế chuyên biệt cho sinh viên theo học trình độ Cao đẳng khối ngành Công nghệ thông tin nói chung và ngành Tin học ứng dụng nói riêng.
- Điều kiện tiên quyết (Prerequisites): Người học không bắt buộc phải có kiến thức nền tảng về lập trình trước đó. Giáo trình bắt đầu từ các thao tác cơ bản như cài đặt trình biên dịch, cấu hình đường dẫn hệ thống và cú pháp biến. Đối với người học đã có kiến thức về các ngôn ngữ như C/C++ hay Java, tài liệu cung cấp các ghi chú so sánh để chuyển đổi tư duy định kiểu.
- Giảng viên chuyên ngành: Sử dụng làm đề cương và tài liệu giảng dạy chuẩn cho mô đun Lập trình Python cơ bản (MH30); cung cấp khung bài giảng lý thuyết, bài tập có lời giải và kho bài tập thực hành trên máy.
- Người tự học và tham khảo: Phù hợp làm tài liệu tự học cho người bắt đầu tiếp cận lập trình; cung cấp các hướng dẫn thiết lập môi trường trên máy tính cá nhân, trên trình duyệt web (OnlineGDB) hoặc trên thiết bị di động (Pydroid 3).
Câu hỏi thường gặp (FAQ)
1. Giáo trình này phù hợp với đối tượng nào?
Giáo trình được biên soạn phục vụ trực tiếp cho sinh viên trình độ Cao đẳng ngành Tin học ứng dụng theo chương trình đào tạo của Trường Cao đẳng Bách Khoa Nam Sài Gòn, đồng thời phù hợp với những người bắt đầu học lập trình cần một tài liệu tiếp cận có hệ thống.
2. Cần chuẩn bị kiến thức nền tảng nào trước khi học?
Người học chỉ cần kỹ năng sử dụng máy tính cơ bản và kiến thức toán học phổ thông (đại số, lượng giác cơ bản). Giáo trình không yêu cầu người học phải biết trước bất kỳ ngôn ngữ lập trình nào khác.
3. Điểm khác biệt của giáo trình so với các tài liệu lập trình Python khác là gì?
Giáo trình kết hợp việc giảng dạy cú pháp cơ bản với việc thực hành trên môi trường tương tác (#%%) của Visual Studio Code; đồng thời tích hợp sớm thư viện NumPy và các bài toán thuật toán ứng dụng thực tế (chuỗi Taylor, thuật toán Newton, mã hóa Parity bit, xử lý ma trận bán hàng) thay vì chỉ dạy cú pháp lý thuyết thuần túy.
4. Phương pháp tự học giáo trình này như thế nào để đạt hiệu quả cao nhất?
Người học cần trực tiếp nhập lại toàn bộ các đoạn mã mẫu trong giáo trình vào IDE, thực thi từng cell lệnh, quan sát kết quả, sau đó tự làm lại các bài tập thực hành ở cuối mỗi chương mà không sao chép lời giải có sẵn.
5. Có những tài liệu và công cụ bổ trợ nào đi kèm giáo trình?
Giáo trình dẫn chiếu trực tiếp đến tài liệu chuẩn The Zen of Python (PEP 20), lịch trình phát hành PEP 619, trang tài liệu chính thức docs.python.org, hệ thống bài tập thực hành trên tệp mã nguồn mẫu (while_demo.py, list_demo.py, for_demo.py), cùng các liên kết tải công cụ lập trình miễn phí (VS Code, OnlineGDB, Pydroid 3, PyCharm, Spyder, PyDev, IDLE, Wing).
Kết luận
Giáo trình Lập trình Python cơ bản (MH30) của Trường Cao đẳng Bách Khoa Nam Sài Gòn cung cấp hệ thống kiến thức nền tảng về ngôn ngữ Python chuẩn 3.x, bao quát từ cú pháp cơ bản, cấu trúc rẽ nhánh, vòng lặp, xử lý chuỗi, mảng danh sách đến thư viện xử lý số học chuyên dụng NumPy và kỹ thuật gỡ lỗi phần mềm.
Lộ trình học tập đề xuất:
- Thiết lập môi trường phát triển trên VS Code và làm quen với cú pháp cơ bản.
- Luyện tập tư duy giải thuật thông qua cấu trúc điều khiển và xử lý cấu trúc dữ liệu
list/tuple. - Ứng dụng tính toán hiệu năng cao với thư viện
NumPy. - Hoàn thiện kỹ năng viết hàm, xử lý tập tin và kiểm soát lỗi trong chương trình.
Tài liệu là căn cứ chuyên môn giúp người học xây dựng nền tảng lập trình vững chắc để tiếp tục học tập các mô đun chuyên sâu về phân tích dữ liệu, trí tuệ nhân tạo và phát triển ứng dụng phần mềm.