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

Giáo trình Lập trình căn bản (Mã môn học: MH 11) là tài liệu đào tạo chuyên môn bắt buộc trong chương trình đào tạo nghề Kỹ thuật sửa chữa, lắp ráp máy tính ở trình độ Cao đẳng. Giáo trình được biên soạn bởi tập thể tác giả gồm Đặng Minh Ngọc (Chủ biên), Lê Trọng Hưng và Nguyễn Tuấn Hải, do Trường Cao đẳng Nghề Việt Nam – Hàn Quốc thành phố Hà Nội ban hành và lưu hành nội bộ vào năm 2021.

Môn học: Lập trình căn bản (MH 11)

Về vị trí trong khung đào tạo, môn học được bố trí giảng dạy sau khi người học hoàn thành các môn học chung và trước khi bước vào các môn học hoặc mô-đun chuyên môn nghề. Tổng thời lượng toàn khóa là 75 giờ, phân bổ thành 30 giờ lý thuyết, 40 giờ thực hành/thảo luận/thí nghiệm và 5 giờ kiểm tra định kỳ.

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:

  • Kiến thức: Hiểu rõ công dụng của ngôn ngữ lập trình C, cú pháp và nguyên lý hoạt động của các câu lệnh; có khả năng phân tích yêu cầu bài toán để xác định nhiệm vụ chương trình.
  • Kỹ năng: Sử dụng thành thạo môi trường lập trình Borland C / Turbo C, bao gồm các thao tác soạn thảo mã nguồn, biên dịch, bẫy lỗi, gỡ rối (debugging) và thực thi chương trình trên máy tính.
  • Năng lực tự chủ và trách nhiệm: Hình thành tư duy logic lập trình, tính cẩn trọng khi thao tác mã nguồn và khả năng tiếp cận các hệ thống được tin học hóa.

Cấu trúc tài liệu được thiết kế thành 7 bài học logic từ cơ bản đến nâng cao. Điểm đặc thù của giáo trình là bám sát mô hình đào tạo nghề thực hành, tích hợp các ví dụ giải thuật toán học cụ thể và quy trình thao tác trực tiếp trên môi trường dòng lệnh DOS/Windows.


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

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

