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

Giáo trình Lập trình căn bản C++ (Mã mô đun: MĐ 08) do tác giả Lư Thục Oanh chủ biên, xuất bản năm 2021 tại Cần Thơ. Tài liệu được biên soạn làm giáo trình giảng dạy chính quy cho bậc Cao đẳng và Đại học, thuộc khối kiến thức lý thuyết cơ sở nghề. Mô đun được bố trí giảng dạy ngay sau khi sinh viên hoàn thành các môn học chung, đóng vai trò hình thành nền tảng tư duy lập trình và kỹ thuật viết mã sơ cấp để chuẩn bị cho các môn học chuyên ngành tiếp theo.

Mục tiêu học tập của giáo trình được xác định cụ thể qua các chuẩn đầu ra:

  • Trình bày được các khái niệm nền tảng về lập trình máy tính, cấu trúc chương trình và cơ chế biên dịch mã nguồn.
  • Mô tả chính xác cú pháp, ngữ nghĩa và công dụng của hệ thống từ khóa, toán tử, kiểu dữ liệu và các câu lệnh điều khiển trong ngôn ngữ C++.
  • Phân tích yêu cầu bài toán, xác định chức năng chương trình và thiết kế giải thuật xử lý tương ứng.
  • Thao tác thành thạo trên môi trường phát triển tích hợp Dev-C++, bao gồm các kỹ năng soạn thảo, quản lý tệp tin nguồn, sử dụng phím tắt biên dịch, gỡ rối và bẫy lỗi cú pháp.
  • Hiện thực hóa chương trình trên máy tính và rèn luyện tác phong làm việc khoa học, tỉ mỉ, tuân thủ an toàn thiết bị.

Cấu trúc giáo trình gồm 5 chương được sắp xếp theo trình tự phát triển nhận thức từ cơ bản đến phức tạp: từ tổng quan ngôn ngữ, thành phần cú pháp cơ sở, các cấu trúc điều khiển rẽ nhánh và lặp, 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 thù của tài liệu là thiết kế theo định hướng tích hợp thực hành với thời lượng phân bổ 45 giờ (trong đó có 15 giờ lý thuyết, 28 giờ thực hành và 2 giờ kiểm tra định kỳ), gắn liền lý thuyết cú pháp với các lưu đồ thuật toán, bảng mã ASCII, hệ thống bảng đối chiếu kiểu dữ liệu và các bảng phân loại biến cụ thể.


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 được triển khai qua 5 chương trọng tâm với logic tiếp cận tuần tự:

  • Chương 1: Tổng quan về ngôn ngữ C++ (Mã chương: MĐ08-01, thời lượng 1 giờ lý thuyết): Giới thiệu lịch sử phát triển của ngôn ngữ C do Dennis Ritchie xây dựng năm 1972 tại phòng thí nghiệm Bell Telephone và ngôn ngữ C++ do Bjarne Stroustrup phát triển như một bản mở rộng. Giới thiệu các bản cập nhật chuẩn C++14, C++17 và định hướng C++20. Trình bày môi trường làm việc Dev-C++, các thao tác tạo tệp (Ctrl+N), biên dịch (F9), thực thi (F10), biên dịch và thực thi đồng thời (F11), cùng cấu trúc chương trình xuất nhập cơ bản với thư viện <iostream>, không gian tên std và hàm cin.get().
  • Chương 2: Các thành phần cơ bản (Mã chương: MĐ08-02, thời lượng 8 giờ gồm 3 lý thuyết, 5 thực hành): Trình bày bộ ký tự chuẩn, danh sách 32 từ khóa dùng chung với C và 30 từ khóa mở rộng của C++ (như bool, class, new, delete, namespace, template, virtual). Hướng dẫn quy tắc định danh tên biến (giới hạn nhận diện tối đa 32 ký tự), quy cách viết chú thích đơn dòng // và đa dòng /*...*/, bộ ký tự điều khiển (\n, \t, \r, \a, \\, \", \', %%, \b). Phân loại các kiểu dữ liệu số nguyên (char, int, short, long có dấu và không dấu), số thực (float, double, long double), kiểu void; phân loại biến địa phương (local), toàn cục (global), tĩnh (static), ngoài (extern); quy tắc đặt tên tiền tố Hungary (Hungarian Notation); biểu thức, các toán tử số học (+, -, *, /, %, ++, --), toán tử quan hệ, toán tử logic (&&, ||, !), toán tử thao tác bit (&, |, ^, ~, >>, <<), toán tử điều kiện ba ngôi ?:, toán tử địa chỉ & và con trỏ *, toán tử dấu phẩy; các loại hằng số (hệ 10, bát phân 0X..., thập lục phân 0Xx...), hằng ký tự ASCII, hằng chuỗi kết thúc bởi ký tự null \0; lệnh gán, cơ chế ép kiểu tự động/tường minh, lệnh nhập cin và xuất cout.
  • Chương 3: Các lệnh có cấu trúc (Mã chương: MĐ08-03, thời lượng 16 giờ gồm 3 lý thuyết, 12 thực hành, 1 kiểm tra): Định nghĩa lệnh đơn, khối lệnh bọc trong cặp ngoặc {} và phạm vi tác động của biến trong/ngoài khối lệnh. Cấu trúc rẽ nhánh điều kiện: mệnh đề if đơn, if-else đầy đủ, chuỗi if-else if-else, cấu trúc lựa chọn switch...case kèm break và default. Các cấu trúc lặp chu trình: vòng lặp for (biết trước số lần lặp), vòng lặp while (kiểm tra điều kiện trước), vòng lặp do...while (kiểm tra điều kiện sau, thực thi thân vòng lặp ít nhất một lần). Các câu lệnh thay đổi luồng thực thi: lệnh kết thúc sớm break, lệnh nhảy về đầu chu trình continue, và lệnh nhảy trực tiếp goto kèm nhãn label:.
  • Chương 4: Hàm (Thời lượng 8 giờ gồm 3 lý thuyết, 4 thực hành, 1 kiểm tra): Khái niệm phân rã chương trình con; nguyên tắc xây dựng, khai báo nguyên mẫu và định nghĩa hàm; cơ chế truyền tham số; nguyên tắc hoạt động của ngăn xếp khi gọi hàm; các câu lệnh kết thúc hàm và trả về giá trị bao gồm return và lệnh ngắt tiến trình exit; ứng dụng viết hàm giải quyết bài toán kiểm tra và liệt kê số nguyên tố nhỏ hơn n.
  • Chương 5: Mảng (Thời lượng 9 giờ gồm 3 lý thuyết, 6 thực hành): Định nghĩa cấu trúc mảng; cú pháp khai báo, cấp phát và khởi tạo giá trị; thao tác truy xuất phần tử qua chỉ số; lập trình xử lý mảng một chiều và mảng nhiều chiều (ma trận); kết thúc bằng hệ thống bài tập nâng cao và bài tập tổng hợp.

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

