GIÁO TRÌNH LẬP TRÌNH CƠ BẢN (NGÀNH CÔNG NGHỆ THÔNG TIN – TRÌNH ĐỘ TRUNG CẤP)


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

Giáo trình Lập trình cơ bản (Mã môn học: MH11) là tài liệu học tập và giảng dạy chính thức được ban hành kèm theo Quyết định số 140/QĐ-TCTS ngày 26 tháng 12 năm 2022 của Hiệu trưởng Trường Trung cấp Trường Sơn Đắk Lắk. Giáo trình do nhóm tác giả gồm Phạm Hồng Quốc (Chủ biên), Đậu Nguyễn Thanh Nhàn và Nguyễn Thái Vương biên soạn nhằm đáp ứng chương trình khung đào tạo nghề Công nghệ thông tin (chuyên ngành Ứng dụng phần mềm) cũng như làm tài liệu tham khảo cho các ngành kỹ thuật liên quan.

+-----------------------------------------------------------------------------+
|                      THÔNG TIN ẤN PHẨM HỌC THUẬT                            |
+----------------------+------------------------------------------------------+
| Tên giáo trình       | Lập trình cơ bản                                     |
| Mã môn học           | MH11                                                 |
| Cơ quan ban hành     | Trường Trung cấp Trường Sơn Đắk Lắk                  |
| Quyết định ban hành  | Số 140/QĐ-TCTS (Ký ngày 26/12/2022)                 |
| Nhóm tác giả         | Phạm Hồng Quốc (Chủ biên),                           |
|                      | Đậu Nguyễn Thanh Nhàn, Nguyễn Thái Vương             |
| Thời lượng đào tạo   | 45 giờ (15 giờ Lý thuyết, 28 giờ Thực hành, 2 giờ KT)|
+----------------------+------------------------------------------------------+

Về vị trí trong chương trình đào tạo, môn học thuộc khối kiến thức cơ sở nghề, được bố trí giảng dạy sau các môn học chung và kết nối trực tiếp với môn Cấu trúc dữ liệu và giải thuật. Giáo trình đặt mục tiêu trang bị cho người học hệ thống khái niệm nền tảng về ngôn ngữ C, phương pháp giải quyết bài toán trên máy tính, kỹ thuật lập trình tuyến tính và cấu trúc, cùng khả năng làm việc với các kiểu dữ liệu mảng, con trỏ và chuỗi ký tự.

