Tổng quan về giáo trình
Giáo trình môn học Kỹ thuật lập trình (Mã mô đun: MH13 - Lập trình căn bản) được Trường Cao đẳng Cộng đồng Đồng Tháp ban hành năm 2017, phục vụ chương trình đào tạo ngành Công nghệ thông tin trình độ Cao đẳng. Về vị trí trong chương trình, mô đun này được bố trí sau khi học sinh hoàn thành các môn học chung và trước các môn học/mô đun chuyên môn nghề, đóng vai trò là môn cơ sở bắt buộc nhằm hình thành tư duy logic lập trình và cung cấp kiến thức nền tảng cho nghề Sửa chữa lắp ráp máy tính cũng như các chuyên ngành tin học liên quan.
Mục tiêu học tập của giáo trình xác định các chuẩn đầu ra cụ thể:
- Người học hiểu rõ công dụng của ngôn ngữ lập trình, nắm vững cú pháp và chức năng của các câu lệnh chuẩn trong ngôn ngữ C.
- Phân tích và xác định chính xác nhiệm vụ xử lý của chương trình.
- Vận dụng thành thạo môi trường lập trình Borland C / Turbo C (thao tác biên tập, sử dụng thực đơn trợ giúp, bẫy lỗi và gỡ rối chương trình).
- Viết và thực thi hoàn chỉnh mã nguồn trên máy tính để giải quyết các bài toán kỹ thuật thực tế.
- Hình thành kỹ năng tiếp cận mã chương trình và loại bỏ tâm lý e ngại khi làm việc với công việc lập trình hóa.
Về cấu trúc và phương pháp tiếp cận, tài liệu có tổng thời lượng 90 giờ (28 giờ lý thuyết, 56 giờ thực hành và 6 giờ kiểm tra), được tổ chức thành 7 bài học logic từ cơ bản đến nâng cao. Nội dung tiếp cận trực tiếp từ cú pháp cơ sở, các cấu trúc điều khiển giải thuật, đến kỹ thuật phân rã module bằng hàm, xử lý mảng, chuỗi và quản lý bộ nhớ qua biến con trỏ. Điểm đặc thù của giáo trình là gắn kết chặt chẽ giữa lý thuyết cú pháp chuẩn C với các thao tác môi trường thực tế trên hệ điều hành DOS/Windows.
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 phân bố qua 7 bài học với tiến trình phát triển kiến thức tuyến tính:
- Bài 1: Tổng quan về ngôn ngữ lập trình C (Mã MH13-01 - 2 giờ Lý thuyết): Giới thiệu lịch sử phát triển của ngôn ngữ C tại phòng thí nghiệm Bell bởi Dennis Ritchie vào đầu những năm 1970, kế thừa từ ngôn ngữ BCPL của Martin Richards và ngôn ngữ B của Ken Thompson; giáo trình The C Programming Language (1978) của Brian Kernighan và Dennis Ritchie; mối liên hệ giữa C và hệ điều hành UNIX; hướng dẫn khởi động và thoát chương trình qua tệp
BC.EXE (trong thư mục BORLANDC\BIN); cách sử dụng hệ thống thông tin trợ giúp (phím F1, Ctrl-F1, Shift-F1, Alt-F1).
- Bài 2: Các thành phần cơ bản (Mã MH13-02 - 8 giờ: 2 Lý thuyết, 6 Thực hành): Hệ thống ký hiệu gồm 26 chữ cái hoa, 26 chữ cái thường, 10 chữ số và ký hiệu toán học; 32 từ khóa chuẩn Turbo C; quy tắc đặt tên định danh (độ dài mặc định tối đa 32 ký tự); 4 quy tắc viết mã nguồn; các kiểu dữ liệu cơ bản (
char, int, long, float, double); khai báo hằng (#define), biến, biểu thức, khối lệnh {} và phạm vi hoạt động của biến; các toán tử số học, toán tử quan hệ; các hàm nhập xuất chuẩn scanf(), printf(), hàm gets(), hàm fflush(stdin) và các ký tự điều khiển thoát (\n, \t, \r, \a, \b, \0).
- Bài 3: Các lệnh có cấu trúc (Mã MH13-03 - 16 giờ: 4 Lý thuyết, 10 Thực hành, 2 Kiểm tra): Cấu trúc rẽ nhánh điều kiện
if, if...else, toán tử điều kiện ?:; cấu trúc lựa chọn switch...case (dạng thiếu), switch...case...default (dạng đủ) và cấu trúc switch lồng nhau; các cấu trúc vòng lặp xác định for, vòng lặp vô định kiểm tra đầu while, vòng lặp kiểm tra cuối do...while; các câu lệnh điều khiển luồng break, continue và lệnh nhảy không điều kiện goto kèm nhãn.
- Bài 4: Hàm (Mã MH13-04 - 20 giờ: 8 Lý thuyết, 10 Thực hành, 2 Kiểm tra): Khái niệm chương trình con và hàm chính
main(); quy tắc xây dựng hàm (dòng tiêu đề, thân hàm, lệnh return); khai báo nguyên mẫu hàm (function prototype); cơ chế cấp phát bộ nhớ cho biến cục bộ; nguyên tắc truyền tham số theo giá trị (tham trị); truyền tham số theo địa chỉ (tham chiếu thông qua con trỏ và toán tử &); kỹ thuật xây dựng hàm đệ quy (ví dụ tính giai thừa $n!$).
- Bài 5: Mảng (Mã MH13-05 - 13 giờ: 4 Lý thuyết, 8 Thực hành, 1 Kiểm tra): Khai báo mảng một chiều, mảng hai chiều (ma trận); gán giá trị, truy xuất phần tử; truyền mảng làm tham số của hàm; các thuật toán sắp xếp và thao tác tính toán trên mảng.
- Bài 6: Chuỗi ký tự (Mã MH13-06 - 13 giờ: 4 Lý thuyết, 8 Thực hành, 1 Kiểm tra): Bản chất chuỗi ký tự là mảng ký tự kết thúc bằng ký tự null
\0; khai báo biến chuỗi; kỹ thuật nhập xuất chuỗi; các phép toán và hàm thao tác chuẩn trên chuỗi ký tự.
- Bài 7: Mảng và biến con trỏ (Mã MH13-07 - 18 giờ: 4 Lý thuyết, 12 Thực hành, 2 Kiểm tra): Khái niệm biến con trỏ, toán tử lấy địa chỉ
& và toán tử truy xuất ô nhớ *; mối quan hệ giữa mảng và con trỏ; cấp phát và thao tác dữ liệu thông qua con trỏ.
Kiến thức nền tảng được xây dựng
- Lý thuyết biểu diễn dữ liệu và tổ chức bộ nhớ: Giáo trình cung cấp bảng phân loại chi tiết về kích thước và miền giá trị của các kiểu dữ liệu trong môi trường 16-bit:
- Kiểu ký tự:
char (signed: -128 đến 127, unsigned: 0 đến 255, chiếm 1 byte, ánh xạ 256 ký tự bảng mã ASCII chia 3 nhóm: điều khiển, văn bản, đồ họa).
- Kiểu số nguyên:
int (-32.768 đến 32.767, 2 byte), unsigned int (0 đến 65.535, 2 byte), long (-2.147.483.648 đến 2.147.483.647, 4 byte), unsigned long (0 đến 4.294.967.295, 4 byte).
- Kiểu số phẩy động:
float ($3.4\times 10^{-38}$ đến $3.4\times 10^{+38}$, 4 byte, 7–8 chữ số có nghĩa), double ($1.7\times 10^{-308}$ đến $1.7\times 10^{+308}$, 8 byte, 15–16 chữ số có nghĩa), long double ($3.1\times 10^{-4932}$ đến $3.1\times 10^{+4932}$, 10 byte, 17–18 chữ số có nghĩa).
- Biểu diễn số nguyên ở hệ bát phân (bắt đầu bằng số
0) và hệ thập lục phân (bắt đầu bằng 0x hoặc 0X).
- Nguyên lý biểu thức và logic điều khiển: Quy tắc thứ tự ưu tiên của toán tử số học (
*, /, % ưu tiên trước +, -), toán tử quan hệ (>, >=, <, <=, ==, !=); nguyên lý đánh giá giá trị chân lý trong C (giá trị 0 quy ước là sai, giá trị khác 0 là đúng); cơ chế chuyển đổi kiểu dữ liệu tự động và ép kiểu tường minh (Tên kiểu) <Biểu thức>.
- Mô hình phạm vi và vòng đời dữ liệu: Phân định rõ phạm vi hoạt động của biến cục bộ trong từng khối lệnh
{} lồng nhau, cơ chế cấp phát bộ nhớ ngăn xếp khi gọi hàm và giải phóng vùng nhớ khi thoát khỏi hàm.
Kỹ năng phát triển
- Kỹ năng kỹ thuật (Technical skills): Sử dụng thành thạo phím tắt trong môi trường Borland C (phím
F10 kích hoạt Menu, Alt-X thoát chương trình, Ctrl-F9 biên dịch và chạy, Alt-F5 xem màn hình kết quả); thiết lập các chuỗi định dạng xuất nhập dữ liệu (%d, %f, %.2f, %c, %s, %o, %x, %e); bẫy lỗi ký tự đệm bàn phím bằng fflush(stdin).
- Kỹ năng phân tích (Analytical skills): Phân tích bài toán thực tế để thiết kế thuật toán phân nhánh hoặc lặp; phân biệt giữa cơ chế truyền tham trị và truyền tham chiếu bằng con trỏ trong việc tái sử dụng mã nguồn.
- Năng lực thực hành lập trình (Practical competencies): Cài đặt thành công các giải thuật mẫu trong giáo trình:
- Giải phương trình bậc nhất ($ax + b = 0$) và phương trình bậc hai ($ax^2 + bx + c = 0$ sử dụng hàm
sqrt từ thư viện math.h).
- Kiểm tra tính chất số học: kiểm tra số nguyên tố, số chính phương, tính tổng các chữ số lẻ.
- Tìm giá trị lớn nhất, nhỏ nhất của dãy số; đảo ngược mảng số thực; tính tích vô hướng hai vector; xử lý ma trận hai chiều.
- Hoán vị giá trị hai biến qua hàm
swap(int *u, int *v).
Phương pháp giảng dạy và học tập
Giáo trình được thiết kế theo phương pháp sư phạm tích hợp, kết hợp bài giảng lý thuyết với thực hành trực tiếp tại phòng máy:
[Tổng thời lượng: 90 giờ]
- Tiếp cận sư phạm: Giảng viên thuyết giảng các quy tắc cú pháp và cơ chế thực thi, sau đó minh họa trực tiếp bằng các đoạn mã nguồn ngắn. Tỷ lệ thực hành chiếm hơn 62% tổng thời lượng giúp người học rèn luyện phản xạ thao tác trên bàn phím và môi trường phát triển Borland C.
- Hệ thống bài tập và Case Studies: Giáo trình cung cấp các bài tập mẫu đi kèm mã nguồn hoàn chỉnh và chú thích giải thuật chi tiết:
- Bài toán chuyển đổi ký tự hoa sang thường bằng cách thao tác cộng giá trị 32 dựa trên bảng mã ASCII.
- Bài toán tìm giá trị nhỏ nhất của 4 số nguyên thông qua cấu trúc so sánh rẽ nhánh.
- Bài toán kiểm tra số chính phương bằng vòng lặp
for và phép nhân bình phương i*i == n.
- Bài toán kiểm tra số nguyên tố bằng thuật toán đếm số ước số trong đoạn $[1, n]$ hoặc lặp kiểm tra tới $\sqrt{n}$.
- Phương pháp đánh giá (Assessment): Đánh giá định kỳ được thực hiện trực tiếp sau các khối kiến thức trọng tâm với 6 giờ kiểm tra phân bổ tại Bài 3 (2 giờ), Bài 4 (2 giờ), Bài 5 (1 giờ), Bài 6 (1 giờ), và Bài 7 (2 giờ), kết hợp đánh giá khả năng viết mã đúng cú pháp và chương trình chạy ra kết quả chính xác trên máy tính.
- Hướng dẫn tự học: Người học được hướng dẫn tận dụng hệ thống tài liệu trợ giúp tích hợp sẵn trong trình soạn thảo: nhấn
F1 để mở màn hình Help tổng quát, đặt con trỏ tại tên hàm và nhấn Ctrl-F1 để xem cú pháp và thư viện chứa hàm tương ứng, nhấn Shift-F1 để tra cứu danh mục, và Alt-F1 để quay lại mục trợ giúp trước đó.
Điểm nổi bật và cập nhật
- Kế thừa nền tảng ngôn ngữ chuẩn: Nội dung bám sát tiêu chuẩn ngôn ngữ C do Dennis Ritchie và Brian Kernighan thiết lập năm 1978, đảm bảo tính chuẩn xác về mặt cú pháp và tính độc lập với kiến trúc phần cứng.
- Làm rõ bản chất lập trình hệ thống: Giáo trình giải thích rõ cơ chế hoạt động của C như một ngôn ngữ lập trình hệ thống đa năng, từng được sử dụng để xây dựng hệ điều hành UNIX, trình biên dịch (Compiler), trình thông dịch (Interpreter), trình soạn thảo (Editor) và chương trình hợp ngữ (Assembly).
- Mô tả cấu trúc bộ nhớ chi tiết: Giáo trình cung cấp số liệu định lượng về mức tiêu thụ bộ nhớ (byte) cho từng kiểu dữ liệu, sự khác biệt giữa biến có dấu và không dấu (như
char từ -128 đến 127 so với unsigned char từ 0 đến 255), cơ chế lưu trữ chuỗi ký tự kết thúc bằng byte null \0, và cơ chế địa chỉ ô nhớ bằng toán tử &.
- Khả năng tái sử dụng thư viện: Hướng dẫn người học cách xây dựng và bảo trì các thư viện hàm người dùng tự định nghĩa, tổ chức mã nguồn có cấu trúc nhằm quản lý các dự án phần mềm theo từng module độc lập.
Đối tượng sử dụng giáo trình
- Học sinh, sinh viên:
- Học sinh hệ Trung học chuyên nghiệp (THCN) và sinh viên hệ Cao đẳng ngành Công nghệ thông tin theo học mô đun MH13.
- Học viên theo học nghề Sửa chữa và lắp ráp máy tính cần trang bị tư duy giải thuật và hiểu biết về hoạt động của phần mềm ở mức hệ thống.
- Điều kiện tiên quyết (Prerequisites): Người học cần hoàn thành các môn học chung/đại cương trong khung chương trình đào tạo. Giáo trình không yêu cầu kiến thức lập trình trước đó vì nội dung được xây dựng tuần tự từ tập ký tự, từ khóa và các thao tác soạn thảo cơ bản nhất.
- Giảng viên chuyên ngành: Sử dụng làm tài liệu giảng dạy chính thức, cung cấp khung phân phối thời lượng bài giảng lý thuyết, phân bổ giờ thực hành và hệ thống bài tập thực hành mẫu cho từng bài học.
- Tài liệu tham khảo học thuật: Sinh viên bậc đại học hoặc kỹ thuật viên tin học có thể sử dụng tài liệu để củng cố nền tảng cú pháp C, kỹ thuật xử lý mảng, chuỗi và bản chất biến con trỏ trong quản lý bộ nhớ.
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 chính thức cho học sinh THCN, kỹ thuật viên tin học, sinh viên cao đẳng ngành Công nghệ thông tin và nghề Sửa chữa lắp ráp máy tính. Đồng thời, giáo trình là tài liệu tham khảo cho sinh viên bậc đại học và người tự học lập trình C căn bản.
2. Cần kiến thức nền 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 trong chương trình đào tạo nghề nghiệp. Mô đun MH13 là môn học cơ sở đầu tiên về lập trình, do đó không đòi hỏi kiến thức viết mã 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 khác là gì?
Giáo trình thiết kế theo tỷ lệ thực hành cao (56/90 giờ, chiếm 62.2%), tích hợp các chỉ dẫn thao tác môi trường Borland C / Turbo C trên nền DOS/Windows, mô tả định lượng kích thước bộ nhớ của từng kiểu dữ liệu và tập trung giải quyết các bài toán kỹ thuật thông dụng qua mã nguồn mẫu hoàn chỉnh.
4. Làm sao để tự học hiệu quả với tài liệu này?
Người học cần thực hiện tuần tự từ Bài 1 đến Bài 7; trực tiếp nhập các đoạn mã ví dụ trong giáo trình vào môi trường Borland C, nhấn Ctrl-F9 để dịch và thực thi, nhấn Alt-F5 để kiểm tra kết quả, và thường xuyên sử dụng tổ hợp phím Ctrl-F1 để tra cứu cú pháp các hàm trong thư viện stdio.h và math.h.
5. Giáo trình có những tài liệu bổ trợ nào kèm theo?
Giáo trình cung cấp sẵn bảng mã ASCII (0–255), bảng 32 từ khóa Turbo C, bảng định dạng chuỗi scanf/printf, bảng mã ký tự điều khiển thoát (escape sequences), cùng phần hướng dẫn giải chi tiết cho hệ thống bài tập thuật toán mẫu ở cuối các chương.
Kết luận
Giáo trình Kỹ thuật lập trình (Mô đun: Lập trình căn bản - MH13) của Trường Cao đẳng Cộng đồng Đồng Tháp là tài liệu đào tạo cơ sở, hệ thống hóa đầy đủ các khái niệm cốt lõi của ngôn ngữ C, từ cú pháp, kiểu dữ liệu, cấu trúc điều khiển giải thuật đến kỹ thuật hàm và biến con trỏ.
Lộ trình học tập đề xuất:
- Giai đoạn 1 (Bài 1 - Bài 2): Tiếp cận môi trường Borland C, tập ký tự, từ khóa, kiểu dữ liệu và các hàm nhập xuất cơ bản.
- Giai đoạn 2 (Bài 3): Xây dựng tư duy giải thuật thông qua cấu trúc rẽ nhánh (
if, switch) và cấu trúc lặp (for, while, do...while).
- Giai đoạn 3 (Bài 4): Module hóa chương trình bằng hàm, rèn luyện kỹ thuật truyền tham trị, tham chiếu và đệ quy.
- Giai đoạn 4 (Bài 5 - Bài 7): Xử lý dữ liệu phức hợp trên mảng, chuỗi ký tự và quản trị địa chỉ bộ nhớ bằng biến con trỏ.
Tài liệu tham khảo nền tảng được trích dẫn trong giáo trình gồm ấn bản The C Programming Language (1978) của Brian Kernighan & Dennis Ritchie cùng hệ thống thư viện chuẩn C (stdio.h, math.h).