TỔNG QUAN VÀ MÔ TẢ THƯ MỤC HỌC THUẬT: GIÁO TRÌNH KỸ THUẬT LẬP TRÌNH (MH09)


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

Giáo trình môn học Kỹ thuật lập trình (mã môn học: MH09) là tài liệu đào tạo chính thức được ban hành kèm theo Quyết định số 323/QĐ-CĐCĐ ngày 06 tháng 8 năm 2019 của Hiệu trưởng Trường Cao đẳng Cộng đồng Đồng Tháp. Học phần có tổng thời lượng 65 giờ, trong đó bao gồm 25 giờ lý thuyết, 38 giờ thực hành/thảo luận/bài tập và 2 giờ kiểm tra định kỳ.

       PHÂN BỔ THỜI LƯỢNG MÔN HỌC (TỔNG SỐ: 65 GIỜ)

Trong chương trình đào tạo ngành Quản trị mạng máy tính (trình độ Trung cấp), môn học giữ vị trí cơ sở ngành bắt buộc, được bố trí giảng dạy trước học phần Cấu trúc dữ liệu. Mục tiêu học tập trọng tâm là trang bị cho học sinh – sinh viên kiến thức về cú pháp và ngữ nghĩa của ngôn ngữ C, năng lực phân tích nhiệm vụ chương trình, thiết kế giải thuật xử lý bài toán, cùng kỹ năng sử dụng môi trường biên dịch (Borland C) để soạn thảo mã nguồn, gỡ rối (debugging), bẫy lỗi và thực thi chương trình trên máy tính.

Cấu trúc giáo trình bao gồm 10 chương chuyên môn, hệ thống đề thi mẫu và phần phụ lục tra cứu hàm chuẩn cùng hướng dẫn chẩn đoán, sửa lỗi lập trình. Mỗi chương được thiết kế đồng nhất theo cấu trúc ba phần:

  1. Phần lý thuyết: Tóm tắt ngắn gọn các khái niệm và cú pháp kèm ví dụ mã nguồn minh họa cụ thể.
  2. Phần bài tập: Phân chia thành hai cấp độ gồm bài tập cơ bản và bài tập luyện tập nâng cao (các bài tập có ký hiệu dấu * là bài tập khó dành cho việc tự rèn luyện).
  3. Phần kết luận: Tóm tắt nội dung trọng tâm và các thao tác kỹ thuật bắt buộc phải nắm vững.

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

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

