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

Giáo trình Kỹ thuật lập trình (Mã môn học: MH 09) là tài liệu học tập chính thức do Khoa Công nghệ Thông tin – Trường Trung cấp nghề Quang Trung biên soạn, ban hành theo Quyết định số 342/QĐ-QT ngày 28 tháng 10 năm 2021. Trong chương trình đào tạo nghề Quản trị mạng máy tính trình độ Trung cấp, môn học này giữ vị trí học phần cơ sở nghề bắt buộc, được bố trí giảng dạy sau khi người học đã hoàn thành các môn học chung, tin học văn phòng và căn bản về tin học. Môn học đóng vai trò trang bị kiến thức nền tảng về tư duy thuật toán và kỹ thuật xử lý dữ liệu cho các môn học chuyên ngành tiếp theo.

Mục tiêu đào tạo của giáo trình tập trung vào việc hình thành năng lực lập trình cơ bản thông qua ngôn ngữ C chuẩn ANSI. Về mặt kiến thức, tài liệu cung cấp hệ thống lý thuyết về cú pháp, ngữ nghĩa câu lệnh, cấu trúc điều khiển, kiểu dữ liệu, hàm và mảng, đồng thời phân tích cơ chế biên dịch và thực thi chương trình trong môi trường phát triển tích hợp (IDE). Về mặt kỹ năng, người học được rèn luyện quy trình giải quyết bài toán kỹ thuật từ việc xác định mô hình dữ liệu vào - ra (Input - Process - Output / IPO), chuyển đổi sang lưu đồ giải thuật, viết mã nguồn, thao tác trên trình biên dịch, gỡ lỗi (debug) đến kiểm thử chương trình. Về năng lực tự chủ, tài liệu định hướng tác phong làm việc công nghiệp, tuân thủ an toàn lao động trong phòng thực hành máy tính và khả năng tự nghiên cứu tài liệu kỹ thuật.

Cấu trúc giáo trình gồm 5 chương lý thuyết kết hợp bài tập thực hành, phần bài tập tổng hợp và tài liệu tham khảo:

  • Chương 1: Tổng quan về kỹ thuật lập trình
  • Chương 2: Các khái niệm căn bản
  • Chương 3: Các lệnh có cấu trúc
  • Chương 4: Hàm
  • Chương 5: Kiểu mảng

Điểm đặc thù trong phương pháp tiếp cận của giáo trình là tính thực nghiệm và chuẩn hóa quy trình. Thay vì tiếp cận thuần túy qua cú pháp, tài liệu áp dụng mô hình phân tích bài toán 4 giai đoạn: xác định mô hình IPO, biểu diễn lưu đồ thuật toán bằng ký hiệu hình học chuẩn, cài đặt mã nguồn chi tiết và chạy thực nghiệm trên nhiều môi trường phát triển phần mềm như Turbo C++, Borland C++, Dev-C++ và Visual Studio Code.


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

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

  • Chương 1: Tổng quan về kỹ thuật lập trình (Mã chương: MH09-01): Giới thiệu định nghĩa về lập trình, quá trình thông dịch (interpreter) và biên dịch (compiler). Trình bày định nghĩa và 5 tính chất của thuật toán. Khái quát các phương pháp lập trình (tuyến tính, cấu trúc, hướng đối tượng, trực quan), quy trình 7 bước phát triển phần mềm, phương pháp mô hình hóa IPO, hệ thống ký hiệu lưu đồ thuật toán và hướng dẫn sử dụng các IDE.
  • Chương 2: Các khái niệm căn bản (Mã chương: MH09-02): Giới thiệu lịch sử ngôn ngữ C do Ken Thompson và Dennis Ritchie phát triển tại Bell Labs (1972), chuẩn ANSI C và chu trình thực thi mã nguồn (Preprocessor $\rightarrow$ Compiler $\rightarrow$ Assembler $\rightarrow$ Linker $\rightarrow$ Loader $\rightarrow$ Console). Định nghĩa bảng ký hiệu, hệ thống 32 từ khóa chuẩn, cách đặt tên định danh, chú thích mã nguồn, khai báo thư viện #include <stdio.h>. Phân loại 4 nhóm kiểu dữ liệu cơ sở trong Turbo C (số nguyên, số thực, luận lý, ký tự), bảng phạm vi bộ nhớ của các kiểu dữ liệu (char, int, long, float, double), phân loại biến cục bộ và biến toàn cục. Trình bày hệ thống toán tử (số học, quan hệ, logic, bitwise, tăng/giảm ++/--, gán) với 15 mức độ ưu tiên và cú pháp nhập/xuất chuẩn bằng hàm printf(), scanf().
  • Chương 3: Các lệnh có cấu trúc (Mã chương: MH09-03): Phân tích 3 cấu trúc điều khiển cơ bản (tuần tự, chọn lọc, lặp). Trình bày chi tiết cú pháp, sơ đồ khối và nguyên lý hoạt động của cấu trúc rẽ nhánh điều kiện if, if-else, các cấu trúc if lồng nhau, cấu trúc đa nhánh switch-case-default-break. Giới thiệu các cấu trúc lặp xác định for, lặp không xác định while, do-while và các lệnh bẻ nhánh điều khiển gồm break, continue, goto.
  • Chương 4: Hàm: Khái niệm hàm trong lập trình đơn thể (modular programming), cấu trúc khai báo và định nghĩa hàm, khai báo nguyên mẫu hàm (function prototype), cơ chế truyền tham số, phạm vi biến và giá trị trả về của hàm qua câu lệnh return.
  • Chương 5: Kiểu mảng: Định nghĩa kiểu dữ liệu có cấu trúc mảng một chiều, cách khai báo mảng, cấp phát bộ nhớ, truy xuất phần tử thông qua chỉ số (index) và các thuật toán thao tác dữ liệu cơ bản trên mảng (nhập dữ liệu, xuất dữ liệu, tìm kiếm phần tử lớn nhất/nhỏ nhất).

