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

Giáo trình Kỹ thuật lập trình (Mô đun: Lập trình căn bản, Mã mô đun: MH13) được biên soạn và ban hành năm 2017 theo Quyết định của Hiệu trưởng Trường Cao đẳng Cộng đồng Đồng Tháp. Đây là tài liệu đào tạo chính thức dành cho trình độ Trung cấp thuộc ngành Tin học văn phòng và nghề Sửa chữa lắp ráp máy tính.

Về vị trí trong chương trình đào tạo, mô đun MH13 được bố trí học sau các môn học chung và đứng trước các môn học/mô đun đào tạo chuyên môn nghề. Giáo trình đóng vai trò là môn học cơ sở bắt buộc, cung cấp nền tảng tư duy logic về thuật toán và kỹ thuật xử lý dữ liệu trên máy tính.

Mục tiêu học tập của giáo trình được xác định cụ thể qua các chuẩn đầu ra:

  • Nắm vững công dụng, cú pháp và chức năng của các câu lệnh trong ngôn ngữ lập trình C.
  • Phân tích yêu cầu bài toán, xác định các nhiệm vụ xử lý dữ liệu của chương trình.
  • Khai thác môi trường phát triển Turbo C / Borland C, vận dụng các công cụ soạn thảo, gỡ rối (debugging), bẫy lỗi và tra cứu hệ thống trợ giúp.
  • Biên dịch, sửa lỗi và thực thi chương trình hoàn chỉnh trên máy tính.
  • Xây dựng tư duy giải quyết vấn đề bằng mã nguồn, giải tỏa rào cản tâm lý khi tiếp cận các công việc lập trình hóa.

Về cấu trúc và cách tiếp cận, chương trình học có tổng thời lượng 90 giờ, được phân bổ thành 7 bài học với sự kết hợp chặt chẽ giữa lý thuyết (28 giờ), thực hành (54 giờ) và kiểm tra định kỳ (8 giờ). Giáo trình tiếp cận từ bức tranh lịch sử của ngôn ngữ C, cách vận hành trình biên dịch, sau đó đi sâu vào cú pháp cơ sở, các cấu trúc điều khiển, kỹ thuật viết chương trình con (hàm), và kết thúc ở các cấu trúc dữ liệu mảng, chuỗi cùng kỹ thuật quản lý bộ nhớ thông qua con trỏ.

