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

Giáo trình Lập trình căn bản (Mã số môn học: MH 10) do tác giả Vương Thị Minh Nguyệt biên soạn, ban hành năm 2017 theo Quyết định của Hiệu trưởng Trường Cao đẳng Nghề An Giang. Tài liệu được thiết kế nhằm phục vụ công tác đào tạo chuyên môn nghề Lập trình máy tính ở trình độ trung cấp và cao đẳng, đồng thời có thể áp dụng cho các khóa đào tạo ngắn hạn và bồi dưỡng kỹ thuật. Trong chương trình đào tạo, môn học được xếp vào khối kiến thức Cơ sở bắt buộc, được bố trí giảng dạy sau khi người học đã hoàn thành hai môn học tiên quyết là Toán cho tin họcTin học căn bản.

Mục tiêu học tập (Learning Outcomes) của giáo trình tập trung vào việc trang bị cho người học năng lực phân tích và hiện thực hóa chương trình máy tính:

  • Xác định nhiệm vụ, mô tả dữ liệu, xây dựng thuật toán và tìm kiếm giải pháp kỹ thuật tương ứng.
  • Khai báo và sử dụng chính xác biến, hằng số, các kiểu dữ liệu cơ bản và áp dụng đúng quy tắc cú pháp của ngôn ngữ lập trình C++.
  • Vận dụng thành thạo các cấu trúc điều khiển rẽ nhánh, cấu trúc lặp, hàm, mảng, con trỏ và kiểu dữ liệu cấu trúc.
  • Viết mã nguồn có cấu trúc rõ ràng, bổ sung chú thích mô tả chức năng của từng đoạn lệnh.
  • Sử dụng bộ dữ liệu kiểm thử và công cụ gỡ lỗi (Debugger) để kiểm tra giá trị của biến và khắc phục lỗi chương trình.

Giáo trình có tổng thời lượng thực hiện là 75 giờ, phân bổ thành 20 giờ lý thuyết, 51 giờ thực hành/thảo luận và 4 giờ kiểm tra định kỳ. Nội dung văn bản được cấu trúc theo 8 chương tuần tự, chuyển tiếp từ nền tảng lý thuyết thuật toán độc lập với ngôn ngữ sang các kỹ thuật lập trình hướng cấu trúc cụ thể trên môi trường C++. Điểm đặc thù của giáo trình là tính thực nghiệm cao với thời lượng thực hành chiếm tới 68% tổng chương trình đào tạo.


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

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

Cấu trúc giáo trình bao gồm 8 chương trọng tâm được triển khai theo trật tự logic:

  • Chương 1: Thuật toán: Trình bày định nghĩa thuật toán, 6 đặc trưng kỹ thuật (tính xác định, tính hữu hạn dừng, tính đúng đắn, tính phổ thông, tính có đại lượng vào/ra, tính hiệu quả). Cung cấp 3 phương pháp biểu diễn giải thuật: ngôn ngữ tự nhiên, sơ đồ khối/lưu đồ (quy chuẩn các hình ovan, hình thoi, hình chữ nhật, điểm nối, điểm nối sang trang) và mã giả.
  • Chương 2: Giới thiệu ngôn ngữ lập trình C++: Khái quát lịch sử phát triển từ ngôn ngữ BCPL (Martin Richards, 1967), ngôn ngữ B (Ken Thompson, 1970) trên hệ điều hành UNIX của máy DEC PDP-11 đến tác phẩm của Dennis Ritchie và B.W. Kernighan (1978). Phân tích 5 đặc điểm của C (tính cô đọng, tính cấu trúc, tính tương thích, tính linh động, cơ chế biên dịch/liên kết). Hướng dẫn cài đặt, cấu trúc tệp mã nguồn và các phím chức năng trong môi trường Turbo C 3.0.
  • Chương 3: Các thành phần và các kiểu dữ liệu cơ bản: Định nghĩa bảng ký tự, 32 từ khóa chuẩn, 40 toán tử, quy tắc đặt tên định danh và cặp dấu chú thích /* */. Phân loại chi tiết các kiểu dữ liệu: ký tự (char chiếm 1 byte trong bảng mã ASCII), số nguyên (int 2 byte, long 4 byte, unsigned), số thực (float 4 byte, double 8 byte, long double 10 byte). Cú pháp định nghĩa hằng #define, const. Các phép toán số học, quan hệ, logic (!, &&, ||), toán tử tăng giảm tiền tố/hậu tố (++, --). Cú pháp xuất nhập dữ liệu thông qua hai thư viện stdio.h, conio.h với các hàm printf, scanf, getchar, putchar, getch, putch và bảng đặc tả định dạng %d, %f, %s, %c, %x, %o.
  • Chương 4: Các cấu trúc điều khiển: Phân biệt lệnh đơn và lệnh phức trong khối { }. Cú pháp và nguyên lý hoạt động của cấu trúc điều kiện if, if...else, cấu trúc lựa chọn đa nhánh switch...case...default. Các cấu trúc lặp for, while cùng các lệnh điều hướng luồng thực thi break, continue, goto và hàm exit.
  • Chương 5: Hàm: Cấu trúc khai báo nguyên mẫu hàm, cơ chế trả về giá trị qua lệnh return, các phương thức truyền tham số cho hàm và nguyên lý giải thuật đệ quy.
  • Chương 6: Mảng: Khái niệm mảng, khai báo, khởi tạo giá trị mảng một chiều, mảng nhiều chiều và kỹ thuật truyền mảng làm đối số cho hàm.
  • Chương 7: Con trỏ: Khái niệm địa chỉ ô nhớ, toán tử lấy địa chỉ &, toán tử giải tham chiếu *, khai báo biến con trỏ, các phép toán trên con trỏ, con trỏ mảng, con trỏ hằng, con trỏ không kiểu void*, con trỏ trỏ tới con trỏ và con trỏ hàm.
  • Chương 8: Cấu trúc: Định nghĩa kiểu dữ liệu người dùng tự định nghĩa struct, cú pháp khai báo, kỹ thuật truy xuất các trường thành phần, con trỏ cấu trúc và địa chỉ cấu trúc.