Giáo trình thiết lập các khối tri thức nền tảng về khoa học lập trình cấu trúc:

  • Lý thuyết biên dịch và kiến trúc dữ liệu: Cơ chế tiền xử lý, biên dịch mã nguồn thành tập tin đối tượng (object file) và liên kết (link) thành tập tin thực thi độc lập (.exe); mô hình bộ nhớ lưu trữ kiểu số nguyên và số thực; bảng mã ký tự chuẩn ASCII.
  • Nguyên lý điều khiển luồng: Quy tắc định giá trị biểu thức logic theo quy ước nhị phân (0 tương ứng sai, khác 0 tương ứng đúng); bảng chân trị cho các phép toán logic Boolean và phép toán thao tác trên cấp độ bit (Bitwise); quy tắc ưu tiên toán tử từ cao xuống thấp.
  • Mô hình phạm vi và vòng đời dữ liệu: Khái niệm phạm vi khối lệnh (block scope), biến địa phương được thu hồi khi kết thúc khối, biến tĩnh duy trì giá trị qua các lần gọi hàm, và biến toàn cục/ngoài dùng chung giữa các tệp nguồn.

Kỹ năng phát triển

Thông qua các bài học và hệ thống thực hành khảo sát, người học hình thành các năng lực chuyên môn:

  • Kỹ năng kỹ thuật viết mã: Khai báo đúng kiểu dữ liệu, sử dụng toán tử chính xác, áp dụng quy tắc đặt tên tiền tố Hungary, kiểm soát luồng điều khiển rẽ nhánh và lặp lồng nhau, viết và gọi hàm có tham số.
  • Kỹ năng gỡ rối và vận hành phần mềm: Khởi động, cấu hình, biên dịch mã nguồn trên Dev-C++, đọc hiểu thông báo lỗi cú pháp từ trình biên dịch, theo dõi luồng thực thi và bẫy lỗi thuật toán.
  • Kỹ năng phân tích và hiện thực hóa giải thuật: Chuyển đổi các bài toán toán học sang mã lệnh C++ (giải phương trình bậc nhất $ax + b = 0$, phương trình bậc hai $ax^2 + bx + c = 0$, kiểm tra năm nhuận, tính chu vi hình tròn, đếm số, tính tổng các chuỗi phân số và lũy thừa $S(n)$).

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 tiếp cận năng lực thực hành nghề nghiệp, lấy cấu trúc mô đun tích hợp làm khung giảng dạy:

  • Phương pháp truyền tải lý thuyết gắn liền mã nguồn trực quan: Mỗi khái niệm cú pháp đều đi kèm định dạng quy chuẩn, lưu đồ thuật toán (flowchart) và đoạn mã nguồn hoàn chỉnh minh họa. Giáo trình cung cấp các lưu đồ rẽ nhánh if, if-else, lưu đồ chu trình for, do...while giúp sinh viên hình dung đường đi của dữ liệu.
  • Phương pháp khảo sát thực hành 3 bước: Trong mỗi bài thực hành, sinh viên thực hiện tuần tự theo quy trình:
    1. Bước 1: Khởi động môi trường Dev-C++ và thiết lập tệp mã nguồn mới.
    2. Bước 2: Nhập đoạn mã chương trình mẫu theo yêu cầu bài học.
    3. Bước 3: Thực hiện biên dịch (F9), kiểm tra lỗi, chạy chương trình (F10) và quan sát kết quả in ra màn hình console. Sau khi hoàn thành, sinh viên phải điền số liệu vào bảng khảo sát kết quả (ghi nhận thời gian thực hiện, số lỗi biên dịch phát sinh và kết quả chạy chương trình thực tế).
  • Hệ thống bài tập phân cấp: Tài liệu chia bài tập thành các cấp độ từ cơ bản (in thông tin cá nhân, in bảng cửu chương, tính tổng số nguyên) đến bài tập mở rộng và nâng cao (14 bài toán giải thuật ở Chương 3 bao gồm tính dãy tổng phân số, giải phương trình bậc hai, phân loại quý trong năm, tính tổng các chữ số của số nguyên $n$).
  • Phương pháp đánh giá kết quả:
    • Kiến thức: Đánh giá thông qua bài kiểm tra viết, trắc nghiệm lý thuyết và vấn đáp về cú pháp, từ khóa, bảng chân trị và quy tắc điều khiển.
    • Kỹ năng: Đánh giá thông qua bài thi thực hành lập trình trực tiếp trên máy tính, khả năng chuyển đổi kiểu dữ liệu và xử lý thuật toán trên Dev-C++.
    • Năng lực tự chủ và trách nhiệm: Đánh giá dựa trên tiêu chí cẩn thận, chính xác trong việc viết mã, tổ chức khối lệnh thụt lề chuẩn xác và tính ngăn nắp trong thực hành.

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