Điểm đặc sắc của giáo trình là tính thực nghiệm cao. Mọi khái niệm lý thuyết đều đi kèm cấu trúc ngữ pháp tường minh, bảng mô tả dung lượng bộ nhớ chi tiết, sơ đồ hoạt động và các đoạn mã nguồn mẫu có hướng dẫn biên dịch cụ thể.


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 tổ chức thành 7 bài học logic với thời lượng và mục tiêu rõ ràng:

  1. Bài 1: Tổng quan về ngôn ngữ lập trình C (Mã MH13-01 - 2 giờ Lý thuyết):
    Trình bày lịch sử phát triển của ngôn ngữ C từ phòng thí nghiệm Bell (Dennis Ritchie, đầu thập niên 1970) trên cơ sở kế thừa ngôn ngữ BCPL (Martin Richards) và ngôn ngữ B (Ken Thompson); ấn bản sách năm 1978 của B. Kernighan và D. Ritchie. Hướng dẫn cách cài đặt, khởi động môi trường BORLANDC\BIN\BC từ dấu nhắc DOS hoặc Windows và các phím tắt quản lý trợ giúp (F1, Ctrl+F1, Shift+F1, Alt+F1).

  2. Bài 2: Các thành phần cơ bản (Mã MH13-02 - 8 giờ: 2 LT, 6 TH):
    Xây dựng hệ thống ký hiệu C gồm 52 chữ cái, các chữ số 0-9, ký hiệu toán học, ký tự gạch nối _. Cung cấp bảng 32 từ khóa chuẩn Turbo C (char, int, float, sizeof, struct, switch, return...). Giới thiệu các kiểu dữ liệu cơ sở (char, int, long, float, double), quy tắc đặt tên định danh, cấu trúc khai báo biến, hằng số (hệ 10, hệ 8 0345, hệ 16 0xa5, hằng ký tự và hằng chuỗi kết thúc bởi ký tự null \0). Hướng dẫn kỹ thuật xuất nhập dữ liệu qua hàm printf(), scanf(), gets(), hàm xóa bộ đệm bàn phím fflush(stdin) và toán tử ép kiểu tường minh (float).

  3. Bài 3: Các lệnh có cấu trúc (Mã MH13-03 - 16 giờ: 4 LT, 10 TH, 2 KT):
    Cung cấp cú pháp và nguyên lý hoạt động của cấu trúc rẽ nhánh if...else (dạng khuyết, dạng đủ, lồng nhau), toán tử điều kiện ba ngôi ? :. Cấu trúc lựa chọn đa nhánh switch...case...default. Các cấu trúc lặp cơ bản: for(biểu thức 1; biểu thức 2; biểu thức 3), while(biểu thức) và do...while(biểu thức). Các lệnh thay đổi luồng điều khiển: break (thoát chu trình), continue (bắt đầu vòng lặp mới), và lệnh nhảy không điều kiện goto kèm nhãn (label:).

  4. Bài 4: Hàm (Mã MH13-04 - 20 giờ: 8 LT, 10 TH, 2 KT):
    Định nghĩa hàm dưới dạng chương trình con độc lập. Quy tắc xây dựng hàm: kiểu trả về, tên hàm, danh sách đối số, thân hàm và câu lệnh return. Khai báo nguyên mẫu hàm (prototype). Phân biệt phạm vi hoạt động của biến cục bộ và biến toàn cục. Cơ chế truyền tham số: truyền bằng giá trị (tham trị) và truyền bằng tham chiếu sử dụng con trỏ (swap(int *u, int *v)). Kỹ thuật lập trình hàm đệ quy thông qua bài toán tính giai thừa $n! = n \times (n-1)!$.

  5. Bài 5: Mảng (Mã MH13-05 - 13 giờ: 4 LT, 8 TH, 1 KT):
    Khái niệm mảng một chiều và mảng hai chiều (ma trận). Cách khai báo, cấp phát ô nhớ liên tiếp, truy xuất phần tử thông qua chỉ số. Các giải thuật thao tác trên mảng: nhập/xuất dữ liệu mảng, tính toán tổng phần tử, tìm giá trị cực đại, đảo ngược mảng và thuật toán sắp xếp mảng số.

  6. Bài 6: Chuỗi ký tự (Mã MH13-06 - 13 giờ: 4 LT, 8 TH, 1 KT):
    Bản chất chuỗi ký tự trong C là một mảng kiểu char có phần tử kết thúc là \0. Khai báo mảng ký tự, con trỏ chuỗi, kỹ thuật đọc chuỗi có khoảng trắng bằng gets(), xuất chuỗi bằng định dạng %s. Các phép toán xử lý chuỗi và thao tác ký tự dựa trên bảng mã ASCII.

  7. Bài 7: Mảng và biến con trỏ (Mã MH13-07 - 18 giờ: 4 LT, 12 TH, 2 KT):
    Khái niệm địa chỉ bộ nhớ và biến con trỏ. Toán tử lấy địa chỉ & và toán tử giải tham chiếu *. Mối quan hệ tương đương giữa mảng và con trỏ, các phép toán số học trên con trỏ và ứng dụng con trỏ trong việc truyền mảng làm tham số cho hàm.

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

