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

Giáo Trình Lập Trình C Căn Bản do tác giả Lư Thục Oanh làm chủ biên (xuất bản tại Cần Thơ, năm 2021) là tài liệu học tập được biên soạn phục vụ học phần Lập trình căn bản (Mã môn học: MH 09). Trong chương trình đào tạo của các trường Cao đẳng và Đại học, môn học này thuộc khối kiến thức lý thuyết cơ sở nghề, được bố trí giảng dạy ngay sau khi sinh viên hoàn thành các môn học chung. Học phần giữ vai trò cung cấp kiến thức nền tảng ban đầu về tư duy lập trình và kỹ năng viết mã nguồn, tạo tiền đề tiếp thu 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 hướng tới việc trang bị cho người học năng lực:

  • Trình bày chính xác các khái niệm cốt lõi về lập trình máy tính.
  • Mô tả đầy đủ cú pháp, ngữ nghĩa và công dụng của các câu lệnh trong ngôn ngữ C.
  • Phân tích nhiệm vụ và cấu trúc của một chương trình cụ thể.
  • Vận hành thành thạo môi trường phát triển phần mềm (biên tập mã nguồn, sử dụng hệ thống menu lệnh, công cụ trợ giúp, kỹ thuật gỡ rối và bẫy lỗi).
  • Viết, biên dịch và thực thi hoàn chỉnh các chương trình trên máy tính, đồng thời tuân thủ quy trình an toàn lao động và bảo quản thiết bị học tập.

