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

Giáo trình "Lập trình web với PHP" (Mã môn học: MH 21) do Bộ môn Tin học thuộc Trường Cao đẳng Kinh tế Kỹ thuật Vinatex TP.HCM biên soạn năm 2019. Tài liệu được thiết kế phục vụ công tác giảng dạy và học tập cho ngành Công nghệ thông tin ở trình độ Cao đẳng (đầu vào 12/12), đồng thời được sử dụng làm tài liệu tham khảo kỹ thuật cho lập trình viên tại các doanh nghiệp. Trong chương trình đào tạo, đây là môn học chuyên môn bắt buộc, được bố trí giảng dạy sau khi sinh viên đã hoàn thành các môn học tiên quyết bao gồm: Đồ họa ứng dụng, Thiết kế Web và Hệ quản trị cơ sở dữ liệu SQL Server.

Mục tiêu học tập (learning outcomes) của giáo trình xác định cụ thể trên ba phương diện:

  • Về kiến thức: Cung cấp kiến thức về cú pháp ngôn ngữ lập trình PHP, quy trình phát triển website và nguyên lý tích hợp hệ quản trị cơ sở dữ liệu vào môi trường web.
  • Về kỹ năng: Hình thành khả năng sử dụng ngôn ngữ PHP trong lập trình web; phân tích, thiết kế và xây dựng các trang web động; kết hợp hệ quản trị cơ sở dữ liệu MySQL và PHP để tạo website hoàn chỉnh.
  • Về năng lực tự chủ và trách nhiệm: Rèn luyện tính tỉ mỉ, siêng năng, tính tự giác nghiên cứu và khả năng làm việc nhóm.

Về cấu trúc và phương thức tiếp cận, chương trình môn học có tổng thời lượng 75 giờ, bao gồm 15 giờ lý thuyết, 55 giờ thực hành/thảo luận/bài tập và 5 giờ kiểm tra. Nội dung được triển khai qua 6 chương, phân bổ theo lộ trình tuyến tính từ ngôn ngữ kịch bản phía máy khách (JavaScript), cú pháp lập trình phía máy chủ (PHP), mô hình hướng đối tượng, thiết kế cơ sở dữ liệu (MySQL), đến kỹ thuật tích hợp hệ thống và xử lý web động nâng cao.

Điểm đặc trưng của giáo trình là việc phân bổ tỷ trọng thực hành cao (55/75 giờ, chiếm 73,3% tổng thời lượng), tập trung vào thao tác trực tiếp trên công cụ Macromedia/Adobe Dreamweaver tại phòng lab tin học, đi kèm hệ thống ví dụ mã nguồn và bài tập tính toán cụ thể cho từng chủ đề.


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

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

