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

Giáo trình Lập trình C (Mã tài liệu: MH18) là tài liệu đào tạo chính thức thuộc hệ thống giáo trình Cao đẳng nghề cho nghề Quản trị mạng, được ban hành kèm theo Quyết định số 120/QĐ-TCDN ngày 25 tháng 02 năm 2013 của Tổng cục trưởng Tổng cục Dạy nghề (Bộ Lao động - Thương binh và Xã hội). Ban biên soạn gồm: Trần Thị Hà Khuê (Chủ biên), Võ Thị Ngọc Tú và Dương Hiển Tú.

Trong chương trình đào tạo, môn học được bố trí sau khi sinh viên hoàn thành các môn học chung và các môn cơ sở chuyên ngành. Đây là học phần lý thuyết cơ sở nghề, đóng vai trò nền tảng để tiếp thu hầu hết các môn học chuyên môn tiếp theo và cung cấp cơ sở để phát triển các ứng dụng phần mềm.

Mục tiêu học tập của giáo trình xác định sinh viên sau khi hoàn thành học phần phải:

  • Trình bày được 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 được yêu cầu của bài toán và xác định nhiệm vụ chương trình cần thực hiện.
  • Viết, biên dịch và chạy được các chương trình đơn giản trên máy tính bằng ngôn ngữ C.
  • Thực hiện đúng các quy định an toàn cho người và phương tiện máy tính trong quá trình thực hành.

Giáo trình có thời lượng 60 giờ (30 giờ lý thuyết, 27 giờ thực hành/bài tập, 3 giờ kiểm tra). Cấu trúc nội dung được thiết kế theo trình tự từ các thành phần cú pháp cơ bản, cấu trúc điều khiển luồng (rẽ nhánh, vòng lặp), kỹ thuật tổ chức hàm đến các cấu trúc dữ liệu mảng và chuỗi ký tự.


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

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

Nội dung giáo trình gồm 6 chương:

  • Chương 1: Giới thiệu về ngôn ngữ C (1 giờ lý thuyết): Trình bày lịch sử hình thành từ BCPL (Martin Richards, 1967), ngôn ngữ B (Ken Thompson, 1970) trên PDP-7 đến ngôn ngữ C do Dennis Ritchie phát triển tại Bell Labs trên DEC PDP-11 cho hệ điều hành UNIX; chuẩn ANSI C; 5 đặc điểm của C (tính cô đọng với 32 từ khóa và 40 toán tử, tính cấu trúc, tính tương thích, tính linh động, cơ chế biên dịch link file object sang file executable); hướng dẫn khởi động và thoát trong môi trường Borland C/Turbo C (BC.EXE, Alt-X, Ctrl-F9, Alt-F5).
  • Chương 2: Các thành phần cơ bản trong ngôn ngữ C (7 giờ: 6 LT, 1 KT): Bộ ký tự chuẩn; quy tắc đặt tên định danh ($\le 32$ ký tự); 32 từ khóa viết thường; phân loại kiểu dữ liệu nguyên (int, unsigned int, long, unsigned long) và thực (float, double, long double); hệ thống toán tử (số học, quan hệ, logic, tăng giảm ++/--); bảng thứ tự ưu tiên gồm 15 mức; cấu trúc chương trình C; khai báo biến và phạm vi; các hàm nhập/xuất chuẩn printf(), scanf() kèm các mã định dạng (%d, %f, %c, %s, %ld...) và ký tự điều khiển (\n, \t, \a...).
  • Chương 3: Cấu trúc rẽ nhánh có điều kiện (12 giờ: 5 LT, 6 TH, 1 KT): Phân biệt câu lệnh đơn và khối lệnh trong cặp { }; cấu trúc if dạng thiếu, if...else dạng đủ, cấu trúc đa nhánh else if và if lồng nhau; cấu trúc chọn lựa switch...case (dạng thiếu), switch...case...default (dạng đủ) và cấu trúc switch lồng nhau (minh họa bằng thuật toán menu điều khiển 2 cấp và trò chơi One-Two-Three).
  • Chương 4: Cấu trúc vòng lặp (12 giờ: 6 LT, 6 TH): Cú pháp, lưu đồ và giải thuật thực thi của vòng lặp xác định for, vòng lặp kiểm tra điều kiện trước while, vòng lặp kiểm tra điều kiện sau do...while; so sánh sự khác nhau giữa các vòng lặp; kỹ thuật lặp lồng nhau; các lệnh điều khiển luồng break và continue.
  • Chương 5: Hàm (13 giờ: 5 LT, 7 TH, 1 KT): Khái niệm hàm, cấu trúc khai báo prototype và định nghĩa hàm; giá trị trả về (return, void); cơ chế truyền đối số dạng tham trị (pass-by-value) và dạng tham biến (pass-by-reference); phạm vi hoạt động của biến cục bộ và biến toàn cục; dẫn hướng tiền xử lý #define.
  • Chương 6: Mảng và chuỗi (15 giờ: 7 LT, 7 TH, 1 KT): Khái niệm kiểu dữ liệu có cấu trúc; khai báo và truy xuất phần tử mảng một chiều; tổ chức và duyệt mảng nhiều chiều (mảng hai chiều/ma trận); các thao tác cơ bản trên mảng ký tự và chuỗi (string) kết thúc bằng ký tự rỗng \0.

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