Cấu trúc giáo trình gồm 7 chương được phân bổ theo thời lượng 45 giờ (15 giờ lý thuyết, 28 giờ thực hành và 2 giờ kiểm tra định kỳ). Điểm đặc thù của tài liệu là phương pháp tiếp cận gắn liền giữa lý thuyết cú pháp và kỹ năng thao tác trên môi trường soạn thảo/biên dịch C-Free 5, tối ưu hóa thời lượng thực hành chiếm hơn 62% tổng chương trình học.


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

                             TIẾN TRÌNH 7 CHƯƠNG HỌC TẬP

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

  • Chương I: Giới thiệu ngôn ngữ lập trình C (3 giờ: 1 LT, 2 TH): Trình bày lịch sử phát triển của ngôn ngữ C từ ngôn ngữ BCPL (Martin Richards, 1967) và ngôn ngữ B (Ken Thompson, 1970) trên hệ điều hành UNIX của máy PDP-7 và DEC PDP-11, đến công trình của Dennis Ritchie và ấn bản năm 1978 của Dennis Ritchie cùng Brian Kernighan, dẫn đến chuẩn ANSI C. Nội dung phân tích các khái niệm lệnh, chương trình, thuật giải; thiết lập quy trình giải quyết vấn đề qua mô hình Nhập – Xử lý – Xuất (Input – Process – Output / I-P-O); chuẩn hóa biểu diễn thuật toán qua 8 ký hiệu lưu đồ (Flowchart); hướng dẫn cài đặt, thiết lập phím tắt và thao tác biên dịch trong môi trường C-Free 5.
  • Chương II: Các thành phần cơ bản của ngôn ngữ lập trình C (5 giờ: 2 LT, 3 TH): Cung cấp hệ thống 32 từ khóa chuẩn (auto, break, case, char, const, continue, default, do, double, else, enum, extern, float, for, goto, if, int, long, register, return, short, signed, sizeof, static, struct, switch, typedef, union, unsigned, void, volatile, while) và 40 toán tử; tập ký tự ASCII (nhóm điều khiển 0–31, nhóm in được, nhóm đồ họa 127–255); các kiểu dữ liệu số nguyên (1 byte: char, unsigned char; 2 bytes: int, short int, unsigned int, enum; 4 bytes: long, unsigned long) và số thực (float 4 bytes, double 8 bytes, long double 10 bytes); quy tắc định danh; phạm vi biến toàn cục, biến cục bộ trong khối lệnh {}; toán tử số học (+, -, *, /, %, ++, --), toán tử quan hệ (>, >=, <, <=, ==, !=), toán tử logic (&&, ||, !), toán tử địa chỉ (&, *); chỉ thị tiền xử lý (#include, #define); các thư viện chuẩn (stdio.h, conio.h, math.h, alloc.h, io.h, graphics.h); cơ chế nhập/xuất có định dạng thông qua printf()scanf().
  • Chương III: Các câu lệnh có cấu trúc (12 giờ: 4 LT, 8 TH): Phân tích chi tiết cú pháp và lưu đồ thực thi của cấu trúc rẽ nhánh if không đầy đủ, cấu trúc if...else đầy đủ, kỹ thuật lồng ghép điều kiện; cấu trúc lựa chọn đa trường hợp switch...case...default; các cấu trúc lặp while, do...while, for và các câu lệnh điều khiển bước nhảy break, continue, goto.
  • Chương IV: Hàm và chương trình con (10 giờ: 3 LT, 6 TH, 1 KT): Giới thiệu khái niệm mô-đun hóa chương trình; cấu trúc khai báo nguyên mẫu hàm (prototype); quy tắc hoạt động của hàm; định nghĩa hàm trả về giá trị hoặc hàm void; cơ chế truyền tham số gồm truyền theo giá trị (tham trị) và truyền theo địa chỉ (tham chiếu thông qua con trỏ).
  • Chương V: Dữ liệu kiểu mảng (5 giờ: 2 LT, 3 TH): Trình bày khái niệm cấu trúc dữ liệu mảng với các phần tử cùng kiểu được cấp phát liên tục trong bộ nhớ; quy tắc khai báo, chỉ số phần tử bắt đầu từ 0; phương pháp duyệt và truy xuất dữ liệu trên mảng một chiều và mảng hai chiều (ma trận).
  • Chương VI: Con trỏ (5 giờ: 2 LT, 3 TH): Xây dựng khái niệm biến con trỏ dùng để lưu trữ địa chỉ bộ nhớ của biến khác; cú pháp khai báo biến con trỏ; mối quan hệ giữa toán tử lấy địa chỉ & và toán tử giải tham chiếu *; các phép toán số học trên con trỏ và liên hệ giữa con trỏ với mảng.
  • Chương VII: Chuỗi ký tự (5 giờ: 1 LT, 3 TH, 1 KT): Định nghĩa chuỗi ký tự là mảng một chiều các ký tự kết thúc bằng ký tự rỗng \0 (NULL, mã ASCII 0); khai báo chuỗi qua mảng hoặc biến con trỏ char*; các thao tác nhập xuất chuỗi qua gets(), puts(), scanf("%s"), printf("%s"); các hàm xử lý chuỗi tiêu chuẩn.

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

Giáo trình xác lập các cơ sở lý thuyết khoa học máy tính thông qua các định lý và mô hình kinh điển:

  1. Lý thuyết bản chất thuật giải của Kowalski: Xác định cấu trúc $\text{Thuật giải} = \text{Logic} + \text{Điều khiển}$, phân định rõ phần logic (giải quyết bài toán gì) và phần điều khiển (thực thi bài toán như thế nào).
  2. Nguyên lý cấu trúc chương trình của Niklaus Wirth: Xác định $\text{Chương trình} = \text{Thuật toán} + \text{Cấu trúc dữ liệu}$, làm nền tảng cho việc phân chia các chương từ kiểu dữ liệu sơ cấp đến mảng, con trỏ và chuỗi.
  3. Ba cấu trúc điều khiển cơ bản: Chứng minh mọi chương trình phức tạp đều được xây dựng từ ba cấu trúc: Tuần tự (Sequential), Chọn lọc (Selection) và Lặp lại (Repetition).
  4. Mô hình quản lý bộ nhớ và phạm vi hoạt động: Làm rõ cơ chế cấp phát bộ nhớ cho biến cục bộ khi luồng điều khiển đi vào khối lệnh {} và giải phóng ngay khi thoát khỏi khối lệnh.
                           BẢNG PHÂN LOẠI KIỂU DỮ LIỆU C CƠ BẢN
+--------------------+------------+-----------------------------------+--------------------+
| Kiểu dữ liệu       | Kích thước | Miền giá trị (Domain)             | Định dạng nhập/xuất|
+--------------------+------------+-----------------------------------+--------------------+
| char               | 1 byte     | -128 đến 127                      | %c                 |
| unsigned char      | 1 byte     | 0 đến 255                         | %c                 |
| int / short int    | 2 bytes    | -32,768 đến 32,767                | %d                 |
| unsigned int       | 2 bytes    | 0 đến 65,535                      | %u                 |
| long               | 4 bytes    | -2,147,483,648 đến 2,147,483,647  | %ld                |
| unsigned long      | 4 bytes    | 0 đến 4,294,967,295               | %lu                |
| float              | 4 bytes    | 3.4E-38 đến 3.4E+38 (độ chính xác)| %f / %e / %g       |
| double             | 8 bytes    | 1.7E-308 đến 1.7E+308             | %lf                |
| long double        | 10 bytes   | 3.4E-4932 đến 1.1E+4932           | %Lf                |
+--------------------+------------+-----------------------------------+--------------------+

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical skills): Cài đặt và cấu hình phần mềm C-Free 5; sử dụng thành thạo hệ thống phím tắt soạn thảo, đánh dấu khối (Ctrl+K+B, Ctrl+K+K, Ctrl+K+C), biên dịch (Alt+F9, F9), chạy chương trình (Ctrl+F9, F5); tra cứu lỗi cú pháp tại dòng thông báo lỗi; làm việc với các thư viện hàm chuẩn.
  • Kỹ năng phân tích (Analytical skills): Phân tích bài toán theo mô hình I-P-O; chuyển đổi đặc tả yêu cầu thành lưu đồ thuật toán chính xác; kiểm soát thứ tự ưu tiên của toán tử số học, logic và quan hệ trong các biểu thức phức tạp.
  • Năng lực thực hành nghề nghiệp (Practical competencies): Xây dựng mã nguồn C hoàn chỉnh để giải quyết các bài toán tính toán kỹ thuật, xử lý số liệu, thao tác quản lý dữ liệu mảng và xử lý chuỗi ký tự theo chuẩn cấu trúc module.

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