Progression logic của giáo trình tuân thủ mô hình tích lũy tuyến tính: Thiết lập tư duy thuật toán hình thức $\rightarrow$ Làm quen cú pháp và kiểu dữ liệu nguyên thủy $\rightarrow$ Kiểm soát luồng thực thi chương trình $\rightarrow$ Phân rã mã nguồn theo hàm $\rightarrow$ Tổ chức tập hợp dữ liệu với mảng $\rightarrow$ Thao tác trực tiếp trên ô nhớ với con trỏ $\rightarrow$ Tổng hợp dữ liệu phức hợp với cấu trúc bản ghi.

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

  • Lý thuyết cơ sở: Khái niệm chuyển dịch từ ngôn ngữ máy (chuỗi bit 0 và 1), hợp ngữ sang ngôn ngữ bậc cao; nguyên lý biểu diễn thuật toán chuẩn xác; cơ chế tính toán giá trị logic (true/false) trong các biểu thức điều kiện.
  • Nguyên lý cốt lõi: Kỹ thuật lập trình có cấu trúc (structured programming); nguyên tắc mô-đun hóa chương trình thành các hàm độc lập; nguyên tắc đóng gói dữ liệu và phạm vi hiệu lực của biến (biến cục bộ trong khối lệnh và biến toàn cục).
  • Khuôn khổ quản trị bộ nhớ: Ánh xạ kích thước byte và miền giá trị của các kiểu dữ liệu; cơ chế quản lý địa chỉ vùng nhớ vật lý thông qua các phép toán con trỏ và cấu trúc dữ liệu bản ghi.

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical skills): Thành thạo cú pháp lập trình C++; sử dụng các chỉ thị tiền xử lý #include; định dạng chính xác chuỗi điều khiển trong printf/scanf; thao tác trên môi trường biên dịch Turbo C 3.0 thông qua hệ thống phím tắt (F1, Ctrl-F1, F3, F10, Alt-F, Ctrl-F9, Alt-X).
  • Kỹ năng phân tích (Analytical skills): Phân tích yêu cầu bài toán đại số/hình học; mô hình hóa bài toán thành sơ đồ khối phân nhánh hoặc chu trình lặp; phân tích giá trị biến qua từng bước thực thi.
  • Kỹ năng thực hành (Practical competencies): Xây dựng chương trình hoàn chỉnh từ thuật toán; gỡ lỗi mã nguồn bằng công cụ Debugger; kiểm thử chương trình với các bộ dữ liệu biên; tổ chức mã nguồn có chú thích rõ rà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 tích hợp (Integrated Pedagogical Approach), kết hợp truyền thụ lý thuyết khái niệm với thực hành trực tiếp trên máy tính. Cấu trúc mỗi chương học được thiết kế thống nhất gồm 4 phần:

  1. Giới thiệu tổng quan chủ đề.
  2. Mục tiêu học tập cụ thể cần đạt được.
  3. Nội dung lý thuyết kèm ví dụ mã nguồn minh họa chi tiết.
  4. Hệ thống câu hỏi ôn tập và bài tập rèn luyện.