Nội dung toàn bộ tài liệu gồm 7 bài học phân bổ chi tiết như sau:

  • Bài 1: Tổng quan về ngôn ngữ lập trình C (4 giờ: 3 LT, 1 TH/KT)
    Trình bày lịch sử phát triển của ngôn ngữ C từ phòng thí nghiệm Bell (Dennis Ritchie, Ken Thompson, tiền thân từ BCPL của Martin Richards và ngôn ngữ B) gắn liền với hệ điều hành UNIX. Cung cấp hướng dẫn kỹ thuật khởi động tệp BC.EXE qua dấu nhắc DOS hoặc Windows Run, quy trình nạp tệp .CPP, cách thoát phần mềm (Alt-X, F10), cùng hệ thống phím tắt tra cứu trợ giúp (F1, Ctrl-F1, Shift-F1, Alt-F1).
  • Bài 2: Các thành phần cơ bản (7 giờ: 2 LT, 5 TH)
    Hệ thống hóa bộ ký tự chuẩn (chữ cái, chữ số, ký hiệu toán học, dấu gạch nối _), bảng 32 từ khóa Turbo C (int, float, char, double, struct, sizeof, void, return...). Giới thiệu quy tắc đặt tên biến (độ dài tối đa 32 ký tự, không bắt đầu bằng số, phân biệt hoa - thường). Định nghĩa các kiểu dữ liệu cơ sở: char (1 byte, mã ASCII 0–255), số nguyên int/long (2 đến 4 byte), số thực float/double (4 đến 8 byte). Trình bày cú pháp khai báo hằng (#define, hằng hệ 8, hệ 16, ký tự thoát escape \n, \t, \a, \0), biểu thức toán học/quan hệ, câu lệnh gán, lệnh nhập dữ liệu scanf() / gets(), lệnh xuất màn hình printf(), hàm xóa bộ nhớ đệm fflush(stdin), cùng thao tác biên dịch thực thi (Ctrl-F9, Alt-F5).
  • Bài 3: Các lệnh có cấu trúc (14 giờ: 3 LT, 10 TH, 1 KT)
    Trình bày cú pháp và bảng chân trị của khối rẽ nhánh điều kiện if, if...else lồng nhau, toán tử điều kiện ba ngôi ? :, cấu trúc lựa chọn switch...case...default. Cung cấp cú pháp 3 dạng vòng lặp: for (lặp xác định), while (lặp kiểm tra đầu chu trình), do...while (lặp kiểm tra cuối chu trình). Hướng dẫn kỹ thuật can thiệp chu trình bằng các lệnh break, continue và toán tử nhảy vô điều kiện goto kèm nhãn (label).
  • Bài 4: Hàm (17 giờ: 8 LT, 9 TH)
    Định nghĩa cấu trúc module chương trình con, quy tắc xây dựng nguyên mẫu hàm (prototype), định nghĩa thân hàm, phạm vi hoạt động của biến (biến cục bộ trong khối lệnh { } và biến toàn cục), các cơ chế truyền tham số cho hàm, câu lệnh trả về kết quả return và hàm kết thúc exit().
  • Bài 5: Mảng (10 giờ: 4 LT, 5 TH, 1 KT)
    Cung cấp khái niệm mảng một chiều, mảng hai chiều (ma trận), cú pháp khai báo mảng, cấp phát ô nhớ liên tục, kỹ thuật truy xuất phần tử qua chỉ số, cách gán giá trị khởi tạo, kỹ thuật truyền mảng vào hàm và các thuật toán sắp xếp mảng cơ bản.
  • Bài 6: Chuỗi ký tự (10 giờ: 3 LT, 6 TH, 1 KT)
    Khái niệm mảng ký tự kết thúc bằng ký tự rỗng \0, quy tắc khai báo biến chuỗi, kỹ thuật nhập xuất chuỗi an toàn với khoảng trắng qua gets() / scanf("%s"), cùng các phép toán và hàm xử lý chuỗi trong thư viện chuẩn.
  • Bài 7: Mảng và biến con trỏ (12 giờ: 6 LT, 4 TH, 2 KT)
    Bản chất địa chỉ ô nhớ, toán tử lấy địa chỉ &, toán tử giải tham chiếu *, cú pháp khai báo biến con trỏ, mối quan hệ tương đương giữa biến con trỏ và mảng, cùng các thao tác số học trên con trỏ để truy xuất dữ liệu bộ nhớ trực tiếp.

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

Lĩnh vực nền tảng Nội dung lý thuyết cốt lõi trong giáo trình
Hệ thống dữ liệu Bảng mã ASCII (0–255), biểu diễn số nguyên hệ bát phân (hệ 8) và thập lục phân (hệ 16), miền giá trị và dung lượng lưu trữ của các kiểu char, int, long, float, double.
Giải thuật điều khiển Cơ chế rẽ nhánh logic, cơ chế lặp có điều kiện, quy tắc ghép cặp if-else gần nhất, quy tắc ngắt chu trình sâu nhất khi gặp break.
Quản lý bộ nhớ Tầm vực biến theo khối lệnh { }, cơ chế cấp phát bộ nhớ tự động khi vào khối và giải phóng khi ra khỏi khối, cấu trúc ô nhớ liên tiếp của mảng và cơ chế định vị địa chỉ con trỏ.

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical skills): Cài đặt cấu hình đường dẫn thư mục BORLANDC\BIN, biên tập mã nguồn C, sử dụng bảng phím tắt quản trị môi trường (F10, Alt-X, Ctrl-F9, Alt-F5), áp dụng các chỉ thị tiền xử lý #include, #define.
  • Kỹ năng phân tích (Analytical skills): Chuyển đổi mô hình bài toán thực tế sang thuật toán máy tính (như xác định năm nhuận bằng phép toán modulo %, giải phương trình bậc nhất $ax+b=0$, biện luận biệt thức $\Delta = b^2 - 4ac$ của phương trình bậc hai, kiểm tra số nguyên tố, số chính phương).
  • Kỹ năng thực hành (Practical competencies): Xử lý định dạng dữ liệu vào/ra với chuỗi đặc tả %d, %f, %c, %s, %o, %x; kỹ thuật làm tròn số thập phân (%.2f); quản lý vùng đệm bàn phím; xử lý mảng và ma trận hai chiều.

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

Phân bổ thời lượng môn học (MH 11)

Giáo trình áp dụng phương pháp sư phạm định hướng thực hành nghề nghiệp. Tổng thời lượng 75 giờ được bố trí ưu tiên cho thực hành trên máy (40 giờ, chiếm hơn 53%), kết hợp 30 giờ lý thuyết và 5 giờ kiểm tra. Lý thuyết được thiết kế ngắn gọn, đi thẳng vào cú pháp và kèm theo mã nguồn minh họa để người học thử nghiệm trực tiếp.