Giáo trình áp dụng mô hình tiếp cận sư phạm thực hành kết hợp diễn dịch: từ phân tích khái niệm lý thuyết, giải thích cú pháp, mô hình hóa bằng lưu đồ thuật toán, đến cung cấp mã nguồn mẫu và phân tích cơ chế chạy từng dòng lệnh.

                           QUY TRÌNH 4 BƯỚC PHÁT TRIỂN PHẦN MỀM

Hệ thống bài tập và tình huống thực hành được thiết kế đa dạng từ trực quan đời sống đến kỹ thuật chuyên ngành:

  • Tình huống đời sống mô phỏng thuật giải: Thuật toán pha chế sữa dâu (phân tích tính tuần tự, rõ ràng, có giới hạn của lệnh), quy trình pha nước chanh nóng xác định các thành phần Input, Process, Output.
  • Bài toán quản lý và kinh tế: Tính tiền lương công nhân dựa trên công thức: $$\text{Lương} = \text{Lương căn bản} \times \text{Ngày công}$$ Chuyển đổi tiền tệ từ Việt Nam Đồng (VND) sang Đô la Mỹ (USD).
  • Bài toán số học và hình học:
    • Giải phương trình bậc nhất: $$ax + b = 0$$
    • Giải phương trình bậc hai: $$ax^2 + bx + c = 0$$
    • Tính điểm trung bình ba môn Toán, Lý, Hóa.
    • Chuyển đổi giữa độ và radian theo hệ thức: $$\frac{\alpha}{\pi} = \frac{a}{180}$$
    • Tính diện tích và thể tích hình cầu: $$S = 4\pi R^2, \quad V = \frac{4}{3}\pi R^3$$
    • Chuyển đổi cơ số từ hệ thập phân (hệ 10) sang hệ nhị phân (hệ 2) và hệ thập lục phân (hệ 16).
    • Chuyển đổi thời gian từ tổng số giây sang định dạng gio:phut:giay (ví dụ: 02:11:05).