Lĩnh vực Nội dung kiến thức nền tảng
Lý thuyết hệ thống Cơ chế tổ chức và lưu trữ dữ liệu trong bộ nhớ máy tính: kiểu char (1 byte, mã ASCII 0-255), kiểu int (2 byte, phạm vi -32768 đến 32767), long (4 byte), float (4 byte, độ chính xác 7-8 chữ số), double (8 byte, độ chính xác 15-16 chữ số). Các hệ đếm nhị phân, bát phân và thập lục phân.
Nguyên lý lập trình Nguyên tắc lập trình có cấu trúc (Structured Programming); nguyên tắc phân rã mô đun (Modular Programming) nhằm chia nhỏ bài toán phức tạp thành các hàm chức năng độc lập, dễ kiểm thử và tái sử dụng.
Quản lý bộ nhớ Phạm vi biến cục bộ và biến toàn cục, vòng đời của biến trong khối lệnh { }; quản lý vùng nhớ thông qua địa chỉ biến và con trỏ.
Khung chương trình Cấu trúc chuẩn của một tệp mã nguồn C: các chỉ thị tiền xử lý #include <stdio.h>, #include <math.h>, định nghĩa hằng #define, khai báo nguyên mẫu hàm, hàm thực thi chính main() và các hàm con.

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical skills): Thao tác cài đặt đường dẫn PATH, soạn thảo, biên dịch (Ctrl+F9), kiểm tra màn hình kết quả (Alt+F5), tra cứu tài liệu thư viện (Ctrl+F1), xử lý các xung đột kiểu dữ liệu (chẳng hạn lỗi không tương thích giữa char* và int).
  • Kỹ năng phân tích (Analytical skills): Phân tích bài toán thực tế để thiết lập biểu thức logic, xác định điều kiện rẽ nhánh, xây dựng thuật toán lặp và phân tích thuật toán đệ quy.
  • Kỹ năng lập trình thực tế (Practical competencies): Lập trình giải quyết các bài toán số học, quản lý mảng dữ liệu, xử lý chuỗi văn bản, xây dựng thư viện hàm dùng chung và điều khiển bộ nhớ thông qua con trỏ.

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

Giáo trình Kỹ thuật lập trình áp dụng phương pháp sư phạm chú trọng thực nghiệm. Thời lượng thực hành trên máy tính chiếm hơn 60% tổng thời lượng mô đun (54/90 giờ). Mô hình giảng dạy được triển khai theo quy trình: trình bày cú pháp lý thuyết $\rightarrow$ minh họa mã lệnh mẫu $\rightarrow$ phân tích thứ tự thực thi từng dòng lệnh $\rightarrow$ học viên trực tiếp lập trình và kiểm thử trên máy.

Hệ thống bài tập và nghiên cứu tình huống được xây dựng gắn liền với từng bài học, chia thành các nhóm giải thuật cụ thể:

  • Xử lý ký tự và định dạng: Bài toán chuyển đổi ký tự chữ hoa sang chữ thường dựa vào bảng mã ASCII ($c = c + 32$ với mã từ 65 đến 90); bài tập sử dụng các ký tự điều khiển âm thanh \a, lùi con trỏ \b, về đầu dòng \r, sang trang \f.
  • Giải toán đại số: Lập trình giải và biện luận phương trình bậc nhất $ax + b = 0$, phương trình bậc hai $ax^2 + bx + c = 0$ sử dụng hàm tính căn bậc hai sqrt() trong thư viện <math.h>.
  • Tìm kiếm và so sánh: Xác định giá trị nhỏ nhất của 4 số nguyên bằng cấu trúc if...else lồng nhau; sắp xếp 4 số theo thứ tự tăng dần.
  • Kiểm tra tính chất số học: Kiểm tra số chính phương bằng vòng lặp for và phép so sánh lũy thừa ($i \times i == n$); thuật toán kiểm tra số nguyên tố bằng cách đếm số lượng ước số; tính tổng các chữ số lẻ của số nguyên $n$.
  • Xử lý mảng và ma trận: Tính tích vô hướng của 2 vector một chiều; nhân hai ma trận kích thước $m \times n$ và $n \times p$; đảo ngược dãy số thực bằng mảng; tìm phần tử cực đại và tính tổng các phần tử dương trong ma trận.