Giáo trình tổng hợp và hệ thống hóa nhiều nội dung kỹ thuật phục vụ việc học tập ngôn ngữ C++:

  • Hệ thống hóa toàn diện danh mục từ khóa: Phân định rõ ràng 32 từ khóa nền tảng kế thừa từ ngôn ngữ C và 30 từ khóa bổ sung riêng biệt của C++, giúp người học nhận diện chuẩn cú pháp chuẩn quốc tế.
  • Chi tiết hóa bảng thông số kỹ thuật kiểu dữ liệu: Cung cấp bảng tra cứu cụ thể về kích thước chiếm dụng bộ nhớ (từ 1, 2, 4 đến 10 bytes) cùng miền giá trị chi tiết cho từng kiểu số nguyên (char, unsigned char, signed char, int, unsigned int, short, unsigned short, long, unsigned long) và số thực (float, double, long double).
  • Tích hợp quy chuẩn đặt tên Hungarian Notation: Hướng dẫn kỹ thuật lập trình thực tế bằng cách thêm ký tự tiền tố biểu thị kiểu dữ liệu vào trước tên biến (ví dụ ituoi cho kiểu int, fTrongluong cho kiểu float, ckitu1 cho kiểu char), hỗ trợ việc quản lý mã nguồn rõ ràng và dễ bảo trì.
  • So sánh đối chiếu cú pháp liên ngôn ngữ: Lập bảng so sánh trực quan giữa cú pháp C++ với Pascal và FoxPro (chẳng hạn sự khác biệt trong khai báo biến danh sách, sự tương đồng giữa lệnh break với lệnh EXIT, lệnh continue với lệnh LOOP), tạo điều kiện thuận lợi cho người học đã có kiến thức từ các ngôn ngữ khác chuyển đổi sang C++.
  • Tính ứng dụng kỹ thuật cao: Đề cập đến khả năng xử lý bài toán kỹ thuật phức tạp, ứng dụng tính toán tốc độ cao tiệm cận ngôn ngữ Hợp ngữ (Assembler), hỗ trợ các toán tử thao tác bit (AND, OR, XOR, NOT, dịch bit trái/phải) để can thiệp trực tiếp vào dữ liệu cấp độ byte và word.