Phương pháp đánh giá kết quả học tập được xác lập thông qua kiểm tra định kỳ phân bổ vào Chương IV (1 giờ) và Chương VII (1 giờ), kết hợp đánh giá thường xuyên trong 28 giờ thực hành trên máy. Hướng dẫn tự học yêu cầu người học tuân thủ nghiêm ngặt quy trình: Xây dựng thuật giải trên giấy $\rightarrow$ Viết mã nguồn $\rightarrow$ Biên dịch sửa lỗi $\rightarrow$ Chạy thử và kiểm thử dữ liệu thực tế.


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

  • Cơ sở pháp lý và tính chuẩn hóa tài liệu: Giáo trình giải quyết tình trạng thiếu hụt tài liệu đồng bộ cho hệ đào tạo nghề tại địa phương, được thẩm định và ban hành chính thức theo Quyết định số 140/QĐ-TCTS năm 2022 của Trường Trung cấp Trường Sơn Đắk Lắk.
  • Chuyển dịch môi trường phát triển sang C-Free 5: Thay vì sử dụng môi trường dòng lệnh DOS cũ (như Turbo C), giáo trình tích hợp môi trường C-Free 5 hỗ trợ giao diện đồ họa hiện đại, tự động tô màu cú pháp (Class/Struct/Functions/Variables), hỗ trợ gợi ý từ khóa thông minh, tra cứu hàm qua phím F1, và quản lý theo Project.
                  SO SÁNH ĐẶC TÍNH MÔI TRƯỜNG SOẠN THẢO C-FREE 5
+-----------------------------+-------------------------------------------------------+
| Tiêu chí kỹ thuật           | Đặc tả trong giáo trình                               |
+-----------------------------+-------------------------------------------------------+
| Môi trường làm việc         | C-Free phiên bản 5.0                                  |
| Hỗ trợ giao diện            | Phân biệt màu sắc từ khóa, biến, hàm, hằng số         |
| Trợ giúp trực tiếp          | Phím F1 (toàn bộ trợ giúp), Ctrl+F1 (theo ngữ cảnh)   |
| Phím tắt biên dịch / chạy   | F9 / Alt+F9 (Biên dịch), F5 / Ctrl+F9 (Thực thi)      |
| Quản lý mã nguồn            | Tổ chức tệp đơn lẻ (.C, .CPP) hoặc tệp dự án (Project)|
+-----------------------------+-------------------------------------------------------+
  • Đặc tính kỹ thuật cốt lõi của ngôn ngữ C: Giáo trình nhấn mạnh 5 đặc tính nền tảng của C: Tính cô đọng (32 từ khóa, 40 toán tử), Tính cấu trúc (phân chia khối lệnh rõ ràng), Tính tương thích (thư viện chuẩn ANSI phong phú), Tính linh động (cho phép định nghĩa kiểu dữ liệu mới), và Khả năng biên dịch độc lập các tệp mã nguồn thành tệp đối tượng (.obj) rồi liên kết (link) thành tệp thực thi (.exe).
  • Tính ứng dụng hệ thống: Giáo trình liên kết trực tiếp kiến thức cú pháp với việc hiểu sâu cấu trúc phần cứng máy tính thông qua thao tác trên địa chỉ ô nhớ và con trỏ, tạo nền tảng cho việc phát triển phần mềm nhúng và lập trình hệ thống.

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

                           ĐỐI TƯỢNG VÀ ĐIỀU KIỆN TIÊN QUYẾT
  1. Học sinh, sinh viên: Tài liệu học tập chính khóa cho học sinh, sinh viên trình độ Trung cấp nghề ngành Công nghệ thông tin (Ứng dụng phần mềm), và sinh viên các ngành kỹ thuật cần trang bị kỹ thuật lập trình cơ bản.
  2. Điều kiện tiên quyết: Người học cần hoàn thành khối kiến thức chung (đặc biệt là Toán học sơ cấp về giải phương trình, logic toán) và kỹ năng sử dụng máy tính căn bản trước khi tiếp cận môn học.
  3. Giảng viên: Tài liệu chuẩn dùng để lập kế hoạch bài giảng, tổ chức các giờ dạy lý thuyết và hướng dẫn thực hành trong phòng máy theo đúng tiến độ 45 giờ đã được phê duyệt.
  4. Người tự học và tham khảo: Phù hợp cho lập trình viên mới bắt đầu cần tài liệu mô tả chi tiết cú pháp chuẩn, bảng mã ký tự, hệ thống phím tắt và ví dụ minh họa bằng tiếng Việt.

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 thiết kế chuyên biệt cho học sinh, sinh viên bậc Trung cấp nghề Công nghệ thông tin (Ứng dụng phần mềm) của Trường Trung cấp Trường Sơn Đắk Lắk và người học các ngành kỹ thuật cần nắm vững ngôn ngữ lập trình C.

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