Phương pháp đánh giá kết quả học tập gồm hai phần: đánh giá quá trình thông qua các bài kiểm tra thực hành trực tiếp trên máy (phân bổ tại Bài 3, Bài 4, Bài 5, Bài 6, Bài 7) và đánh giá tổng kết mô đun. Tiêu chí chấm điểm căn cứ vào khả năng viết mã đúng cú pháp, tổ chức cấu trúc chương trình rõ ràng, kết quả thực thi chính xác và kỹ năng gỡ lỗi phát sinh.

Để tự học hiệu quả, giáo trình hướng dẫn người học tận dụng hệ thống tài liệu trợ giúp tích hợp của môi trường Borland C (phím F1, Shift+F1), thực hiện việc chú thích mã nguồn đầy đủ giữa các dấu /* và */, đồng thời tuân thủ quy tắc khai báo biến ở đầu khối lệnh để kiểm soát vùng nhớ.


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

Giáo trình ghi nhận đầy đủ bối cảnh lịch sử và sự phát triển của ngôn ngữ C trong công nghệ phần mềm:

  • Nền tảng lịch sử và sự chuẩn hóa: Ngôn ngữ C được phát triển vào đầu những năm 1970 tại Bell Labs bởi Dennis Ritchie, ra đời từ nhu cầu xây dựng phần mềm hệ thống và hệ điều hành UNIX nhằm khắc phục hạn chế không định kiểu của các ngôn ngữ tiền thân như BCPL (Martin Richards) và B (Ken Thompson). Tài liệu chuẩn mực xuất bản năm 1978 của B. Kernighan và D. Ritchie đã đặt nền móng cho việc phổ biến ngôn ngữ này.
  • Đặc tính kỹ thuật hệ thống: C được định nghĩa là ngôn ngữ vạn năng, liên kết chặt chẽ với UNIX nhưng không phụ thuộc vào bất kỳ phần cứng hay hệ điều hành cụ thể nào. Giáo trình làm nổi bật tính ứng dụng của C trong việc xây dựng các chương trình hệ thống như Hệ điều hành (OS), trình thông dịch (Interpreters), trình soạn thảo (Editors) và chương trình Hợp ngữ (Assembly).
  • Khả năng tương thích và hiệu năng: Mã nguồn viết bằng C có tốc độ thực thi tương đương Hợp ngữ (Assembly), trình biên dịch tạo ra mã đối tượng tối ưu và cho phép chuyển đổi giữa các nền tảng máy tính với rất ít sửa đổi.
  • Tích hợp thực tế: Giáo trình hướng dẫn chi tiết các thao tác làm việc thực tế trên môi trường Turbo C / Borland C, từ cách gọi tệp thực thi BC.EXE, quản lý tham số dòng lệnh, đến kỹ thuật sử dụng con trỏ để chia sẻ dữ liệu hai chiều giữa các hàm và tạo lập thư viện tái sử dụng.

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

Giáo trình được thiết kế nhằm phục vụ các nhóm đối tượng cụ thể:

  • Học sinh Trung cấp chuyên nghiệp (THCN): Đối tượng đào tạo chính thức là học sinh học nghề Tin học văn phòng và nghề Sửa chữa lắp ráp máy tính tại Trường Cao đẳng Cộng đồng Đồng Tháp.
  • Kỹ thuật viên tin học: Dành cho người học cần củng cố kỹ năng lập trình mức hệ thống, rèn luyện tư duy logic để phục vụ việc bảo trì, cài đặt và cấu hình phần mềm.
  • Sinh viên bậc Đại học: Tài liệu được sử dụng làm nguồn tham khảo cho sinh viên đại học các khối ngành kỹ thuật, công nghệ thông tin trong giai đoạn học các môn lập trình cơ sở.
  • Điều kiện tiên quyết (Prerequisites): Người học cần hoàn thành khối kiến thức các môn học chung trong chương trình đào tạo trung cấp trước khi bắt đầu mô đun MH13.
  • Phương diện giảng dạy và tham khảo: Giảng viên sử dụng giáo trình làm khung kế hoạch bài giảng, chuẩn hóa hệ thống bài tập thực hành theo từng bài học. Người tự học sử dụng tài liệu như một lộ trình hướng dẫn chi tiết từ các khái niệm cơ bản đến các bài tập thuật toán có lời giải mẫu.

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

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 chính cho học sinh Trung cấp ngành Tin học văn phòng, học viên nghề Sửa chữa lắp ráp máy tính, học sinh THCN và kỹ thuật viên tin học. Đồng thời, giáo trình cũng là tài liệu tham khảo cho sinh viên bậc đại học hoặc người bắt đầu học lập trình C.