Cấu trúc nội dung giáo trình gồm 6 chương chuyên đề:

  • Chương 1: Giới thiệu ngôn ngữ kịch bản Javascript (10 giờ: 2 LT, 8 TH): Trình bày tổng quan về JavaScript, các phương thức nhúng mã vào tài liệu HTML (trong thẻ <body>, vùng <head>, trực tiếp trong thẻ HTML, hoặc qua tập tin .js độc lập). Nội dung bao quát cú pháp ghi chú, khai báo biến (var), toán tử số học/gán/so sánh/logic, cấu trúc rẽ nhánh (if-else, switch-case), định nghĩa hàm (function), hộp thông báo (alert(), confirm(), prompt()), vòng lặp (for, while, do...while, for...in), xử lý sự kiện giao diện (onBlur, onClick, onLoad, onUnload, onKeypress, onSubmit, onMouseOver, onMouseOut), bẫy lỗi (try...catch, throw), ký tự đặc biệt và các đối tượng dựng sẵn (String, Date, Array, Math).
  • Chương 2: Ngôn ngữ PHP (15 giờ: 3 LT, 11 TH, 1 KT): Giới thiệu 4 dạng cú pháp mở thẻ PHP (cú pháp chính <?php ?>, rút gọn <? ?>, kiểu ASP <% %>, thẻ <script>), các hàm xuất dữ liệu (echo, print), quy tắc khai báo biến ($), phạm vi biến (cục bộ, toàn cục với từ khóa global/$_GLOBALS, biến static), định nghĩa hằng số (define(), các hằng dựng sẵn như __FILE__, __LINE__, __PHP_VERSION__), kiểu dữ liệu cơ bản, toán tử, hàm dập lỗi @, tham chiếu biến &. Chương này trình bày chi tiết các hàm kiểm tra dữ liệu (isset(), empty(), is_numeric(), is_int(), is_string(), is_double(), gettype()), cấu trúc điều khiển, kỹ thuật thao tác mảng (array_search, array_merge, array_count_values, array_unique, array_diff), thư viện hàm chuỗi (trim, addslashes, stripslashes, ucfirst, strlen, strcmp, strstr, strpos, str_replace, explode, implode), hàm toán học, hàm ngày giờ (checkdate, date, getdate, time, mktime), và cơ chế xử lý biểu mẫu qua $_POST, $_GET.
  • Chương 3: Lập trình hướng đối tượng trong PHP (10 giờ: 2 LT, 8 TH): Giới thiệu các khái niệm hướng đối tượng cơ bản trong PHP, cú pháp định nghĩa lớp (class), khởi tạo đối tượng (new), truy xuất phương thức/thuộc tính (->) và kỹ thuật kế thừa lớp (extends).
  • Chương 4: Cơ sở dữ liệu MySQL (10 giờ: 2 LT, 6 TH, 2 KT): Khái quát về hệ cơ sở dữ liệu quan hệ, quy trình thiết kế và lý thuyết chuẩn hóa dữ liệu (Dạng chuẩn 1NF, 2NF, 3NF). Hướng dẫn thao tác tạo bảng, tạo và cập nhật bảng ảo (View), sử dụng toán tử và câu lệnh SQL (SELECT, subquery, INSERT, UPDATE, DELETE, mệnh đề UNION, truy vấn kết nối nhiều bảng, các hàm SQL tích hợp) cùng thao tác import/export dữ liệu.
  • Chương 5: PHP & MySQL (15 giờ: 3 LT, 12 TH): Kỹ thuật kết nối cơ sở dữ liệu từ PHP (tạo kết nối, truy vấn, đóng kết nối), các thao tác quản lý dữ liệu (đếm số lượng bản ghi, hiển thị, thêm mới, cập nhật dữ liệu). Mở rộng kết nối PHP với hệ quản trị CSDL SQL Server và kỹ thuật xây dựng các lớp xử lý bảng, lớp xử lý nghiệp vụ.
  • Chương 6: Tạo web động (15 giờ: 3 LT, 10 TH, 2 KT): Kỹ thuật tổ chức tập tin dùng chung (include, require), các hàm mở và thao tác tệp tin/thư mục, quy trình upload tập tin lên server. Quản lý trạng thái ứng dụng qua Cookie và Session (khởi tạo, sử dụng, hủy biến session), cùng kỹ thuật gửi thư điện tử bằng hàm gửi E-Mail trong PHP.

Logic phát triển của nội dung đi từ việc xử lý tương tác phía Client (JavaScript), xây dựng xử lý logic phía Server (PHP), chuẩn hóa tầng dữ liệu (MySQL), kết nối hai tầng ứng dụng - dữ liệu (PHP & MySQL), đến hoàn thiện các tính năng nâng cao của một website động.

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

  • Lý thuyết thiết kế và chuẩn hóa dữ liệu quan hệ: Nắm vững quy tắc chuẩn hóa từ 1NF (loại bỏ thuộc tính lặp), 2NF (loại bỏ phụ thuộc hàm một phần vào khóa chính) đến 3NF (loại bỏ phụ thuộc bắc cầu) để xây dựng cấu trúc bảng trong MySQL.
  • Mô hình lập trình hướng đối tượng (OOP): Cơ chế đóng gói thuộc tính, phương thức trong lớp và khả năng tái sử dụng mã nguồn thông qua kế thừa.
  • Nguyên lý kiến trúc Web Client-Server: Cơ chế truyền tải dữ liệu qua giao thức HTTP bằng phương thức GET và POST; kỹ thuật quản lý phiên làm việc không trạng thái (stateless) thông qua Session và Cookie.

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical skills): Viết mã JavaScript kiểm tra form phía client; lập trình PHP xử lý dữ liệu backend; viết các câu lệnh truy vấn SQL thuần thục; thao tác bẫy lỗi cú pháp/ngoại lệ (try...catch, dập lỗi @); xử lý tệp tin và upload file lên máy chủ.
  • Kỹ năng phân tích (Analytical skills): Phân tích yêu cầu bài toán để lựa chọn cấu trúc điều khiển, thuật toán xử lý chuỗi/mảng; phân định phạm vi hoạt động của biến; thiết kế cấu trúc CSDL đạt chuẩn tối ưu.
  • Năng lực ứng dụng thực tiễn (Practical competencies): Tích hợp mã nguồn PHP, cơ sở dữ liệu MySQL và giao diện biểu mẫu HTML để xây dựng một website động hoàn chỉnh có đầy đủ tính năng thêm, sửa, xóa, tìm kiếm và phân quyền dữ liệu.

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