Giáo trình xây dựng hệ thống kiến thức lập trình có cấu trúc dựa trên các nền tảng:

  • Lý thuyết ngôn ngữ và biểu diễn thuật toán: Phương pháp mô hình hóa luồng xử lý bằng lưu đồ thuật toán (flowchart) cho các cấu trúc rẽ nhánh và vòng lặp.
  • Mô hình bộ nhớ và kiểu dữ liệu: Chi tiết kích thước lưu trữ và giới hạn biểu diễn của từng kiểu dữ liệu trên kiến trúc máy tính:
Kiểu dữ liệu Kích thước Phạm vi biểu diễn Số chữ số có nghĩa
int 2 bytes -32.768 đến 32.767 -
unsigned int 2 bytes 0 đến 65.535 -
long 4 bytes -2.147.483.648 đến 2.147.483.647 -
unsigned long 4 bytes 0 đến 4.294.967.295 -
float 4 bytes $3.4 \times 10^{-38}$ đến $3.4 \times 10^{+38}$ 7 đến 8
double 8 bytes $1.7 \times 10^{-308}$ đến $1.7 \times 10^{+308}$ 15 đến 16
long double 10 bytes $3.1 \times 10^{-4932}$ đến $3.1 \times 10^{+4932}$ 17 đến 18
  • Nguyên lý cấu trúc chương trình: Phân cấp rõ ràng giữa các chỉ thị tiền xử lý (#include, #define), định nghĩa kiểu (typedef), biến toàn cục, hàm main() và các hàm tự tạo.

Kỹ năng phát triển

  • Kỹ năng kỹ thuật: Cài đặt, biên dịch và chạy chương trình trong môi trường Borland C/Turbo C; sử dụng chính xác cú pháp chỉ thị tiền xử lý, cấu trúc điều khiển và mảng/chuỗi.
  • Kỹ năng phân tích: Phân tích logic bài toán, chuyển đổi giải thuật toán học thành mã nguồn lập trình, kiểm soát lỗi logic và thứ tự ưu tiên toán tử trong biểu thức.
  • Năng lực thực hành: Xây dựng các ứng dụng console hoàn chỉnh như menu quản lý chức năng nhiều cấp, chương trình giải phương trình đại số, thuật toán xử lý chuỗi và mảng số liệu.

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

Giáo trình áp dụng mô hình sư phạm kết hợp giữa giảng dạy lý thuyết và bài tập thực hành trên máy với tỷ lệ phân bổ cụ thể: 30 giờ lý thuyết (50%), 27 giờ bài tập/thực hành (45%) và 3 giờ kiểm tra (5%).

   PHÂN BỔ THỜI LƯỢNG MÔN HỌC (60 GIỜ)

Mỗi đơn vị bài học đều đi từ cơ sở lý thuyết, mô tả cú pháp, giải thích qua lưu đồ thuật toán và minh họa bằng các đoạn mã nguồn hoàn chỉnh. Hệ thống bài tập và thực hành trong tài liệu được thiết kế theo các nhóm chủ đề:

  • Bài toán số học và hình học: Đổi cơ số hệ 10 sang hệ 2 và hệ 16; tính diện tích ($S = 4\pi R^2$) và thể tích ($V = \frac{4}{3}\pi R^3$) hình cầu; tính lũy thừa ($a^2, a^3, a^4$); chuyển đổi giây sang định dạng hh:mm:ss.
  • Bài toán đại số và thuật toán điều kiện: Giải phương trình bậc nhất $ax + b = 0$, phương trình bậc hai $ax^2 + bx + c = 0$; tìm giá trị lớn nhất trong 4 số nguyên; kiểm tra năm nhuận và xác định số ngày trong tháng.
  • Bài toán lặp và xử lý số nguyên: Tính tổng dãy số $S = \sum_{i=1}^n i$, tổng bình phương các số lẻ, tổng phân số $S = \sum_{i=1}^n \frac{1}{i}$; tính giai thừa $n!$; kiểm tra và đếm số nguyên tố từ 1 đến $n$; in bảng số $10 \times 10$ từ 1 đến 100.
  • Bài toán cấu trúc menu và mô phỏng: Lập trình menu điều hướng đa cấp (Main Menu $\rightarrow$ Menu File: New, Open), mô phỏng trò chơi One-Two-Three (Kéo - Búa - Bao).

Phương pháp đánh giá học phần bao gồm 3 bài kiểm tra định kỳ (1 giờ/bài) được bố trí tại Chương 2, Chương 3, Chương 5 hoặc Chương 6, kết hợp giữa kiểm tra lý thuyết hiểu biết cú pháp và bài kiểm tra kỹ năng viết mã, gỡ lỗi trực tiếp trên máy vi tính.

Tài liệu hướng dẫn sinh viên tự học thông qua việc tuân thủ các chỉ dẫn về cú pháp (viết chữ thường cho từ khóa, đặt chấm phẩy kết thúc lệnh, thụt đầu dòng cấu trúc khối lệnh) và quy trình biên dịch - kiểm tra kết quả bằng các tổ hợp phím tắt trên môi trường Borland C.


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

  • Nền tảng chuẩn hóa theo ANSI C: Giáo trình xây dựng nội dung bám sát tiêu chuẩn ANSI C, đảm bảo tính tương thích của mã nguồn khi chuyển đổi giữa các hệ thống máy tính khác nhau.
  • Tập trung vào đặc tính lập trình hệ thống: Nội dung làm rõ bản chất của ngôn ngữ C trong việc thao tác phần cứng và lập trình hệ thống, kết hợp với Assembler để xây dựng các phần mềm hệ thống và hệ điều hành UNIX.
  • Tích hợp bài toán ứng dụng sát với nghề Quản trị mạng: Giáo trình đưa trực tiếp các bài toán xử lý cơ số (hệ nhị phân, hệ thập lục phân) và cấu trúc phân luồng điều khiển, hỗ trợ trực tiếp cho sinh viên ngành Quản trị mạng trong việc hiểu cấu trúc dữ liệu địa chỉ IP, mặt nạ mạng (subnet mask) và các lệnh script hệ thống.
  • Tính trực quan trong biểu diễn logic: Tất cả các cấu trúc điều khiển (lệnh if, else if, switch, for, while, do...while) đều có sơ đồ lưu đồ thuật toán đi kèm, giúp người học phân biệt rõ luồng thực thi và các điểm kiểm tra điều kiện logic.

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

  • Sinh viên: Giáo trình được thiết kế chuẩn cho sinh viên hệ Cao đẳng nghề chuyên ngành Quản trị mạng. Tài liệu được học sau các môn chung và kiến thức cơ sở ngành.
  • Điều kiện tiên quyết: Người học cần có kiến thức cơ bản về tin học đại cương, thao tác với hệ điều hành máy tính và hiểu biết sơ lược về cấu trúc máy tính.
  • Giảng viên chuyên ngành: Sử dụng tài liệu làm khung đề cương chi tiết, phân bổ giờ giảng dạy lý thuyết (30 giờ), tổ chức hướng dẫn bài tập phòng máy (27 giờ) và làm cơ sở ra đề kiểm tra đánh giá (3 giờ).
  • Người tự học và tham khảo: Dùng làm tài liệu tra cứu các quy tắc cú pháp chuẩn của ngôn ngữ C, hệ thống 32 từ khóa, bảng 15 cấp độ ưu tiên toán tử và các giải thuật lập trình căn bản.

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

1. Giáo trình này được biên soạn cho đối tượng nào?

Giáo trình được ban hành chính thức cho sinh viên trình độ Cao đẳng nghề thuộc ngành Quản trị mạng theo chương trình chuẩn của Tổng cục Dạy nghề (năm 2013).

2. Môn học Lập trình C đòi hỏi kiến thức nền tảng gì trước khi học?

Sinh viên cần hoàn thành các môn học chung và các môn học cơ sở chuyên ngành trong chương trình đào tạo nghề Quản trị mạng, bao gồm kiến thức tin học cơ bản và kỹ năng vận hành máy tính.

3. Giáo trình này có cấu trúc thời lượng như thế nào?

Tổng thời lượng là 60 giờ, trong đó lý thuyết chiếm 30 giờ, thực hành và bài tập chiếm 27 giờ, và thời gian kiểm tra định kỳ là 3 giờ.

4. Môi trường lập trình được sử dụng trong giáo trình là gì?

Giáo trình hướng dẫn trực tiếp trên môi trường Borland C và Turbo C chạy trên hệ điều hành DOS/Windows, sử dụng tệp thực thi BC.EXE với các phím chức năng F10 (Menu), Ctrl-F9 (Biên dịch/Chạy) và Alt-F5 (Xem kết quả màn hình).

5. Giáo trình cung cấp những dạng bài tập thực hành nào?

Hệ thống bài tập trải rộng từ chuyển đổi hệ cơ số (10 sang 2, 16), giải phương trình ($ax+b=0, ax^2+bx+c=0$), tính toán hình học, xử lý chuỗi thời gian, thuật toán số nguyên tố, tính tổng chuỗi số, đến lập trình menu điều khiển và thao tác trên mảng/chuỗi.


Kết luận

Giáo trình Lập trình C (Mã môn học: MH18) cung cấp hệ thống kiến thức nền tảng về lập trình cấu trúc cho sinh viên Cao đẳng nghề Quản trị mạng. Nội dung tài liệu bao quát từ các thành phần cú pháp cơ bản, các cấu trúc điều khiển rẽ nhánh và vòng lặp, đến kỹ thuật xây dựng hàm và xử lý dữ liệu mảng/chuỗi.

Lộ trình học tập được thiết kế tuyến tính qua 6 chương, phân bổ cân bằng giữa lý thuyết và thực hành (30 giờ LT / 27 giờ TH). Để hoàn thành học phần, người học cần kết hợp nghiên cứu lý thuyết cú pháp, phân tích lưu đồ thuật toán và thực hành trực tiếp các bài tập mã nguồn trên máy tính theo danh mục tài liệu tham khảo được cung cấp tại trang 93 của giáo trình.