Hệ thống bài tập và ví dụ mẫu được xây dựng bám sát các bài toán kỹ thuật và toán học cơ sở:

  • Thuật toán 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$ (xét đầy đủ các trường hợp nghiệm thực, nghiệm kép, vô nghiệm dựa trên giá trị của biệt thức $\Delta$).
  • Bài toán tính chu vi, diện tích các hình học phẳng (hình tròn, hình chữ nhật).
  • Bài toán chuyển đổi đơn vị thời gian (nhập số giây đổi sang giờ:phút:giây và ngược lại).
  • Kỹ thuật xử lý dữ liệu: phân loại học lực học sinh sử dụng switch...case, đảo ngược thứ tự các phần tử trong mảng số thực, tính tích vô hướng của hai véc-tơ bằng vòng lặp while.

Quy trình thực hành (Practical exercises) chiếm 51 giờ tại phòng máy. Người học được yêu cầu trực tiếp soạn thảo mã nguồn, biên dịch, quan sát kết quả hiển thị trên màn hình và làm quen với các thao tác khối văn bản (chọn khối, sao chép khối, xóa khối) để tăng tốc độ soạn thảo.

Phương pháp đánh giá (Assessment methods) được thực hiện qua 4 giờ kiểm tra định kỳ, kết hợp giữa kiểm tra lý thuyết hiểu biết cú pháp và đánh giá kỹ năng viết mã trực tiếp trên máy. Tiêu chí đánh giá căn cứ vào:

  • Mức độ chính xác của cú pháp và tính đúng đắn của kết quả đầu ra.
  • Khả năng tổ chức cấu trúc lệnh và đặt tên định danh theo quy chuẩn.
  • Kỹ năng phát hiện, sửa lỗi thông qua công cụ Debugger.

Đối với hoạt động tự học (Self-study guidelines), giáo trình định hướng người học rèn luyện tư duy logic độc lập: phân tích bài toán và vẽ sơ đồ khối lưu đồ trên giấy trước khi cài đặt mã nguồn; tận dụng hệ thống tài liệu trợ giúp tích hợp của môi trường thực hành (F1 để xem toàn bộ thông tin trợ giúp, Ctrl-F1 để tra cứu cú pháp theo ngữ cảnh từ khóa).


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

  • Tính quy chuẩn học thuật: Giáo trình được ban hành chính thức năm 2017 theo chuẩn chương trình đào tạo nghề Lập trình máy tính của Trường Cao đẳng Nghề An Giang, đảm bảo tính pháp lý và tính thống nhất trong giảng dạy trình độ trung cấp và cao đẳng nghề.
  • Chuẩn hóa cú pháp ANSI C/C++: Toàn bộ nội dung giảng dạy bám sát các chuẩn ngôn ngữ C/C++ quốc tế, cung cấp bảng phân loại chi tiết 32 từ khóa chuẩn, 40 toán tử và hệ thống bảng mã ASCII hoàn chỉnh (phân loại thành nhóm ký tự điều khiển từ 0–31, ký tự văn bản từ 32–126, và ký tự đồ họa từ 127–255).
  • Tài liệu hóa môi trường thực hành: Giáo trình cung cấp bảng hướng dẫn chi tiết các thao tác lệnh và phím tắt trên môi trường Turbo C 3.0 của Borland, giúp người học làm chủ quy trình biên tập tệp nguồn, biên dịch tệp đối tượng (.obj), liên kết tệp thực thi (.exe) và vận hành công cụ Debugger.
  • Gắn kết với kiến trúc máy tính: Nội dung đào tạo không dừng lại ở mức cú pháp mà giải thích bản chất lưu trữ dữ liệu tầng thấp: cơ chế biểu diễn số nguyên dạng nhị phân, hệ bát phân (Octal), hệ thập lục phân (Hexadecimal với tiền tố 0x), ký tự kết thúc chuỗi \0 (NULL), và nguyên lý định vị địa chỉ ô nhớ vật lý thông qua các loại con trỏ (con trỏ mảng, con trỏ hàm, con trỏ cấu trúc).
  • Tính ứng dụng nghề nghiệp: Kiến thức trong giáo trình đóng vai trò là nền tảng kỹ thuật bắt buộc, tạo tiền đề trực tiếp để học sinh - sinh viên tiếp cận các mô-đun chuyên môn sâu tiếp theo như Cấu trúc dữ liệu và giải thuật, Lập trình hướng đối tượngLập trình ứng dụng.

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

  • Sinh viên và học viên:
    • Học sinh, sinh viên năm thứ nhất theo học trình độ Trung cấp và Cao đẳng nghề chuyên ngành Lập trình máy tính, Công nghệ thông tin hoặc Tin học ứng dụng.
    • Học viên tham gia các khóa đào tạo nghề lập trình ngắn hạn, công nhân kỹ thuật cần bổ túc hoặc chuẩn hóa kiến thức nền tảng về thuật toán và ngôn ngữ C/C++.
  • Điều kiện tiên quyết (Prerequisites):
    • Người học bắt buộc phải hoàn thành các môn học cơ sở gồm Toán cho tin học (nắm vững logic toán, đại số cơ bản) và Tin học căn bản (kỹ năng sử dụng máy tính, quản lý tệp tin và hệ điều hành).
  • Giảng viên:
    • Giảng viên các cơ sở giáo dục nghề nghiệp sử dụng giáo trình làm khung tài liệu giảng dạy chuẩn cho học phần Lập trình căn bản (MH 10) với thời lượng 75 giờ; sử dụng hệ thống ví dụ và bài tập mẫu để biên soạn giáo án lý thuyết, bài thực hành phòng máy và đề kiểm tra định kỳ.
  • Tự học và tham khảo:
    • Người tự học có thể sử dụng giáo trình như một tài liệu tra cứu có hệ thống về cú pháp, bảng đặc tả hàm nhập xuất và các cấu trúc điều khiển cơ bản trong C++.

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 biên soạn chuyên biệt cho học sinh, sinh viên học nghề Lập trình máy tính ở trình độ Trung cấp và Cao đẳng, đồng thời phù hợp với học viên các khóa đào tạo kỹ thuật ngắn hạn và công nhân kỹ thuật cần nắm vững kỹ thuật lập trình cơ bản.