Hệ thống bài tập và bài toán mẫu trong giáo trình bao gồm:

  • Xử lý ký tự và chuỗi: Chuyển đổi ký tự hoa sang thường dựa trên việc cộng thêm độ lệch 32 trong bảng mã ASCII (c = c + 32), phân tách chuỗi khi gặp khoảng trắng.
  • Biện luận đại số: Giải và biện luận 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$ có sử dụng hàm căn bậc hai sqrt() từ thư viện math.h.
  • Giải thuật số học: Tìm giá trị nhỏ nhất/lớn nhất của 4 số nguyên, thuật toán kiểm tra số nguyên tố bằng cách duyệt ước từ $2$ đến $\sqrt{n}$, kiểm tra số chính phương bằng vòng lặp bình phương, tính tổng các chữ số lẻ.
  • Xử lý mảng và ma trận: Đảo ngược thứ tự các phần tử trong mảng một chiều bằng nhiều cấu trúc vòng lặp for khác nhau; tính tích vô hướng hai véctơ; tính tích hai ma trận kích thước $m \times n$ và $n \times p$.

Quy trình đánh giá kết quả học tập gồm 5 bài kiểm tra định kỳ (1 giờ/bài) đặt tại các mốc trọng tâm: Tổng quan ngôn ngữ (Bài 1), Cấu trúc điều khiển (Bài 3), Mảng (Bài 5), Chuỗi ký tự (Bài 6) và Con trỏ (Bài 7).

Về phương pháp tự học, tài liệu cung cấp chỉ dẫn khai thác hệ thống trợ giúp nội trang Borland C:

  • Phím F1: Kích hoạt màn hình trợ giúp chính.
  • Tổ hợp Ctrl-F1: Tra cứu cú pháp trực tiếp của hàm tại vị trí con trỏ soạn thảo.
  • Tổ hợp Shift-F1: Mở danh mục các chủ đề trợ giúp.
  • Tổ hợp Alt-F1: Quay trở lại cửa sổ thông tin trợ giúp trước đó.

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

Giáo trình được biên soạn dựa trên chuẩn ngữ pháp ngôn ngữ C kinh điển theo tài liệu gốc của Dennis Ritchie và Brian Kernighan (1978), được chuẩn hóa để giảng dạy trên nền tảng trình biên dịch Turbo C / Borland C.

Nền tảng lịch sử & Tiến trình phát triển ngôn ngữ C
                               Phần mềm hệ thống                              Ứng dụng kỹ thuật
                         (UNIX, Compilers, Assemblers)                   (Xử lý số, Mảng, Ma trận)

Tài liệu làm rõ bối cảnh kỹ thuật và ưu thế cấu trúc của ngôn ngữ C:

  • Tính độc lập phần cứng: Mã lệnh C liên kết chặt chẽ với hệ điều hành UNIX nhưng không bị ràng buộc vào cấu trúc phần cứng cụ thể, cho phép biên dịch và thực thi trên nhiều nền tảng máy tính khác nhau mà không cần thay đổi cấu trúc mã nguồn.
  • Hiệu năng hệ thống: Cung cấp tốc độ thực thi tương đương với ngôn ngữ hợp ngữ (Assembly), cho phép can thiệp sâu vào bộ nhớ và các thanh ghi, phù hợp để xây dựng các chương trình hệ thống như hệ điều hành (OS), trình biên dịch (compiler), trình thông dịch (interpreter) và trình soạn thảo (editor).
  • Tính mô-đun hóa: Cho phép lập trình viên phân tách chương trình thành các thư viện hàm độc lập, hỗ trợ việc tái sử dụng mã nguồn và quản lý các dự án phần mềm theo từng khối chức năng.
  • Tính ứng dụng thực tế: Toàn bộ các ví dụ đều giải quyết trực tiếp các bài toán xử lý kỹ thuật số, quản lý mảng ký tự và cấu trúc dữ liệu cơ sở, đáp ứng yêu cầu vận hành của ngành Kỹ thuật sửa chữa, lắp ráp máy tính.

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

Giáo trình được thiết kế phục vụ các nhóm đối tượng cụ thể trong hệ thống giáo dục nghề nghiệp:

Nhóm đối tượng sử dụng giáo trình
  1. Sinh viên hệ Cao đẳng nghề: Đối tượng chính là sinh viên theo học nghề Kỹ thuật sửa chữa, lắp ráp máy tính. Giáo trình được học ở giai đoạn đầu sau khi hoàn thành các môn học văn hóa/đại cương cơ sở, đóng vai trò bản lề giúp sinh viên hiểu cơ chế tương tác giữa phần mềm và tài nguyên phần cứng máy tính.
  2. Điều kiện tiên quyết (Prerequisites): Người học cần nắm vững kiến thức tin học văn phòng cơ bản, thao tác tệp tin và thư mục trên hệ điều hành DOS/Windows, cùng kiến thức toán học phổ thông (đại số cơ bản, logic mệnh đề).
  3. Giảng viên chuyên ngành: Sử dụng làm căn cứ chuẩn để lập đề cương bài giảng, kế hoạch giảng dạy 75 giờ, bố trí lịch trình phòng máy tính và biên soạn ngân hàng đề thi thực hành.
  4. Kỹ thuật viên và người tự học: Phù hợp làm tài liệu tra cứu có hệ thống về bảng mã ASCII, danh mục từ khóa C chuẩn, các định dạng vào/ra, cơ chế quản lý con trỏ và địa chỉ bộ nhớ phục vụ công tác lập trình nhúng hoặc bảo trì máy tính.

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 biên soạn chuyên biệt cho học sinh, sinh viên trình độ Cao đẳng nghề chuyên ngành Kỹ thuật sửa chữa, lắp ráp máy tính; đồng thời là tài liệu tham khảo cho giảng viên dạy môn Lập trình căn bản (MH 11) và kỹ thuật viên cần nắm vững ngôn ngữ C.

2. Cần kiến thức nền nào trước khi học môn 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, hiểu các thao tác quản lý tệp trên hệ điều hành máy tính và có kiến thức toán học cơ bản để vận dụng vào việc lập biểu thức số học và logic.

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?

Tài liệu tập trung cao vào thời lượng thực hành (40/75 giờ), tích hợp hướng dẫn chi tiết các thao tác môi trường dòng lệnh Borland C (BC.EXE), hệ thống phím tắt tra cứu Help (F1, Ctrl-F1), các bảng tra cứu kỹ thuật (ASCII, Escape characters) và mã nguồn giải thuật mẫu bám sát thực tế nghề nghiệp.

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

Người học nên tuân thủ lộ trình 7 bài học, cài đặt môi trường Borland C theo đường dẫn hướng dẫn, tự gõ lại các khối mã nguồn mẫu, sử dụng Ctrl-F9 để biên dịch và Alt-F5 để kiểm tra kết quả, sau đó giải quyết các bài tập tự luyện trước khi đối chiếu với phần hướng dẫn giải ở cuối Bài 3.

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

Giáo trình tích hợp sẵn phần phụ lục hướng dẫn giải bài tập mẫu, bảng danh mục 32 từ khóa Turbo C, bảng mã điều khiển vào/ra và danh mục Tài liệu tham khảo tại trang 123 của văn bản.


Kết luận

Giáo trình Lập trình căn bản của Trường Cao đẳng Nghề Việt Nam – Hàn Quốc thành phố Hà Nội cung cấp một cấu trúc đào tạo hoàn chỉnh về ngôn ngữ C cho hệ cao đẳng kỹ thuật. Giá trị cốt lõi của tài liệu thể hiện ở việc kết hợp chặt chẽ giữa lý thuyết cú pháp tiêu chuẩn với kỹ năng vận hành thực tế trên môi trường máy tính.

Lộ trình học tập đề xuất:

  1. Nắm bắt lịch sử và làm chủ môi trường biên dịch Borland C (Bài 1).
  2. Xây dựng nền tảng kiểu dữ liệu, biến, biểu thức và vào/ra chuẩn (Bài 2).
  3. Làm chủ các giải thuật rẽ nhánh và chu trình lặp (Bài 3).
  4. Module hóa chương trình bằng hàm (Bài 4).
  5. Quản lý cấu trúc dữ liệu và tài nguyên bộ nhớ thông qua mảng, chuỗi ký tự và biến con trỏ (Bài 5, 6, 7).

Người học có thể khai thác thêm các thư viện hàm chuẩn (stdio.h, math.h) cùng hệ thống trợ giúp nội trang để hoàn thiện kỹ năng lập trình giải thuật trên máy tính.