Nội dung giáo trình được triển khai tuần tự theo tiến trình logic từ các khái niệm lập trình cơ sở đến các cấu trúc dữ liệu nâng cao và kỹ thuật lưu trữ:

                  TIẾN TRÌNH PHÁT TRIỂN NỘI DUNG
  • Chương 1: Giới thiệu về ngôn ngữ lập trình C: Trình bày lịch sử phát triển của ngôn ngữ C từ BCPL (Martin Richards, 1967) và ngôn ngữ B (Ken Thompson, 1970) đến các công trình của Dennis Ritchie và B.W. Kernighan trên hệ điều hành UNIX (máy DEC PDP-11), cùng sự hình thành chuẩn ANSI C. Chương này phân tích 5 đặc điểm kỹ thuật: tính cô đọng (32 từ khóa chuẩn, 40 toán tử), tính cấu trúc, tính tương thích, tính linh động và cơ chế biên dịch độc lập các file đối tượng (.obj) trước khi liên kết (link) thành tệp thực thi (.exe). Cấu trúc chương trình C được chuẩn hóa gồm: chỉ thị tiền xử lý (#include, #define), định nghĩa kiểu dữ liệu (typedef), khai báo biến ngoài, khai báo prototype hàm, hàm main() và định nghĩa các hàm tự tạo. Chương cũng giới thiệu hệ thống thư viện chuẩn: stdio.h, conio.h, math.h, alloc.h, io.h, graphics.h.
  • Chương 2: Kiểu dữ liệu và phép toán: Định nghĩa tập ký tự hợp lệ, quy tắc đặt tên định danh, 32 từ khóa chuẩn, cú pháp chú thích (/* */ và //), biến số và vòng đời ô nhớ. Hệ thống kiểu dữ liệu được phân loại chi tiết: char (1 byte, miền giá trị -128 đến 127), int (2 bytes, -32768 đến 32767), float (4 bytes, độ chính xác 6 chữ số), double (8 bytes, độ chính xác 15 chữ số), cùng các kiểu bổ sung unsigned, signed, short, long, enum. Đi kèm là bảng mã quy cách định dạng vào/ra cho printf() và scanf() (%c, %d, %u, %ld, %f, %e, %s, %x, %o). Hệ thống toán tử bao gồm: số học (+, -, *, /, %), quan hệ (==, !=, >, <, >=, <=), logic (&&, ||, !), toán tử thao tác trên bit (&, |, ^, ~, <<, >>), tăng giảm (++, --), toán tử gán mở rộng (+=, -=, *=, /=, %=), toán tử phẩy, biểu thức điều kiện ? :, cùng bảng phân cấp độ ưu tiên toán tử từ cao xuống thấp.
  • Chương 3: Các lệnh điều khiển: Phân biệt câu lệnh đơn, lệnh phức và khối lệnh trong cặp dấu { }. Trình bày cú pháp, lưu đồ thuật toán và cơ chế thực thi của câu lệnh rẽ nhánh if, if-else, cấu trúc lựa chọn đa nhánh switch-case kèm từ khóa break và default. Khảo sát ba cấu trúc lặp: vòng lặp for (biết trước số lần lặp), vòng lặp while (kiểm tra điều kiện trước) và vòng lặp do...while (thực hiện khối lệnh ít nhất một lần trước khi kiểm tra điều kiện).
  • Chương 4: Hàm: Khái niệm module hóa chương trình nhằm tối ưu mã nguồn và đơn giản hóa việc hiệu đính. Cú pháp định nghĩa hàm, cơ chế truyền tham số hình thức (formal parameters), đối số thực tế (actual arguments), tầm vực của biến cục bộ trong thân hàm, câu lệnh return và nguyên mẫu hàm (function prototype).
  • Chương 5: Mảng và con trỏ: Cấu trúc mảng 1 chiều, mảng 2 chiều (ma trận), cách thức bố trí phần tử mảng trên ô nhớ liên tục và kỹ thuật khởi tạo/truy xuất. Bản chất biến con trỏ (pointer), toán tử lấy địa chỉ (&), toán tử truy xuất nội dung ô nhớ (*), số học con trỏ, cấp phát và giải phóng bộ nhớ động (malloc(), calloc(), realloc(), free() trong alloc.h), mối quan hệ tương đương giữa mảng và con trỏ, mảng con trỏ và chuỗi ký tự (char[]).
  • Chương 6: Kiểu dữ liệu cấu trúc: Cú pháp định nghĩa struct, kỹ thuật lồng cấu trúc, khởi tạo biến cấu trúc, toán tử truy xuất thành phần (. và ->), con trỏ trỏ đến cấu trúc và cấu trúc tự trỏ/đệ quy.
  • Chương 7: File dữ liệu: Khái niệm tệp tin, tổ chức lưu trữ nhị phân và văn bản, con trỏ tệp FILE *, các hàm thao tác mở/đóng tệp chuẩn (fopen(), fclose()) và các chế độ truy xuất, hàm nhập xuất dữ liệu trên tệp (fread(), fwrite(), fprintf(), fscanf()).

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

Giáo trình thiết lập ba khối kiến thức nền tảng:

  1. Lý thuyết lập trình có cấu trúc (Structured Programming): Xây dựng tư duy phân rã bài toán lớn thành các module/hàm độc lập, tổ chức mã nguồn rõ ràng thông qua ba cấu trúc điều khiển chuẩn mực (tuần tự, rẽ nhánh, lặp).
  2. Nguyên lý biểu diễn dữ liệu và quản lý bộ nhớ máy tính: Cung cấp cơ chế lưu trữ dữ liệu ở cấp độ nhị phân, quy cách biểu diễn số nguyên, số thực dấu phẩy động, ký tự theo bảng mã ASCII, cũng như các phép toán thao tác trực tiếp trên bit (bitwise operations).
  3. Mô hình địa chỉ ô nhớ và cấu trúc dữ liệu cơ sở: Làm rõ kiến trúc bộ nhớ thông qua cơ chế địa chỉ, biến con trỏ, vùng nhớ tĩnh và vùng nhớ động, làm tiền đề trực tiếp cho việc xây dựng danh sách liên kết, ngăn xếp, hàng đợi và cây trong học phần Cấu trúc dữ liệu.

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical skills): Viết mã nguồn C chuẩn cú pháp; vận dụng các chỉ thị tiền xử lý; biên dịch và liên kết chương trình; thao tác con trỏ và quản lý bộ nhớ động; xử lý tệp tin trên hệ điều hành DOS/Windows.
  • Kỹ năng phân tích (Analytical skills): Phân tích yêu cầu bài toán kỹ thuật; xây dựng lưu đồ thuật toán; phát hiện điểm bất hợp lý trong luồng điều khiển; tối ưu hóa biểu thức logic và số học.
  • Kỹ năng thực hành nghề nghiệp (Practical competencies): Sử dụng các công cụ biên tập và gỡ rối của Borland C; chẩn đoán và sửa các lỗi cú pháp (syntax errors) cũng như lỗi logic (logical errors); phát triển các ứng dụng tính toán kỹ thuật, xử lý chuỗi ký tự, quản lý dữ liệu có cấu trúc phục vụ chuyên ngành mạng.

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

Giáo trình áp dụng phương pháp sư phạm hướng thực hành với định lượng thời gian thực hành và thảo luận chiếm đa số (38/65 giờ, tương đương 58.5% tổng thời lượng).

        MÔ HÌNH DẠY HỌC TÍCH HỢP LÝ THUYẾT - THỰC HÀNH

Hệ thống bài tập cuối mỗi chương được phân hóa rõ rệt thành hai cấp độ:

  • Nhóm bài tập cơ bản: Tập trung vào kỹ năng vận dụng cú pháp trực tiếp, ví dụ: xuất thông báo chào mừng (Chương 1), nhập xuất hai số nguyên để tính tổng, hiệu, tích, thương (Chương 1 & 2), đổi độ F sang độ C theo công thức $C = \frac{5}{9}(F-32)$, giải phương trình bậc nhất $ax + b = 0$, kiểm tra tính chẵn lẻ của một số nguyên.
  • Nhóm bài tập nâng cao (đánh dấu *): Đòi hỏi phối hợp nhiều cấu trúc điều khiển và tối ưu giải thuật, ví dụ: bài toán tính tiền phòng khách sạn theo đơn giá tuần và ngày lẻ, tính tiền cước điện thoại/karaoke, bài toán tính tiền điện theo định mức bậc thang ($1-100\text{ kW}: 5$, 101-150\text{ kW}: 7$, 151-200\text{ kW}: 10$, \dots$), thuật toán tìm ước số chung lớn nhất (USCLN) và bội số chung nhỏ nhất (BSCNN), in bảng cửu chương ma trận ngang, thuật toán vẽ hình học bằng ký tự (*).

Quy trình đánh giá kết quả học tập bao gồm:

  • Đánh giá quá trình thông qua các bài thực hành trực tiếp tại phòng máy.
  • Hai bài kiểm tra định kỳ (tổng cộng 2 giờ): Bài kiểm tra 1 tại Chương 3 (Cấu trúc điều khiển và Hàm) và Bài kiểm tra 2 tại Chương 6 (Kiểu cấu trúc).
  • Đánh giá kết thúc học phần căn cứ vào cấu trúc các đề thi mẫu được ban hành ở phụ lục tài liệu.

Quy trình tự học khuyến nghị cho học sinh – sinh viên:

  1. Đọc phần lý thuyết tóm tắt và tự biên dịch lại các chương trình ví dụ mẫu để hiểu cơ chế hoạt động.
  2. Hoàn thành toàn bộ bài tập cơ bản trước khi giải quyết các bài tập nâng cao có dấu *.
  3. Khi trình biên dịch báo lỗi, đối chiếu thông báo lỗi với phần Phụ lục hướng dẫn chẩn đoán và sửa lỗi ở cuối giáo trình.

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

Tài liệu được biên soạn dựa trên chương trình chuẩn hóa của Trường Cao đẳng Cộng đồng Đồng Tháp năm 2019, mang các đặc tính kỹ thuật cụ thể:

  • Tính chuẩn hóa cú pháp: Toàn bộ cú pháp và thư viện hàm bám sát chuẩn ANSI C, đảm bảo khả năng tương thích khi chuyển đổi giữa các môi trường lập trình C khác nhau.
  • Hệ thống hóa bảng quy cách và tra cứu: Cung cấp đầy đủ các bảng dữ liệu kỹ thuật bao gồm: bảng 32 từ khóa chuẩn, bảng mã ký tự đặc biệt của ASCII (\a, \b, \t, \n, \0,...), bảng phân loại kích thước/miền giá trị của các kiểu dữ liệu trên kiến trúc 16/32-bit, bảng mã định dạng chuỗi của printf()/scanf() và bảng mức độ ưu tiên của 15 bậc toán tử.
  • Kết hợp lập trình ứng dụng và truy cập hệ thống: Tài liệu không chỉ dừng lại ở các bài toán số học thuần túy mà giới thiệu khả năng truy cập tài nguyên phần cứng, can thiệp bộ nhớ qua con trỏ, thao tác trên bit, điều khiển ngắt DOS/BIOS thông qua thư viện conio.h, io.h và graphics.h.
  • Gắn kết thực tế chuyên ngành Mạng máy tính: Cung cấp nền tảng xử lý dữ liệu nhị phân, cấu trúc dữ liệu phẳng và kỹ thuật xử lý tệp tin, phục vụ trực tiếp cho việc cấu hình, lập trình socket mạng và phân tích gói tin ở các môn học sau.

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

Giáo trình được phân định đối tượng và yêu cầu sử dụng theo bảng sau:

                  ĐỐI TƯỢNG VÀ YÊU CẦU SỬ DỤNG
  • Sinh viên chính quy: Học sinh – sinh viên năm thứ nhất trình độ Trung cấp chuyên ngành Quản trị mạng máy tính; sinh viên các ngành kỹ thuật liên quan đến Công nghệ thông tin và Điện tử viễn thông cần tài liệu học phần lập trình cơ sở.
  • Kiến thức tiên quyết (Prerequisites): Người học cần nắm vững các kỹ năng thao tác máy tính cơ bản, khái niệm tệp và thư mục trên hệ điều hành, cùng kiến thức toán học phổ thông cơ bản (đại số sơ cấp, logic toán).
  • Giảng viên giảng dạy: Dùng làm đề cương chi tiết và giáo trình giảng dạy chính khóa; sử dụng hệ thống ví dụ mã nguồn và ngân hàng bài tập phân cấp để xây dựng bài giảng lý thuyết, giáo án thực hành và đề kiểm tra định kỳ.
  • Người tự học và tham khảo: Phù hợp cho lập trình viên mới bắt đầu muốn nắm vững ngôn ngữ C từ bản chất cấu trúc bộ nhớ, con trỏ và thao tác tệp tin thông qua các ví dụ thực thi cụ thể.

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 được biên soạn chính thức cho học sinh – sinh viên trình độ Trung cấp ngành Quản trị mạng máy tính tại Trường Cao đẳng Cộng đồng Đồng Tháp. Ngoài ra, giáo trình phù hợp cho mọi người học bắt đầu tiếp cận tư duy lập trình và kỹ thuật lập trình bằng ngôn ngữ C.

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

Người học chỉ cần có kiến thức cơ bản về tin học đại cương (thao tác sử dụng hệ điều hành, quản lý tập tin/thư mục) và tư duy logic toán học phổ thông; giáo trình không đòi hỏi người học phải có kiến thức lập trình từ trước.

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

Tài liệu tập trung cao vào thời lượng thực hành (chiếm 58.5% thời lượng môn học), tích hợp phần chẩn đoán lỗi biên dịch thường gặp, và phân hóa bài tập thành hai mức độ rõ rệt (cơ bản và nâng cao có dấu *) gắn liền với các ví dụ thực thi trực tiếp trên màn hình DOS Console.

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

Người học cần cài đặt môi trường lập trình Borland C trên máy tính, thực hành viết và chạy từng đoạn mã ví dụ trong phần lý thuyết, làm đầy đủ bài tập cuối chương và chủ động tra cứu mã lỗi ở phần phụ lục khi gặp sự cố biên dịch.

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

Giáo trình tích hợp sẵn phần danh mục thư viện hàm chuẩn C (stdio.h, conio.h, alloc.h, math.h), hệ thống đề thi mẫu của học phần MH09 và phụ lục hướng dẫn sửa lỗi lập trình ở cuối tài liệu.


Kết luận

Giáo trình Kỹ thuật lập trình (MH09) của Trường Cao đẳng Cộng đồng Đồng Tháp cung cấp hệ thống kiến thức toàn diện, chuẩn xác về ngôn ngữ lập trình C và phương pháp lập trình có cấu trúc.

               LỘ TRÌNH HỌC TẬP ĐƯỢC ĐỀ XUẤT

Học sinh – sinh viên sau khi hoàn thành học phần này sẽ làm chủ kỹ thuật lập trình cơ bản, quản lý bộ nhớ thông qua con trỏ và xử lý dữ liệu tệp tin, hình thành nền tảng trực tiếp để tiếp thu học phần Cấu trúc dữ liệu và các môn học chuyên sâu trong ngành Quản trị mạng máy tính. Toàn bộ các bảng tra cứu hàm chuẩn và đề thi mẫu trong phụ lục đóng vai trò tài liệu tham chiếu kỹ thuật xuyên suốt quá trình đào tạo.