Progression logic của giáo trình tuân theo trật tự nhận thức từ trừu tượng đến cụ thể: bắt đầu từ tư duy logic giải thuật và mô hình hóa (Chương 1), chuyển sang công cụ ngôn ngữ và quy tắc cú pháp cơ sở (Chương 2), xây dựng luồng xử lý điều khiển từ đơn giản đến lặp (Chương 3), tổ chức cấu trúc chương trình thành các mô-đun chức năng (Chương 4), và kết thúc ở việc quản lý, thao tác các cấu trúc dữ liệu tập hợp (Chương 5).

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

Giáo trình tích hợp các lý thuyết kinh điển của khoa học máy tính:

  • Định nghĩa bản chất thuật giải của Robert Kowalski: $$\text{Thuật giải} = \text{Logic} + \text{Điều khiển}$$ Trong đó thành phần Logic xác định quan hệ giữa các đối tượng để trả lời câu hỏi bài toán cần giải quyết điều gì, còn thành phần Điều khiển quy định cách thức áp dụng logic vào thực thi.
  • Định đề cấu trúc chương trình của Niklaus Wirth: $$\text{Chương trình} = \text{Thuật toán} + \text{Cấu trúc dữ liệu}$$
  • Hệ thống 5 tính chất của thuật toán:
    1. Tính chính xác: Các thao tác tính toán máy tính thực hiện đạt kết quả chuẩn xác.
    2. Tính rõ ràng: Các chỉ thị minh bạch, sắp xếp theo trình tự xác định.
    3. Tính khách quan: Được thực hiện bởi nhiều người trên các hệ thống khác nhau nhưng kết quả phải đồng nhất.
    4. Tính phổ dụng: Áp dụng được cho một lớp các bài toán có dữ liệu đầu vào tương tự.
    5. Tính kết thúc: Thuật toán phải dừng lại sau một số hữu hạn các bước tính toán.
  • Mô hình xử lý IPO (Input - Process - Output): Mô hình hóa mọi bài toán thành ba khối chức năng: tiếp nhận dữ liệu đầu vào, xử lý biến đổi dữ liệu theo giải thuật và kết xuất dữ liệu đầu ra.
  • Quy trình 7 bước phát triển phần mềm ứng dụng: Xác định mục tiêu $\rightarrow$ Thiết kế chương trình $\rightarrow$ Viết mã nguồn $\rightarrow$ Biên dịch $\rightarrow$ Chạy chương trình $\rightarrow$ Kiểm tra/Gỡ lỗi $\rightarrow$ Bảo trì/Nâng cấp.
  • Chu trình thực thi mã nguồn trong môi trường C: Cơ chế phân tầng qua 6 công đoạn: Preprocessor $\rightarrow$ Compiler $\rightarrow$ Assembler (.obj) $\rightarrow$ Linker (.exe) $\rightarrow$ Loader $\rightarrow$ Console Output.

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical skills): Thao tác cấu hình và vận hành các môi trường phát triển phần mềm (Borland C++ 5.02, Dev-C++, Visual Studio Code); cài đặt chính xác cú pháp C; sử dụng định dạng xuất/nhập dữ liệu (%d, %f, %c, %s, %ld, %u, %x); xử lý toán tử bitwise (&, |, ^, ~, <<, >>); thao tác với các thư viện tiêu chuẩn như <stdio.h>, <conio.h>, <math.h>.
  • Kỹ năng phân tích (Analytical skills): Phân tích dữ liệu bài toán thực tế thành mô hình IPO; chuyển đổi giải thuật văn bản sang biểu đồ lưu đồ khối chuẩn hóa; phân tích điều kiện rẽ nhánh và kiểm soát điều kiện biên trong vòng lặp; phân tích thông báo lỗi cú pháp từ trình biên dịch và xác định nguyên nhân lỗi logic trong chương trình.
  • Năng lực thực hành ứng dụng (Practical competencies): Đọc hiểu và viết mã nguồn giải quyết các bài toán kỹ thuật; thực hiện kiểm thử biên (boundary testing); gỡ rối chương trình theo từng bước (debugging); vận hành phòng máy tính an toàn và quản lý tập tin mã nguồn theo quy chuẩn.

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 tiếp cận theo quy trình thực hành 4 giai đoạn chuẩn hóa:

$$\text{Xây dựng thuật giải trên giấy} \longrightarrow \text{Viết chương trình trên máy} \longrightarrow \text{Biên dịch chương trình} \longrightarrow \text{Chạy và kiểm thử}$$

Mỗi đơn vị kiến thức đều được triển khai theo tiến trình: định nghĩa cú pháp, phân tích sơ đồ luồng hoạt động, cung cấp bài toán mẫu có chú giải chi tiết từng dòng lệnh, và đưa ra danh mục các lỗi cú pháp thường gặp để người học nhận diện và phòng tránh (ví dụ: lỗi thiếu dấu & trong hàm scanf, nhầm lẫn giữa toán tử gán = và toán tử so sánh bằng ==, hoặc đặt dấu chấm phẩy ; ngay sau câu lệnh if).

+-------------------------------------------------------------------------------+
|                      TIẾN TRÌNH SƯ PHẠM TRONG GIÁO TRÌNH                       |
+---------------------+-------------------+------------------+------------------+
|      BƯỚC 1         |      BƯỚC 2       |      BƯỚC 3      |      BƯỚC 4      |
| Xác định mô hình    | Biểu diễn giải    | Cài đặt mã nguồn | Biên dịch, chạy  |
| dữ liệu IPO         | thuật bằng lưu đồ | C chuẩn theo cú  | và gỡ lỗi trên   |
| (Input-Process-Out) | hình học chuẩn    | pháp định nghĩa  | trình IDE        |
+---------------------+-------------------+------------------+------------------+

Hệ thống bài tập mẫu và bài tập thực hành được xây dựng từ các bài toán tính toán kỹ thuật và quản lý thực tiễn:

  • Bài toán đổi ngoại tệ: Chuyển đổi số tiền USD sang VNĐ theo tỷ giá thực tế kèm định dạng hiển thị tiền tệ.
  • Bài toán tính cước lũy tiến: Tính cước taxi theo các mức cự ly (1 km đầu giá 15.000đ; từ km thứ 2 đến thứ 5 giá 12.000đ; từ km thứ 6 trở đi giá 9.000đ; giảm 10% tổng tiền nếu cự ly trên 120 km); tính tiền điện, tiền nước sinh hoạt theo định mức gia đình.
  • Bài toán đại số và hình học: 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$, hệ phương trình bậc nhất; tính chu vi và diện tích hình tròn, diện tích và thể tích hình cầu ($S = 4\pi R^2$, $V = \frac{4}{3}\pi R^3$).
  • Bài toán tính toán hàm phức hợp: Sử dụng thư viện toán học <math.h> để tính giá trị biểu thức: $$F = \frac{5^x + \log_5(|x^2 + y^2|) + \arctan(x + y)}{e^x + \cos(x + y)}$$ thông qua các hàm pow(), log(), fabs(), atan(), exp(), cos().
  • Bài toán xử lý số học và thời gian: Chuyển đổi số giây (0 đến 86.399) thành định dạng gio:phut:giay; đổi số nguyên hệ thập phân sang hệ thập lục phân; tách và tính tổng, tích các chữ số của số nguyên.