Đố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 đại học và giáo dục nghề nghiệp:

  • Sinh viên chuyên ngành: Sinh viên các ngành Công nghệ thông tin, Kỹ thuật phần mềm, Quản trị mạng máy tính (như chương trình đào tạo lớp 21.1QTM được nêu trong ví dụ thực hành) tại các trường Cao đẳng và Đại học đang học mô đun Lập trình căn bản (Mã mô đun: MĐ 08).
  • Yêu cầu kiến thức tiên quyết: Sinh viên cần hoàn thành các môn học chung đại cương và có kỹ năng thao tác máy tính cơ bản. Giáo trình không đòi hỏi kiến thức lập trình từ trước do nội dung được thiết kế từ mức độ nhập môn.
  • Giảng viên và cán bộ giảng dạy: Tài liệu cung cấp khung phân phối thời lượng chuẩn (45 giờ: 15 lý thuyết, 28 thực hành, 2 kiểm tra), hệ thống mục tiêu bài học theo chuẩn kiến thức - kỹ năng - năng lực tự chủ, cùng ngân hàng ví dụ mẫu và bài tập thực hành có sẵn để xây dựng bài giảng và đề kiểm tra định kỳ.
  • Người tự học và nghiên cứu viên: Người bước đầu làm quen với lập trình có thể sử dụng giáo trình như một tài liệu tra cứu có hệ thống về từ khóa, bảng mã ASCII, toán tử điều khiển và cú pháp C++.

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 phù hợp với sinh viên bậc Cao đẳng và Đại học khối ngành Công nghệ thông tin bắt đầu học lập trình, giảng viên giảng dạy mô đun Lập trình căn bản (MĐ 08), và người tự học cần tài liệu tra cứu chuẩn xác về cú pháp ngôn ngữ C++.

2. Cần kiến thức nền nào để học?

Người học chỉ cần hoàn thành các môn học chung cơ bản trong chương trình đào tạo và có kỹ năng vận hành máy tính văn phòng thông thường; không yêu cầu phải biết trước ngôn ngữ lập trình nào.

3. Điểm khác biệt với giáo trình khác là gì?

Tài liệu được xây dựng theo hình thức mô đun tích hợp lý thuyết - thực hành với tỷ lệ thực hành chiếm hơn 62% thời lượng (28/45 giờ). Toàn bộ nội dung gắn liền với môi trường Dev-C++, có bảng phân loại từ khóa C/C++ riêng biệt, bảng miền giá trị kiểu dữ liệu chi tiết, quy chuẩn đặt tên biến Hungarian Notation và hệ thống lưu đồ thuật toán cho mọi cấu trúc điều khiển.

4. Làm sao để tự học hiệu quả?

Người học cần kết hợp đọc hiểu cú pháp, quan sát lưu đồ thuật toán, nhập trực tiếp các đoạn mã mẫu vào phần mềm Dev-C++, biên dịch và điền kết quả vào bảng khảo sát. Sau khi nắm vững bài tập cơ bản, người học tự giải quyết danh mục 14 bài tập nâng cao ở cuối Chương 3 và các bài tập tổng hợp ở Chương 5.

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

Giáo trình cung cấp sẵn hệ thống bảng tra cứu mã ASCII, bảng độ ưu tiên toán tử, mẫu báo cáo khảo sát thực hành cho từng chương, cùng ngân hàng bài tập mở rộng thuật toán (tính tổng chuỗi số, giải phương trình, xử lý số nguyên tố, mảng dữ liệu).


Kết luận

Giáo trình Lập trình căn bản C++ (Mã mô đun: MĐ 08) của chủ biên Lư Thục Oanh là tài liệu học thuật cung cấp hệ thống kiến thức nền tảng về lập trình cấu trúc và ngôn ngữ C++. Tài liệu tổ chức nội dung chuẩn mực qua 5 chương học, kết nối chặt chẽ giữa lý thuyết kiểu dữ liệu, cú pháp điều khiển với môi trường thực hành Dev-C++.

Lộ trình học tập đề xuất cho người học bao gồm: tiếp cận tổng quan và môi trường phần mềm ở Chương 1; nắm vững cú pháp, kiểu dữ liệu, toán tử ở Chương 2; làm chủ các cấu trúc rẽ nhánh và chu trình lặp ở Chương 3; module hóa chương trình bằng hàm ở Chương 4; và tổ chức cấu trúc dữ liệu mảng ở Chương 5. Việc hoàn thành các nội dung và bài tập trong giáo trình tạo tiền đề kỹ thuật vững chắc để người học tiếp tục nghiên cứu các môn học nâng cao như Lập trình hướng đối tượng, Cấu trúc dữ liệu và Giải thuật.