2. Cần có kiến thức nền tảng nào trước khi học mô đun này?

Người học cần hoàn thành các môn học chung theo chương trình đào tạo trung cấp. Ngoài ra, cần có kiến thức toán học căn bản (các phép toán số học, phép chia lấy phần dư, phương trình bậc nhất, phương trình bậc hai, hệ trục tọa độ vector và ma trận cơ bản) cùng kiến thức vận hành máy tính ở mức cơ sở.

3. Giáo trình này có điểm gì khác biệt so với các tài liệu lập trình C khác?

Giáo trình gắn chặt lý thuyết với môi trường phát triển Turbo C / Borland C cụ thể. Mọi chỉ dẫn đều nêu rõ thao tác phím tắt, đường dẫn hệ thống DOS/Windows, cấu trúc quản lý bộ nhớ của các kiểu dữ liệu, các bảng tra cứu mã ASCII và các ví dụ gỡ lỗi thực tế (như xử lý trôi lệnh bằng fflush(stdin) hoặc xung đột kiểu dữ liệu).

4. Phương pháp tự học giáo trình này như thế nào để đạt hiệu quả?

Người học nên tuân thủ trình tự 7 bài học, cài đặt môi trường BORLANDC\BIN\BC, gõ trực tiếp các đoạn mã mẫu trong sách vào trình biên dịch, sau đó giải quyết tuần tự các bài tập từ dễ đến khó (chuyển đổi ký tự, giải phương trình, xử lý mảng, ma trận, truyền con trỏ) và thường xuyên sử dụng phím F1/Ctrl+F1 để tra cứu thư viện.

5. Có những tài liệu bổ trợ nào đi kèm với giáo trình?

Giáo trình tích hợp hệ thống thư viện chuẩn của C (như <stdio.h>, <math.h>), hệ thống tệp trợ giúp Help trực tiếp của Borland C và tham chiếu đến tài liệu chuẩn Ngôn ngữ lập trình C của Dennish Ritchie và B. Kernighan (xuất bản năm 1978).


Kết luận

Giáo trình Kỹ thuật lập trình (Mã mô đun: MH13) của Trường Cao đẳng Cộng đồng Đồng Tháp cung cấp một hệ thống kiến thức hoàn chỉnh, có cấu trúc chặt chẽ về ngôn ngữ lập trình C. Tài liệu dẫn dắt người học từ các khái niệm cú pháp, kiểu dữ liệu, biểu thức, cấu trúc điều khiển đến các kỹ thuật nâng cao như hàm, mảng, chuỗi ký tự và biến con trỏ.

Lộ trình học tập được thiết kế khoa học với tỷ trọng thực hành cao, giúp người học phát triển năng lực tư duy thuật toán và kỹ năng lập trình thực tế. Cùng với việc khai thác các tài liệu tham khảo kinh điển và hệ thống trợ giúp của môi trường Borland C, giáo trình là tài liệu đào tạo và tham khảo đạt chuẩn cho học sinh trung cấp, sinh viên và kỹ thuật viên ngành công nghệ thông tin.