Giáo trình được thiết kế theo phương pháp giảng dạy tích hợp lý thuyết và thực hành, trong đó thời lượng thực hành trực tiếp tại phòng máy chiếm 73,3% (55 giờ thực hành / 75 giờ tổng thể).

  • Phương pháp tiếp cận sư phạm: Giảng viên định hướng các nội dung lý thuyết trọng tâm (cú pháp, giải thuật, chuẩn hóa), sau đó phân tích các ví dụ mẫu mã nguồn. Người học trực tiếp lập trình, biên dịch và kiểm thử lỗi trên phần mềm Dreamweaver và môi trường máy chủ cục bộ tại phòng lab tin học.
  • Bài tập và thực hành: Hệ thống bài tập được bố trí tương ứng với từng nội dung:
    • Bài tập thuật toán Client-side: Viết mã JavaScript xuất số ngày trong tháng khi biết tháng/năm; tính tổng dãy số $S(n) = 1 + 2 + ... + n$; tính giai thừa $n! = 1 \times 2 \times ... \times n$; tính tổng chuỗi phân số giai thừa $S(n!) = 1 + 1/2! + ... + 1/n!$.
    • Bài tập xử lý biểu mẫu Server-side: Xây dựng form nhập liệu tính tổng hai số qua phương thức POST và GET; kiểm tra số nguyên tố bằng vòng lặp và lệnh break; lọc và tính tổng mảng số lẻ bằng lệnh continue.
    • Thực hành tích hợp cơ sở dữ liệu: Tạo bảng ảo (View), thực hiện truy vấn SELECT lồng nhau (subquery), liên kết nhiều bảng và viết các lớp xử lý nghiệp vụ kết nối MySQL.
  • Phương pháp đánh giá: Kết quả học tập được xác định dựa trên hai thành phần:
    1. Điểm quá trình (Trọng số 0,4): Tính bằng trung bình cộng có hệ số của điểm kiểm tra thường xuyên (hệ số 1), điểm tự nghiên cứu/ý thức học tập (hệ số 1) và điểm kiểm tra định kỳ (hệ số 2). Các bài kiểm tra định kỳ được phân bổ tại Chương 2 (1 giờ), Chương 4 (2 giờ) và Chương 6 (2 giờ).
    2. Điểm thi kết thúc môn học (Trọng số 0,6): Đánh giá thông qua hình thức làm bài Tiểu luận (thời gian 10 ngày), đề bài được công bố vào đầu mỗi học kỳ.
  • Yêu cầu đối với người học: Sinh viên phải tham dự tối thiểu 70% thời gian học lý thuyết, tham gia 100% các buổi thực hành tích hợp; chủ động lập kế hoạch tự học, chuẩn bị bài trước khi lên lớp và giải quyết các bài tập thực hành theo hướng dẫn.

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

  • Tích hợp kịch bản đa tầng (Client-side & Server-side): Giáo trình kết hợp cả ngôn ngữ kịch bản client (JavaScript) và server (PHP) trong cùng một khung chương trình, giúp người học đối chiếu trực tiếp sự khác biệt về cú pháp, cơ chế thực thi và phạm vi ứng dụng của từng ngôn ngữ.
  • Tiếp cận mô hình hướng đối tượng trong PHP: Thay vì dừng lại ở lập trình thủ tục (procedural PHP), giáo trình trang bị phương pháp lập trình hướng đối tượng (OOP) từ Chương 3 và ứng dụng trực tiếp vào việc xây dựng "Lớp xử lý bảng" và "Lớp xử lý nghiệp vụ" ở Chương 5.
  • Tích hợp quy chuẩn thiết kế cơ sở dữ liệu: Cung cấp đầy đủ lý thuyết chuẩn hóa cơ sở dữ liệu từ 1NF đến 3NF trong chương MySQL, giúp hạn chế lỗi dư thừa dữ liệu khi lập trình ứng dụng thực tế.
  • Khai thác các chức năng thực tế của website động: Giáo trình đưa vào các module mang tính ứng dụng thực tế cao như quản trị phiên làm việc (Session/Cookie), cơ chế upload file lên máy chủ, bẫy lỗi hệ thống (try...catch, @) và kỹ thuật gửi email tự động qua PHP.
  • Nguồn tài liệu tham khảo đồng bộ: Nội dung giáo trình được biên soạn dựa trên sự đối sánh giữa giáo trình chuyên ngành trong nước và các tài liệu kỹ thuật quốc tế:
    1. Giáo trình nội bộ Lập trình web với PHP – Trường Cao đẳng Công nghệ TP.HCM.
    2. Core Web Application Development with PHP and MySQL – Tác giả Marc Wandschneider.
    3. PHP & MySQL – Ban chỉ đạo CNTT của cơ quan Đảng.
    4. MySQL-PHP – Tác giả Jay Greenspan và Brad Bulger.
    5. Lập trình web động với PHP-MySQL – Tác giả Tống Phước Khải.

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

  • Sinh viên chuyên ngành: Học sinh, sinh viên ngành Công nghệ thông tin trình độ Cao đẳng (hệ 12/12) tại Trường Cao đẳng Kinh tế Kỹ thuật Vinatex TP.HCM và các cơ sở đào tạo nghề nghiệp tương đương.
  • Yêu cầu kiến thức tiên quyết (Prerequisites): Người học cần có kiến thức nền tảng về cấu trúc tài liệu HTML/XHTML, đồng thời đã học qua các môn học: Đồ họa ứng dụng, Thiết kế Web và Hệ quản trị cơ sở dữ liệu SQL Server.
  • Giảng viên chuyên ngành: Tài liệu chuẩn để lập đề cương bài giảng, kế hoạch giảng dạy lý thuyết (15 giờ), tổ chức hướng dẫn bài tập thực hành tại phòng lab (55 giờ) và làm căn cứ biên soạn ngân hàng đề kiểm tra định kỳ cũng như đề tài tiểu luận kết thúc môn học (10 ngày).
  • Người tự học và lập trình viên: Kỹ thuật viên, lập trình viên tại các doanh nghiệp cần tài liệu tra cứu có hệ thống về cú pháp PHP, các hàm xử lý chuỗi/mảng/ngày giờ, cú pháp truy vấn MySQL và các kỹ thuật xử lý form/session trên web.

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

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