Người học cần nắm vững kiến thức toán học cơ bản (các phép tính số học, logic đại số, hình học cơ bản, phương trình bậc nhất và bậc hai) cùng kỹ năng tin học văn phòng cơ bản để thao tác với hệ điều hành và phần mềm soạn thảo.

3. Điểm khác biệt của giáo trình này so với các tài liệu khác?

Giáo trình phân bổ thời lượng thực hành vượt trội (28 giờ thực hành trên tổng số 45 giờ), chuẩn hóa trên môi trường C-Free 5 thay cho môi trường DOS cổ điển, và minh họa thuật giải chặt chẽ qua mô hình IPO kết hợp lưu đồ thuật toán (Flowchart).

4. Làm sao để tự học giáo trình đạt hiệu quả cao nhất?

Người học cần thực hiện đầy đủ quy trình 4 bước được hướng dẫn trong giáo trình: Bước 1: Xây dựng thuật giải trên giấy $\rightarrow$ Bước 2: Viết chương trình trên máy $\rightarrow$ Bước 3: Dịch chương trình và sửa lỗi $\rightarrow$ Bước 4: Chạy thử, kiểm chứng kết quả với các bộ dữ liệu khác nhau.

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

Giáo trình tích hợp sẵn bảng danh mục 32 từ khóa, bảng 40 toán tử, bảng mã ASCII 256 ký tự, bảng chân trị các phép toán logic, hệ thống bảng phím tắt thao tác trên C-Free 5 và danh mục các thư viện hàm thông dụng (stdio.h, conio.h, math.h, alloc.h, io.h, graphics.h).


Kết luận

Giáo trình Lập trình cơ bản của Trường Trung cấp Trường Sơn Đắk Lắk (Ban hành kèm Quyết định số 140/QĐ-TCTS) cung cấp hệ thống kiến thức toàn diện và có cấu trúc về ngôn ngữ lập trình C cho trình độ trung cấp nghề. Với lộ trình 7 chương học tập từ mức độ cú pháp cơ sở, cấu trúc điều khiển đến các cấu trúc dữ liệu mảng, con trỏ và chuỗi ký tự, giáo trình thiết lập nền tảng vững chắc cho việc tiếp thu các môn học chuyên sâu như Cấu trúc dữ liệu và giải thuật. Việc kết hợp chặt chẽ giữa 15 giờ lý thuyết và 28 giờ thực hành trên môi trường C-Free 5 bảo đảm tính chuẩn hóa và năng lực ứng dụng thực tế trong chương trình đào tạo nghề Công nghệ thông tin.