Tổng quan về giáo trình
Giáo trình môn học Lập trình căn bản (Mã số: MH 13) là tài liệu đào tạo chính thức do Khoa Công nghệ Thông tin và Ngoại ngữ thuộc Trường Cao đẳng Cơ điện Xây dựng Việt Xô (Bộ Nông nghiệp và Phát triển Nông thôn) ban hành năm 2018, với sự chủ biên của ThS. Nguyễn Bá Quân. Trong khung chương trình đào tạo nghề Quản trị mạng trình độ Trung cấp, môn học giữ vị trí là học phần cơ sở nghề cốt lõi, được bố trí giảng dạy ngay sau khi người học đã hoàn thành khối kiến thức chung và các môn học cơ sở chuyên ngành.
Về mục tiêu đào tạo, giáo trình trang bị cho học sinh hệ thống lý thuyết về ngôn ngữ lập trình C, bao gồm: cú pháp câu lệnh, các kiểu dữ liệu cơ bản, cấu trúc giải thuật, thiết kế hàm, và kiểu dữ liệu có cấu trúc. Về mặt kỹ năng, người học có khả năng phân tích nhiệm vụ yêu cầu, hiện thực hóa giải thuật bằng lưu đồ, viết mã nguồn, tổ chức biên dịch và gỡ lỗi các chương trình trên máy tính bằng môi trường Borland C/Turbo C. Đồng thời, giáo trình rèn luyện tính cẩn cù, chủ động và ý thức an toàn lao động trong môi trường thực hành máy tính.
Chương trình được thiết kế với tổng thời lượng 60 giờ, phân bổ cụ thể thành: 29 giờ lý thuyết, 27 giờ thực hành/thảo luận/bài tập và 4 giờ kiểm tra định kỳ. Nội dung giáo trình được tiếp cận theo logic tuyến tính từ cơ bản đến nâng cao qua 6 chương:
- Chương 1: Giới thiệu về ngôn ngữ C (1 giờ)
- Chương 2: Các thành phần trong ngôn ngữ C (7 giờ)
- Chương 3: Cấu trúc rẽ nhánh có điều kiện (12 giờ)
- Chương 4: Cấu trúc vòng lặp (15 giờ)
- Chương 5: Hàm (10 giờ)
- Chương 6: Mảng (15 giờ)
Điểm đặc thù của giáo trình nằm ở việc kết hợp chặt chẽ giữa cú pháp ngôn ngữ với mô hình lưu đồ thuật toán và giải thích chi tiết cơ chế bộ nhớ, tạo nền tảng trực tiếp để tiếp thu các môn học chuyên sâu trong chương trình Quản trị mạng.
Nội dung kiến thức cốt lõi
Các chương/chủ đề chính
Cấu trúc nội dung 6 chương được phân cấp khoa học theo quy trình phát triển tư duy lập trình cấu trúc:
[Chương 1: Môi trường & Lịch sử C]
[Chương 2: Cú pháp, Biến & Kiểu dữ liệu]
[Chương 3: Cấu trúc rẽ nhánh (if, switch)]
[Chương 4: Cấu trúc lặp (for, while, do-while)]
[Chương 5: Hàm & Cơ chế truyền con trỏ/tham chiếu]
[Chương 6: Cấu trúc dữ liệu mảng (1 chiều, 2 chiều)]
- Chương 1: Giới thiệu về ngôn ngữ C (Mã: MH13-01): Trình bày lịch sử phát triển của ngôn ngữ C bắt nguồn từ BCPL (Martin Richards, 1967) và ngôn ngữ B (Ken Thompson, 1970) cho đến công trình của Dennis Ritchie tại Bell Labs (cài đặt trên hệ điều hành UNIX máy DEC PDP-11), ấn bản chuẩn của Kernighan & Ritchie (1978) và sự hình thành chuẩn ANSI C. Chương này khái quát 5 đặc tính kỹ thuật của C: tính cô đọng (32 từ khóa, 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 tạo file thực thi (
.exe). Ngoài ra, chương hướng dẫn thao tác trên trình soạn thảo Borland C/Turbo C với các phím chức năng cơ bản như Alt + X (thoát), Ctrl + F9 (biên dịch và chạy), Alt + F5 (xem kết quả).
- Chương 2: Các thành phần cơ bản trong ngôn ngữ C (Mã: MH13-02): Giới thiệu bộ chữ viết, danh mục từ khóa hệ thống (như
int, float, struct, union, void, volatile...), quy tắc đặt tên định danh (tối đa 32 ký tự, không bắt đầu bằng số, phân biệt hoa/thường). Phân định các kiểu dữ liệu nguyên và thực:
int: 2 byte, phạm vi $-32768$ đến $32767$
unsigned int: 2 byte, phạm vi $0$ đến $65535$
long: 4 byte, phạm vi $-2147483648$ đến $2147483647$
unsigned long: 4 byte, phạm vi $0$ đến $4294967295$
float: 4 byte, độ chính xác 7–8 chữ số có nghĩa
double: 8 byte, độ chính xác 15–16 chữ số có nghĩa
long double: 10 byte, độ chính xác 17–18 chữ số có nghĩa
Chương 2 cũng trình bày chi tiết bảng thứ tự ưu tiên của 15 nhóm toán tử (số học, quan hệ, logic, tăng giảm ++/--, gán phức hợp), cấu trúc tệp mã nguồn C (tiền xử lý #include, định nghĩa kiểu typedef, khai báo biến toàn cục, hàm main()), cùng các chỉ thị nhập/xuất chuẩn có định dạng printf() và scanf() kèm hệ thống mã chuyển đổi định dạng (%d, %f, %c, %s, %x, %o, %ld...) và ký tự điều khiển (\n, \t, \r, \a...).
- Chương 3: Cấu trúc rẽ nhánh có điều kiện (Mã: MH13-03): Định nghĩa về câu lệnh đơn và khối lệnh
{}. Cung cấp cú pháp và lưu đồ giải thuật cho các dạng điều kiện: if thiếu, if...else đủ, cấu trúc đa nhánh else if, cấu trúc if lồng nhau, cùng cấu trúc chọn lựa switch...case (dạng thiếu, dạng đủ có default, và cấu trúc switch lồng nhau).
- Chương 4: Cấu trúc vòng lặp (Mã: MH13-04): Trình bày cú pháp và cơ chế vận hành của 3 cấu trúc lặp cơ bản:
for (khởi tạo, điều kiện, bước nhảy), while (kiểm tra điều kiện trước) và do...while (kiểm tra điều kiện sau). Phân tích chức năng ngắt và chuyển nhánh của lệnh break và continue, giải pháp tổ chức vòng lặp lồng nhau, cùng bảng so sánh số lần thực hiện tối thiểu giữa while (0 lần) và do...while (1 lần).
- Chương 5: Hàm (Mã: MH13-05): Cung cấp khái niệm module hóa chương trình con, phân biệt hàm chuẩn thư viện (
stdio.h, conio.h, math.h, alloc.h, io.h, graphics.h) và hàm người dùng tự định nghĩa. Hướng dẫn khai báo nguyên mẫu hàm (prototype), xây dựng thân hàm, phân tích phạm vi biến (toàn cục và cục bộ), phân biệt rõ hai cơ chế truyền tham số: truyền tham trị (pass by value) và truyền tham biến (pass by reference) thông qua con trỏ và toán tử địa chỉ &.
- Chương 6: Kiểu dữ liệu mảng trong C: Thiết lập kiến thức về kiểu dữ liệu có cấu trúc thông qua mảng một chiều và mảng hai chiều, bao gồm cách thức khai báo, cấp phát bộ nhớ, các thao tác khởi tạo, nhập/xuất dữ liệu và xử lý các thuật toán cơ bản trên mảng.
Kiến thức nền tảng được xây dựng
Giáo trình xây dựng nền tảng khoa học máy tính thông qua:
- Lý thuyết ngôn ngữ lập trình cấu trúc: Khái niệm biên dịch (compilation) từ mã nguồn thành tệp đối tượng (
object) và liên kết (linker) tạo tệp thực thi.
- Biểu diễn giải thuật: Sử dụng lưu đồ thuật toán (flowchart) chuẩn hóa để mô hình hóa tiến trình điều khiển trước khi lập trình.
- Mô hình tổ chức bộ nhớ: Khái niệm ô nhớ, kích thước byte của từng kiểu dữ liệu, cơ chế cấp phát biến trên Stack đối với biến cục bộ và vùng dữ liệu toàn cục, cùng nguyên lý địa chỉ ô nhớ phục vụ thao tác con trỏ.
Kỹ năng phát triển
- Kỹ năng kỹ thuật (Technical skills): Viết mã nguồn đúng chuẩn ngữ pháp C; sử dụng thành thạo môi trường Borland C/Turbo C; khai báo cấu trúc dữ liệu mảng, hàm, toán tử logic phức hợp.
- Kỹ năng phân tích (Analytical skills): Phân rã bài toán lớn thành các module hàm độc lập; đánh giá logic điều kiện phân nhánh; phân tích sự biến đổi của dữ liệu qua từng bước lặp.
- Kỹ năng thực hành giải thuật (Practical competencies): Hiện thực hóa các thuật toán kinh điển như giải phương trình bậc nhất, phương trình bậc hai, xác định số nguyên tố, tính lũy thừa, tính tổng chuỗi hữu hạn ($S = \sum \frac{1}{n}$, $S = \sum i^2$), tính giai thừa ($n!$), tìm ước số chung lớn nhất (USCLN), bội số chung nhỏ nhất (BSCNN), chuyển đổi cơ số (hệ 10 sang hệ 2, hệ 16) và xây dựng hệ thống menu phân cấp điều khiển bằng bàn phím.
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 diễn giải lý thuyết có cấu trúc và thực hành phản xạ trực tiếp trên máy tính. Tỷ lệ phân bổ thời gian giữa lý thuyết (29 giờ) và thực hành/bài tập (27 giờ) xấp xỉ 1:1, bảo đảm học sinh tiếp cận kiến thức lý thuyết đi đôi với kiểm chứng mã nguồn.
Tiến trình sư phạm trong mỗi chương được thiết kế nhất quán qua 5 bước:
[1. Khái niệm & Cú pháp]
[2. Mô hình hóa Lưu đồ thuật toán]
[3. Mã nguồn ví dụ mẫu]
[4. Phân tích từng dòng lệnh (Line-by-line tracing)]
[5. Bài tập thực hành tự giải]
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 các bài toán kỹ thuật:
- Bài tập số học và thuật toán: Tính toán diện tích, thể tích hình cầu ($S = 4\pi R^2, V = \frac{4}{3}\pi R^3$); xử lý dữ liệu thời gian chuyển đổi từ giây sang định dạng
hh:mm:ss; kiểm tra tính chất số nguyên tố; hoán vị giá trị hai biến qua con trỏ.
- Bài tập xử lý logic điều khiển: Xây dựng hệ thống lựa chọn chức năng thông qua menu lồng nhau; thuật toán xử lý ngày/tháng/năm và năm nhuận; thuật toán mô phỏng trò chơi đối kháng logic (One-Two-Three).
- Phương pháp đánh giá: Quá trình đánh giá được thực hiện qua 4 bài kiểm tra định kỳ phân bổ vào cuối các Chương 2, 3, 4, 5 và 6, kết hợp giữa việc kiểm tra kiến thức cú pháp và khả năng viết code giải quyết thuật toán trong thời gian quy định.
- Hướng dẫn tự học: Giáo trình định hướng người học tự cài đặt và thiết lập đường dẫn môi trường biên dịch (lệnh
PATH trong DOS hoặc thao tác trên Windows), tự theo dõi kết quả thực thi qua màn hình output (Alt + F5), rèn luyện thói quen đặt chú thích mã nguồn (// hoặc /* */) và thụt đầu dòng (indentation) để kiểm soát cấu trúc khối lệnh.
Điểm nổi bật và cập nhật
Nội dung giáo trình phản ánh các đặc điểm kỹ thuật và cập nhật có hệ thống:
- Bám sát chuẩn ANSI C và môi trường thực nghiệm kinh điển: Giáo trình tích hợp các quy chuẩn chuẩn hóa của ngôn ngữ C, giải thích chi tiết bảng 32 từ khóa chuẩn và 40 toán tử, giúp người học làm quen với môi trường lập trình không phụ thuộc vào các giao diện trừu tượng hóa bậc cao.
- Hệ thống hóa trực quan các tham số kỹ thuật: Toàn bộ thông số về kích thước bộ nhớ, phạm vi biểu diễn của các kiểu dữ liệu nguyên và thực, cũng như 15 cấp độ ưu tiên toán tử đều được trình bày dưới dạng bảng đối chiếu rõ ràng kèm quy tắc kết hợp (từ trái qua phải hoặc từ phải qua trái).
- Phân định rõ ràng cơ chế bộ nhớ trong truyền tham số: Điểm nhấn sư phạm của giáo trình là làm rõ sự khác biệt giữa truyền tham trị (sao chép giá trị tạo biến cục bộ mới) và truyền tham biến (sử dụng con trỏ trỏ tới địa chỉ ô nhớ gốc
*a, *b cùng toán tử & khi gọi hàm). Cách tiếp cận này giúp học viên trung cấp nắm vững bản chất quản lý bộ nhớ trong khoa học máy tính.
- Tích hợp ứng dụng kỹ thuật và hệ thống: Các ví dụ mã nguồn minh họa rõ ràng cách sử dụng các thư viện chuẩn như
stdio.h (nhập xuất chuẩn), conio.h (điều khiển màn hình console với clrscr(), getch()), math.h (tính toán toán học sqrt(), pow()), giúp học sinh quản trị mạng làm quen với tư duy lập trình hệ thống ở tầng thấp.
Đối tượng sử dụng giáo trình
Giáo trình được biên soạn phục vụ các nhóm đối tượng cụ thể trong hệ thống giáo dục nghề nghiệp:
- Học sinh, sinh viên: Đối tượng chính là học sinh trình độ Trung cấp nghề Quản trị mạng tại các trường cao đẳng, trung cấp nghề. Môn học cũng phù hợp làm tài liệu cơ sở cho sinh viên các ngành Công nghệ thông tin, Kỹ thuật phần mềm, Hệ thống thông tin và Tự động hóa ở giai đoạn nhập môn lập trình.
- Đ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 tin học đại cương, nắm vững các thao tác sử dụng hệ điều hành (thao tác tệp tin, thư mục, thực thi dòng lệnh trong môi trường DOS/Windows) và có kiến thức toán học phổ thông căn bản về đại số và hình học.
- Giảng viên chuyên ngành: Tài liệu đóng vai trò là khung chương trình chuẩn và đề cương bài giảng chi tiết 60 giờ. Giảng viên có thể sử dụng trực tiếp cấu trúc phân bổ thời gian, hệ thống ví dụ phân tích mã nguồn và ngân hàng bài tập thực hành theo từng chương để thiết kế giáo án lý thuyết và phiếu bài tập thực hành tại phòng máy.
- Người tự học và tham khảo: Tài liệu là nguồn tham khảo kỹ thuật hữu ích cho người học bắt đầu tiếp cận tư duy giải thuật, cấu trúc điều khiển và cơ chế vận hành của ngôn ngữ C từ nền tảng.
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 chuẩn hóa cho học sinh, sinh viên hệ Trung cấp nghề Quản trị mạng, đồng thời phù hợp với người học các ngành kỹ thuật máy tính cần xây dựng nền tảng về tư duy lập trình và cấu trúc dữ liệu cơ bản.
2. Cần kiến thức nền nào trước khi bắt đầu môn học?
Người học chỉ cần nắm vững kiến thức tin học cơ bản (thao tác quản lý tệp, thư mục, sử dụng bàn phím, giao diện dòng lệnh DOS hoặc Windows) cùng các khái niệm toán học phổ thông (phép chia lấy dư, giải phương trình, logic đúng/sai).
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 khác là gì?
Giáo trình phân rã chi tiết từng dòng lệnh trong các đoạn code mẫu, giải thích rõ cơ chế cấp phát bộ nhớ (kích thước byte, con trỏ và địa chỉ ô nhớ) và cung cấp lưu đồ thuật toán cụ thể cho từng cấu trúc điều khiển, giúp người học trung cấp nghề dễ dàng chuyển hóa từ sơ đồ tư duy sang mã nguồn thực thi.
4. Làm thế nào để tự học giáo trình này đạt hiệu quả cao?
Người học nên tuân thủ quy trình: đọc hiểu cú pháp lý thuyết $\rightarrow$ vẽ lại lưu đồ thuật toán $\rightarrow$ tự gõ mã nguồn trên môi trường Borland C/Turbo C $\rightarrow$ biên dịch (Ctrl + F9), phân tích lỗi ngữ pháp nếu có $\rightarrow$ hoàn thành toàn bộ bài tập thực hành ở cuối mỗi chương.
5. Giáo trình giới thiệu những thư viện hỗ trợ nào trong ngôn ngữ C?
Giáo trình phân tích công dụng và cách liên kết các tệp tiêu đề (header files) chuẩn, bao gồm:
stdio.h: Nhập/xuất chuẩn (printf, scanf, fopen, fclose...)
conio.h: Thao tác console DOS (clrscr, getch, cputs...)
math.h: Hàm toán học (abs, sqrt, log...)
alloc.h: Quản lý bộ nhớ động (malloc, calloc, free...)
io.h: Nhập/xuất cấp thấp (open, read, write...)
graphics.h: Thư viện xử lý đồ họa
Kết luận
Giáo trình Lập trình căn bản (MH 13) của Trường Cao đẳng Cơ điện Xây dựng Việt Xô cung cấp hệ thống kiến thức nền tảng hoàn chỉnh về phương pháp lập trình cấu trúc thông qua ngôn ngữ C. Giá trị cốt lõi của tài liệu nằm ở tính chuẩn mực về cú pháp, sự cân bằng giữa 29 giờ lý thuyết và 27 giờ thực hành, cùng phương pháp tiếp cận trực quan thông qua lưu đồ thuật toán và phân tích địa chỉ bộ nhớ.
Lộ trình học tập đề xuất cho người học là tiếp cận tuần tự qua 6 chương từ thiết lập môi trường, nắm vững kiểu dữ liệu và toán tử, làm chủ cấu trúc rẽ nhánh và vòng lặp, đến việc module hóa chương trình bằng hàm, con trỏ và tổ chức dữ liệu dạng mảng. Để hoàn thiện kỹ năng, người học nên kết hợp thực hành liên tục trên các trình biên dịch C tiêu chuẩn và tra cứu hệ thống hàm hỗ trợ trong các thư viện chuẩn của ngôn ngữ C.