Giáo trình được biên soạn chuyên biệt cho giảng viên, sinh viên ngành Công nghệ thông tin trình độ Cao đẳng (hệ 12/12), đồng thời là tài liệu tham khảo nghiệp vụ cho lập trình viên tại các doanh nghiệp phần mềm.

2. Cần kiến thức nền nào để học giáo trình này?

Người học cần nắm vững kiến thức cơ bản về HTML/XHTML và phải hoàn thành ba môn học tiên quyết trong chương trình đào tạo: Đồ họa ứng dụng, Thiết kế Web và Hệ quản trị cơ sở dữ liệu SQL Server.

3. Điểm khác biệt về mặt cấu trúc của giáo trình này là gì?

Giáo trình phân bổ thời lượng thực hành vượt trội (55 giờ thực hành trên tổng số 75 giờ, chiếm 73,3%). Nội dung tích hợp trọn vẹn quy trình phát triển website từ xử lý client (JavaScript), xử lý server (PHP, OOP), quản trị dữ liệu (MySQL chuẩn hóa 1NF-3NF) đến các chức năng web động hoàn chỉnh (Cookie, Session, Upload, Mail).

4. Làm sao để tự học và hoàn thành môn học hiệu quả?

Người học cần đảm bảo tham dự tối thiểu 70% giờ lý thuyết, hoàn thành đầy đủ các bài tập thực hành trên phần mềm Dreamweaver tại phòng lab, tự giải các bài tập giải thuật/xử lý form sau mỗi chương và chuẩn bị kế hoạch làm bài thi tiểu luận kết thúc môn học trong thời gian 10 ngày.

5. Có tài liệu bổ trợ nào được giáo trình ghi nhận?

Giáo trình tham chiếu 5 tài liệu chính: (1) Giáo trình Lập trình web với PHP của Trường CĐ Công nghệ TP.HCM; (2) Core Web Application Development with PHP and MySQL của Marc Wandschneider; (3) PHP & MySQL của Ban chỉ đạo CNTT cơ quan Đảng; (4) MySQL-PHP của Jay Greenspan & Brad Bulger; (5) Lập trình web động với PHP-MySQL của Tống Phước Khải.


Kết luận

Giáo trình "Lập trình web với PHP" (MH 21) của Trường Cao đẳng Kinh tế Kỹ thuật Vinatex TP.HCM cung cấp hệ thống kiến thức chuẩn hóa về phát triển ứng dụng web động dựa trên bộ công nghệ JavaScript, PHP và MySQL. Tài liệu cân bằng giữa lý thuyết nền tảng (cú pháp, giải thuật, chuẩn hóa CSDL) và năng lực thực hành chuyên sâu (chiếm 73,3% thời lượng).

Lộ trình học tập khuyến nghị đi tuần tự từ Chương 1 đến Chương 6: bắt đầu từ kịch bản giao diện phía client (JavaScript), tiếp cận lập trình máy chủ và hướng đối tượng (PHP), thiết kế và chuẩn hóa dữ liệu quan hệ (MySQL), liên kết ứng dụng với CSDL (PHP & MySQL), và hoàn thiện các module động nâng cao (Upload, Session, Mail). Để đạt hiệu quả tối ưu, người học cần kết hợp nghiên cứu 5 đầu sách tham khảo được trích dẫn và thực hành thường xuyên trên môi trường máy tính tại phòng lab.