Phương pháp đánh giá kết quả học tập được xác định thông qua 2 tiêu chí: mức độ chính xác của kết quả đầu ra khi chạy thử nghiệm trên máy tính và tính tối ưu, rõ ràng của cấu trúc mã nguồn (cách đặt tên biến, thụt lề khối lệnh, sử dụng chú thích). Hướng dẫn tự học yêu cầu người học tự thực hiện việc vẽ lưu đồ giải thuật ra giấy trước khi gõ mã nguồn vào phần mềm biên dịch để hình thành tư duy phân tích độc lập.


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

Tài liệu được cập nhật theo khung chương trình ban hành năm 2021 của Trường Trung cấp nghề Quang Trung, thể hiện các điểm điều chỉnh kỹ thuật và bối cảnh đào tạo:

  • Chuyển đổi công cụ phát triển phần mềm: Giáo trình ghi nhận thực trạng các IDE truyền thống như Borland C++ 5.02 hay Turbo C++ không còn tương thích tự nhiên trên các hệ điều hành hiện đại như Windows 7, Windows 10 và Windows 11. Do đó, tài liệu bổ sung hướng dẫn chi tiết về cấu hình và quy trình thao tác trên Dev-C++ (sử dụng phím tắt F11 để Compile & Run) và giới thiệu trình biên tập mã nguồn mở Visual Studio Code (tích hợp công cụ quản lý phiên bản Git, công cụ hoàn thành mã thông minh, kiểm soát cú pháp và giao diện tùy biến).
  • Tích hợp xu hướng phương pháp lập trình: Bên cạnh kỹ thuật lập trình cấu trúc với ngôn ngữ C thuần chuẩn, giáo trình khái quát hóa các mô hình lập trình hiện đại gồm: lập trình hướng đối tượng (OOP - Object-Oriented Programming, làm tiền đề cho các ngôn ngữ kế thừa như C++, Java, C#), lập trình trực quan (Visual Programming như Visual Basic), và các nhánh công nghệ chuyên biệt như lập trình hệ thống nhúng (embedded programming).
  • Gắn kết tiêu chuẩn kỹ thuật thực tế: Giáo trình lồng ghép các bài toán thực tế gắn liền với đời sống kinh tế - kỹ thuật tại địa phương (như định dạng biển số xe quận Gò Vấp 59-V1-XYZABC.001, bài toán tính tiền dịch vụ Internet, tính lương công nhân). Nội dung giảng dạy nhấn mạnh việc tuân thủ các quy tắc an toàn vận hành thiết bị điện - máy tính và rèn luyện tác phong kỷ luật công nghiệp trong môi trường phòng lab CNTT.

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

Giáo trình Kỹ thuật lập trình được biên soạn nhằm phục vụ các nhóm đối tượng và mục đích cụ thể:

  • Học sinh - Sinh viên: Người học trình độ Trung cấp nghề Quản trị mạng máy tính (Khoa Công nghệ Thông tin) tại Trường Trung cấp nghề Quang Trung và các cơ sở giáo dục nghề nghiệp có chương trình tương đương. Giáo trình được sử dụng làm tài liệu học tập chính thức cho học phần Kỹ thuật lập trình (Mã MH 09).
  • Yêu cầu kiến thức tiên quyết (Prerequisites): Người học cần hoàn thành các học phần giáo dục chung, học phần Tin học văn phòng và Căn bản về tin học (nắm vững cấu trúc máy tính, thao tác hệ điều hành, quản lý tệp tin và thư mục, sử dụng bàn phím và chuột máy tính cơ bản).
  • Giảng viên chuyên ngành: Sử dụng làm căn cứ chuẩn để xây dựng đề cương chi tiết, bài giảng lý thuyết, giáo án bài tập thực hành trên phòng máy và thiết kế ngân hàng đề kiểm tra, thi kết thúc mô-đun.
  • Người tự học và tài liệu tra cứu: Người mới bắt đầu học kỹ thuật lập trình máy tính có thể sử dụng tài liệu làm tài liệu tham khảo tự học nhờ hệ thống bài tập mẫu có lời giải chi tiết, sơ đồ khối minh họa và giải thích rõ ràng các thông báo lỗi của trình biên dịch.

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 thiết kế chuyên biệt cho học sinh, sinh viên hệ trung cấp nghề Quản trị mạng máy tính, sinh viên khối ngành kỹ thuật công nghệ thông tin ở giai đoạn đại cương, và những người bắt đầu học kỹ thuật lập trình muốn nắm vững nguyên lý thuật toán từ căn bản.

2. Cần chuẩn bị kiến thức nền tảng nào trước khi học môn này?

Người học cần có kiến thức tin học cơ sở, thao tác thành thạo trên hệ điều hành máy tính, kỹ năng gõ bàn phím và kiến thức số học, logic căn bản. Môn học không yêu cầu người học phải có kinh nghiệm viết mã nguồn từ trước.

3. Điểm khác biệt của giáo trình này so với các tài liệu lập trình C thông thường là gì?

Giáo trình kết hợp đồng bộ giữa mô hình hóa dữ liệu IPO (Input - Process - Output), sơ đồ lưu đồ thuật toán và mã nguồn thực thi. Tài liệu tập trung vào phân tích các tình huống lỗi thực tế trên trình biên dịch và cung cấp hệ thống bài toán thực hành mang tính ứng dụng cụ thể (tính tiền điện, cước taxi, tính điểm, chuyển đổi đơn vị đo lường).

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

Người học cần tuân thủ quy trình 4 bước được giáo trình đề ra:

  1. Phân tích bài toán để xác định rõ thành phần Input, Process, Output.
  2. Vẽ lưu đồ giải thuật ra giấy.
  3. Nhập mã nguồn vào phần mềm biên dịch (Dev-C++ hoặc Visual Studio Code).
  4. Biên dịch, đọc thông báo lỗi để gỡ rối (debug) và kiểm thử với nhiều bộ dữ liệu khác nhau.

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

Tài liệu cung cấp hướng dẫn cài đặt và sử dụng các môi trường phát triển tích hợp gồm Borland C++, Dev-C++ và Visual Studio Code; bảng mã định dạng chuỗi và bảng 15 cấp độ ưu tiên toán tử; hệ thống bài tập tự luyện và các bài tập tổng hợp từ trang 113 đến trang 135 của giáo trình.


Kết luận

Giáo trình Kỹ thuật lập trình của Khoa Công nghệ Thông tin – Trường Trung cấp nghề Quang Trung cung cấp hệ thống kiến thức nền tảng về cấu trúc dữ liệu cơ sở, thuật toán và kỹ thuật lập trình ngôn ngữ C chuẩn ANSI. Thông qua việc tích hợp các định lý thuật giải kinh điển, mô hình phân tích IPO và biểu đồ luồng dữ liệu, tài liệu hình thành cho người học tư duy giải quyết vấn đề có cấu trúc và kỹ năng vận hành công cụ phát triển phần mềm.

Về lộ trình học tập tiếp theo, sau khi hoàn thành học phần này, người học đạt chuẩn kiến thức để tiếp cận các môn học nâng cao trong chương trình đào tạo Quản trị mạng máy tính và Công nghệ thông tin như Cấu trúc dữ liệu và giải thuật, Quản trị hệ thống, Lập trình hướng đối tượng (C++, Java, C#) hoặc Lập trình mạng. Người học có thể tham khảo thêm các tài liệu mở rộng về Lập trình C nâng cao, kiến trúc hệ điều hành Unix/Linux và kỹ thuật phát triển ứng dụng trên nền tảng Visual Studio để hoàn thiện kỹ năng chuyên môn.