2. Người học cần chuẩn bị kiến thức nền tảng gì trước khi học?

Theo quy định của chương trình đào tạo, người học cần học xong hai môn học tiên quyết là Toán cho tin họcTin học căn bản để có đủ kiến thức về tư duy toán học và kỹ năng thao tác máy tính.

3. Giáo trình có điểm gì khác biệt so với các tài liệu lý thuyết thuần túy?

Giáo trình thiết kế theo kết cấu mô-đun nghề với tỷ lệ giờ thực hành chiếm đa số (51/75 giờ). Nội dung đi sâu vào việc giải thích cú pháp cụ thể, phân tích chi tiết bảng đặc tả định dạng của các hàm nhập xuất chuẩn (printf, scanf), và hướng dẫn cụ thể cách thao tác với môi trường Turbo C 3.0.

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

Người học cần thực hiện tuần tự theo 3 bước: (1) Phân tích bài toán và biểu diễn thuật toán bằng lưu đồ/mã giả; (2) Soạn thảo và chạy mã nguồn trên phần mềm Turbo C; (3) Sử dụng bộ dữ liệu thử để phân tích giá trị biến qua từng bước và dùng công cụ Debugger để kiểm tra luồng thực thi.

5. Giáo trình có cung cấp tài liệu bổ trợ nào không?

Ở phần cuối, giáo trình cung cấp bảng tra cứu thuật ngữ chuyên môn ngành lập trình và danh mục các tài liệu tham khảo chuyên ngành giúp người học tra cứu mở rộng các khái niệm liên quan.


Kết luận

Giáo trình Lập trình căn bản (Mã số: MH 10) của tác giả Vương Thị Minh Nguyệt (Trường Cao đẳng Nghề An Giang, 2017) là tài liệu đào tạo có cấu trúc chặt chẽ, xác lập hệ thống kiến thức từ thuật toán hình thức đến kỹ năng cài đặt chương trình hoàn chỉnh trên ngôn ngữ C++.

Lộ trình học tập trong giáo trình được tổ chức tuần tự: bắt đầu từ phương pháp mô hình hóa thuật toán (Chương 1), tiếp cận cú pháp, kiểu dữ liệu và cấu trúc điều khiển (Chương 2, 3, 4), module hóa chương trình bằng hàm (Chương 5), và hoàn thiện kỹ năng quản lý dữ liệu nâng cao với mảng, con trỏ, cấu trúc bản ghi (Chương 6, 7, 8).

Tài liệu kết hợp đầy đủ giữa lý thuyết cú pháp, hệ thống bài tập thực hành 51 giờ và danh mục thuật ngữ chuyên môn, tạo nền tảng kỹ thuật cơ sở phục vụ cho các môn học chuyên ngành tiếp theo trong chương trình đào tạo nghề Lập trình máy tính.