Giáo trình được tổ chức với thời lượng tổng cộng 60 giờ (gồm 30 giờ lý thuyết, 27 giờ thực hành/thảo luận/bài tập và 3 giờ kiểm tra), chia thành 5 chương tuần tự. Cách tiếp cận của tài liệu đi từ lịch sử phát triển, cấu trúc môi trường làm việc, các thành phần ngữ pháp cơ bản, cấu trúc điều khiển luồng, cho đến kỹ thuật module hóa bằng hàm và cấu trúc dữ liệu mảng. Điểm đặc sắc của tài liệu là sự kết hợp song song giữa lý thuyết cú pháp chuẩn với hướng dẫn thao tác trực tiếp trên hai môi trường lập trình phổ biến là Turbo C 3.0 và Dev C++, đi kèm hệ thống 14 bảng dữ liệu quy chuẩn và các đoạn mã nguồn minh họa chi tiế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 phân bổ qua 5 chương cụ thể như sau:

  • Chương 1: Tổng quan về ngôn ngữ C (4 giờ: 3 lý thuyết, 1 thực hành): Cung cấp lịch sử phát triển của ngôn ngữ C do Dennis Ritchie xây dựng tại phòng thí nghiệm Bell (dựa trên BCPL của Martin Richards năm 1967 và ngôn ngữ B của Ken Thompson năm 1970) trên hệ thống DEC PDP-7/PDP-11 chạy UNIX. Trình bày các đặc điểm cốt lõi của C: tính cô đọng (32 từ khóa, 40 toán tử chuẩn), tính cấu trúc, tính tương thích, tính linh động và cơ chế biên dịch từ tập tin nguồn sang tập tin đối tượng (.obj) rồi liên kết (link) thành tập tin thực thi (.exe). Hướng dẫn thao tác trên Turbo C 3.0 và Dev C++, sử dụng trình trợ giúp Help (THELP.COM, phím F1), cấu trúc hàm main(), tệp tiêu đề thư viện stdio.h, conio.h, hàm getch(), lệnh in printf() và ký tự điều khiển.
  • Chương 2: Các thành phần cơ bản (12 giờ: 6 lý thuyết, 6 thực hành): Khảo sát bộ ký tự của C, hệ thống 32 từ khóa viết thường, quy tắc đặt tên định danh (tối đa 32 ký tự, quy tắc ký hiệu Hungarian Notation), cú pháp ghi chú đơn dòng (//) và đa dòng (/* ... */). Phân loại chi tiết các kiểu dữ liệu nguyên (1 byte: char, unsigned char; 2 bytes: int, unsigned int, short int, enum; 4 bytes: long, unsigned long), kiểu số thực (4 bytes: float; 8 bytes: double; 10 bytes: long double) và kiểu void. Hướng dẫn khai báo biến toàn cục (biến ngoài), biến cục bộ (biến trong), khởi gán giá trị, hằng số (hệ 10, hệ 8 0..., hệ 16 0x..., hằng ký tự ASCII, hằng chuỗi với ký tự kết thúc \0), biểu thức hằng. Trình bày toàn diện hệ thống toán tử: số học (+, -, *, /, %, ++, --), quan hệ, logic (&&, ||, !), toán tử thao tác bit Bitwise (&, |, ^, ~, >>, <<), toán tử điều kiện ?:, toán tử con trỏ & và *, toán tử dấu phẩy ,, bảng độ ưu tiên toán tử; cơ chế chuyển đổi kiểu tự động và ép kiểu (type casting); lệnh nhập xuất chuẩn scanf() và printf().
  • Chương 3: Các lệnh có cấu trúc (20 giờ: 9 lý thuyết, 10 thực hành, 1 kiểm tra): Định nghĩa lệnh đơn, khối lệnh trong cặp dấu {} và khối lệnh lồng nhau, quy tắc tầm vực biến cục bộ/biến chung. Cấu trúc rẽ nhánh điều kiện: if - else (dạng khuyết và dạng đủ), switch - case. Cấu trúc lặp chu trình: for, while, do ... while, phân tích so sánh cơ chế hoạt động của các vòng lặp. Các câu lệnh điều khiển bước nhảy: break, continue, goto.
  • Chương 4: Hàm (12 giờ: 6 lý thuyết, 5 thực hành, 1 kiểm tra): Khái niệm chương trình con, cấu trúc định nghĩa hàm, khai báo nguyên mẫu hàm, cơ chế truyền tham số theo giá trị (truyền trị) và truyền tham số theo địa chỉ/biến (truyền biến), lệnh kết thúc hàm và trả về giá trị return, lệnh thoát chương trình exit().
  • Chương 5: Mảng (12 giờ: 6 lý thuyết, 5 thực hành, 1 kiểm tra): Khái niệm cấu trúc dữ liệu mảng, cú pháp khai báo và khởi tạo mảng một chiều, mảng nhiều chiều, địa chỉ ô nhớ của các phần tử trong mảng, kỹ thuật truyền mảng vào tham số của hàm và các giải thuật sắp xếp phần tử mảng.

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

Giáo trình hình thành cho sinh viên ba khối kiến thức nền tảng:

  1. Lý thuyết lập trình có cấu trúc (Structured Programming): Xây dựng tư duy giải thuật dựa trên các khối lệnh tuần tự, rẽ nhánh và lặp lại; hiểu rõ tính đóng gói và phạm vi hoạt động của biến trong từng khối mã nguồn.
  2. Nguyên lý biểu diễn dữ liệu và quản lý bộ nhớ: Cung cấp thông tin chuẩn về định dạng lưu trữ bit/byte của từng kiểu dữ liệu, bảng mã ASCII, các hệ số đếm (hệ 8, hệ 10, hệ 16), cơ chế chuyển đổi kiểu và kiểm soát thất thoát dữ liệu do tràn miền giá trị hoặc làm tròn số thực.
  3. Mô hình hóa chương trình: Nắm vững cấu trúc module hóa phần mềm thông qua hàm thư viện chuẩn và hàm tự định nghĩa, xử lý luồng dữ liệu vào/ra chuẩn (stdin/stdout).

Kỹ năng phát triển

  • Kỹ năng kỹ thuật: Cài đặt, thiết lập đường dẫn môi trường, soạn thảo, biên dịch (F9), thực thi (Ctrl-F9 hoặc F10), gỡ lỗi trên Turbo C và Dev C++; thao tác đúng các chuỗi định dạng (%d, %f, %s, %c, %x, %.2f).
  • Kỹ năng phân tích: Đọc hiểu và phân tích lưu đồ thuật toán; xác định điều kiện logic cho các bài toán rẽ nhánh phức tạp; lựa chọn kiểu vòng lặp tối ưu (for, while, do...while) dựa trên điều kiện bài toán.
  • Kỹ năng thực hành: Viết mã nguồn hoàn chỉnh để giải quyết các bài toán tính toán kỹ thuật (phương trình bậc hai, diện tích hình học, xử lý chuỗi ký tự, tìm số nguyên tố, sắp xếp mảng).

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 chặt chẽ giữa lý thuyết cú pháp và thực nghiệm trực tiếp trên máy tính. Cơ cấu thời lượng được thiết kế cân đối với 50% thời gian dành cho lý thuyết (30 giờ) và 50% thời gian dành cho thực hành, thảo luận và kiểm tra (30 giờ). Mỗi bài học đều tuân thủ tiến trình: trình bày cú pháp -> giải thích ngữ nghĩa -> cung cấp mã nguồn mẫu -> giải thích từng dòng lệnh -> bài tập khảo sát thực hành -> bài tập mở rộng nâng cao.

Hệ thống bài tập và case studies được xây dựng cụ thể gắn liền với từng chương:

  • Bài toán nhập xuất cơ bản: In thông tin lý lịch sinh viên ra màn hình với các định dạng căn lề, xuống dòng (\n, \t).
  • Bài toán tính toán số học: Chương trình tính chu vi, diện tích hình tròn sử dụng hằng số #define PI 3.14; chương trình thực hiện 5 phép toán cơ bản (cộng, trừ, nhân, chia, chia lấy dư) trên hai số nguyên x = 5, y = 2.
  • Bài toán điều khiển luồng: Tính nghịch đảo của số thực $a \neq 0$; tính tổng bình phương các số lẻ từ $1$ đến $n$.
  • Bài toán xử lý thuật toán: Viết hàm liệt kê các số nguyên tố nhỏ hơn $n$; giải thuật sắp xếp các phần tử trong mảng một chiều.

Quy trình thực hành trong phòng máy được chuẩn hóa thành các bước rõ ràng:

  1. Mở phần mềm (Turbo C/Dev C++).
  2. Khai báo thư viện tiêu đề và định nghĩa hàm main().
  3. Nhập mã nguồn, lưu tệp (F2).
  4. Biên dịch kiểm tra lỗi cú pháp (F9).
  5. Chạy chương trình (Ctrl-F9 hoặc F10), ghi nhận kết quả vào bảng theo dõi gồm các tiêu chí: thời gian thực hiện, số lỗi phát sinh và kết quả hiển thị.

Phương pháp đánh giá kết quả học tập được xác định cụ thể ở cuối mỗi chương theo 3 tiêu chí:

  • Kiến thức: Đánh giá qua bài kiểm tra viết, câu hỏi trắc nghiệm hoặc vấn đáp.
  • Kỹ năng: Đánh giá khả năng trực tiếp viết code, biên dịch, phát hiện và sửa lỗi trên máy tính.
  • Năng lực tự chủ và trách nhiệm: Đánh giá tính tỉ mỉ, cẩn thận, chính xác và ngăn nắp trong quá trình lập trình.

Người học được hướng dẫn tự học thông qua việc tra cứu hệ thống tệp tin trợ giúp có sẵn của môi trường Turbo C (nhấn phím F1 hoặc gọi công cụ thường trú THELP.COM từ dấu nhắc MS-DOS) nhằm tự tra cứu cú pháp hàm và cấu trúc toán tử.


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

  1. Tích hợp đồng thời hai môi trường phát triển phần mềm: Giáo trình cung cấp chỉ dẫn kỹ thuật chi tiết cho cả môi trường Turbo C 3.0 (chạy trên nền MS-DOS/Windows) và môi trường Dev C++ hiện đại. Việc này giúp sinh viên hiểu rõ cả cơ chế quản trị môi trường truyền thống (menu Options, thiết lập thư mục Include/Library, tệp THELP.COM) lẫn thao tác trên IDE đồ họa hiện đại.
  2. Hệ thống bảng số liệu và quy chuẩn kỹ thuật toàn diện: Toàn bộ kiến thức lập trình được trực quan hóa qua 14 bảng biểu tra cứu, bao gồm:
    • Bảng 1: Bộ ký tự điều khiển (\a, \b, \f, \n, \r, \t, \v, \\, \', \", \?, \ddd, \xHHH).
    • Bảng 2, 3, 4, 5: Kích thước ô nhớ và miền giá trị (domain) chi tiết của các kiểu số nguyên (1 byte, 2 bytes, 4 bytes) và kiểu số thực (4 bytes, 8 bytes, 10 bytes).
    • Bảng 6: Bảng so sánh sự khác biệt về cú pháp khai báo biến giữa Turbo C và ngôn ngữ Pascal.
    • Bảng 7, 8, 9, 10, 11, 12: Bảng toán tử số học, quan hệ, logic, toán tử bitwise, bảng chân trị và bảng độ ưu tiên toán tử từ mức cao nhất đến thấp nhất.
    • Bảng 13: Bảng mã chuẩn ASCII chuyển đổi giữa các hệ đếm (hệ 8, hệ 10, hệ 16).
  3. Cung cấp dẫn chứng lịch sử và liên kết hệ thống chuẩn xác: Giáo trình trình bày tư liệu lịch sử có hình ảnh minh họa về Dennis Ritchie, Ken Thompson và Brian Kernighan cùng hệ thống DEC PDP-11 năm 1972, giải thích mối liên hệ giữa C và hệ điều hành UNIX.
  4. Hệ thống bài tập mẫu đi kèm phân tích dòng lệnh: Mọi ví dụ trong sách đều có phần phân tích chi tiết ý nghĩa từng câu lệnh, cảnh báo các lỗi cú pháp thường gặp (như đặt khai báo biến sai vị trí sau câu lệnh thực thi, quên dấu & trong hàm scanf, hoặc nhầm lẫn giữa toán tử tiền tố ++x và hậu tố x++).

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

  • Sinh viên mục tiêu: Sinh viên năm thứ nhất hoặc năm thứ hai các hệ đào tạo Cao đẳng, Đại học thuộc các ngành Công nghệ thông tin, Kỹ thuật phần mềm, Hệ thống thông tin, Mạng máy tính, Điện tử - Viễn thông và các ngành kỹ thuật có học phần lập trình đại cương.
  • Yêu cầu kiến thức tiên quyết (Prerequisites): Sinh viên cần hoàn thành các môn học chung/đại cương, nắm được kiến thức tin học cơ sở (cấu trúc máy tính, hệ điều hành Windows/DOS, quản lý tệp tin và thư mục) cùng kiến thức toán học cơ bản về logic mệnh đề và số học.
  • Giảng viên và triển khai giảng dạy: Giảng viên sử dụng giáo trình làm khung đề cương chi tiết cho học phần MH 09 với phân bổ 60 giờ học. Tài liệu cung cấp sẵn khung mục tiêu đầu ra, nội dung bài giảng lý thuyết, hệ thống bài tập thực hành theo từng bước và tiêu chuẩn đánh giá kết quả học tập cho từng chương.
  • Người tự học và tham khảo: Phù hợp làm tài liệu tham khảo cho học sinh, kỹ thuật viên hoặc người bắt đầu tiếp cận lập trình cần một tài liệu có hướng dẫn thao tác cơ bản từ giao diện, cú pháp đến các bài tập giải thuật mẫu.

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

1. Giáo trình này phù hợp với đối tượng người học nào?

Giáo trình được thiết kế chuyên biệt cho sinh viên các trường Cao đẳng, Đại học kỹ thuật bắt đầu học môn Lập trình căn bản (MH 09), đồng thời thích hợp cho người tự học cần tài liệu hướng dẫn chi tiết từ bước cài đặt môi trường đến viết thuật toán.

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

Người học chỉ cần hoàn thành các môn học đại cương chung, có kỹ năng sử dụng máy tính cơ bản (thao tác tệp, thư mục, sử dụng bàn phím) và hiểu các phép toán số học, logic căn bản. Giáo trình xây dựng toàn bộ khái niệm lập trình từ mức độ nhập môn.

3. Giáo trình có điểm gì khác biệt về mặt cấu trúc tài liệu?

Tài liệu tích hợp song song cả hướng dẫn môi trường Turbo C 3.0 và Dev C++, chuẩn hóa hệ thống 32 từ khóa, phân định ranh giới bộ nhớ của các kiểu dữ liệu từ 1 đến 10 bytes qua 14 bảng kỹ thuật, đồng thời có phiếu theo dõi thực hành phòng máy và tiêu chí đánh giá chuẩn cho từng chương.

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

Người học nên đọc lý thuyết cú pháp, tự gõ lại toàn bộ các đoạn mã nguồn mẫu trong sách vào phần mềm (không sao chép), quan sát kết quả hiển thị, hoàn thành bảng khảo sát thực hành và giải quyết các bài tập mở rộng ở cuối mỗi chương; kết hợp tra cứu lệnh bằng phím F1 hoặc công cụ THELP.COM.

5. Tài liệu có cung cấp các bảng tra cứu bổ trợ không?

Có. Giáo trình cung cấp bảng tra cứu toàn diện gồm: bảng mã ASCII đối chiếu 3 hệ đếm (hệ 8, hệ 10, hệ 16), bảng các ký tự điều khiển ngắt dòng/tab, bảng các từ khóa chuẩn của C, bảng độ ưu tiên toán tử và bảng phân loại phạm vi biến.


Kết luận

Giáo Trình Lập Trình C Căn Bản (Mã môn học: MH 09) của chủ biên Lư Thục Oanh cung cấp khung tri thức học thuật hoàn chỉnh cho học phần cơ sở lập trình. Tài liệu chuẩn hóa cấu trúc đào tạo 60 giờ thông qua 5 chương học cốt lõi: Tổng quan ngôn ngữ C, Các thành phần cơ bản, Các lệnh có cấu trúc, Hàm và Mảng. Lộ trình học tập được định hình rõ ràng từ việc nắm vững môi trường và cú pháp căn bản, kiểm soát luồng điều khiển, module hóa thuật toán cho đến quản trị dữ liệu mảng. Giáo trình đóng vai trò là tài liệu đào tạo chính thức, trang bị đầy đủ kiến thức và kỹ năng thực hành phục vụ cho các học phần lập trình nâng cao trong chương trình đào tạo cao đẳng và đại học.