Phân Tích Học Thuật và Nội Dung Giáo Trình: Kỹ Thuật Lập Trình Cơ Sở Với Ngôn Ngữ C/C++
{
"document_type": "textbook",
"confidence": 0.99,
"reasoning": "Tài liệu là sách giáo trình giảng dạy đại học chính thức do Nhà xuất bản Khoa học và Kỹ thuật ấn hành (ISBN: 978-604-67-0312-9), do PGS.TS Dương Thăng Long làm chủ biên cùng Trương Tiến Tùng biên soạn. Cấu trúc văn bản gồm Lời nói đầu xác định mục tiêu đào tạo cử nhân/kỹ sư CNTT, 6 chương lý thuyết kết hợp hệ thống bài tập mẫu và bài tập tự giải theo chuẩn sư phạm đại học."
}
Tổng quan về giáo trình
Giáo trình "Kỹ thuật lập trình cơ sở với ngôn ngữ C/C++" do nhóm tác giả Dương Thăng Long (Chủ biên) và Trương Tiến Tùng biên soạn, được Nhà xuất bản Khoa học và Kỹ thuật xuất bản (Quyết định xuất bản số 245/QĐXB - NXBKHKT ngày 30/12/2014, nộp lưu chiểu Quý I năm 2015, mã số ISBN: 978-604-67-0312-9). Tài liệu được biên soạn nhằm đáp ứng trực tiếp nhu cầu đào tạo kỹ sư tin học, cử nhân Công nghệ thông tin và Tin học ứng dụng trong hệ thống các trường đại học tại Việt Nam.
+-------------------------------------------------------------------------------+
| THÔNG TIN THƯ MỤC XUẤT BẢN |
+-------------------------------------------------------------------------------+
| • Tác phẩm: Kỹ thuật lập trình cơ sở với ngôn ngữ C/C++ |
| • Tác giả: Dương Thăng Long (Chủ biên), Trương Tiến Tùng |
| • Nhà xuất bản: Nhà xuất bản Khoa học và Kỹ thuật |
| • Biên tập & Sửa bản in: TS. Nguyễn Huy Tiến | Trình bày bìa: Xuân Dũng |
| • Giấy phép xuất bản: 1455 - 2014/CXB/l - 93/KHKT |
| • Số lượng in: 300 bản, khổ 16 x 24 cm tại Xí nghiệp In NXB Văn hóa Dân tộc |
| • Năm xuất bản: Quý I/2015 |
+-------------------------------------------------------------------------------+
Trong khung chương trình đào tạo ngành Công nghệ thông tin, học phần Kỹ thuật lập trình / Lập trình cơ sở giữ vị trí môn học nền tảng bắt buộc, đóng vai trò bản lề kết nối giữa khối kiến thức Nhập môn Tin học/Tin học đại cương với các môn học chuyên ngành tiếp theo như Cấu trúc dữ liệu và giải thuật, Lập trình hướng đối tượng, Kiến trúc máy tính và Hệ điều hành.
Mục tiêu đào tạo cốt lõi của giáo trình hướng tới:
- Kiến thức: Trang bị hiểu biết hệ thống về bản chất của quá trình lập trình máy tính, vòng đời phần mềm, các mô hình ngôn ngữ (ngôn ngữ máy, hợp ngữ, ngôn ngữ bậc cao), khái niệm thuật toán và phương pháp đánh giá độ phức tạp thuật toán qua ký hiệu $O$-lớn (Big-$O$).
- Kỹ năng: Rèn luyện năng lực biểu diễn giải thuật (bằng phương pháp liệt kê từng bước và sơ đồ khối luồng điều khiển), kỹ năng cài đặt chương trình bằng ngôn ngữ C/C++ trên môi trường phát triển tích hợp (IDE), xử lý vào/ra dữ liệu chuẩn và tệp tin, tổ chức dữ liệu cấu trúc và quản lý bộ nhớ động bằng con trỏ.
- Thái độ và phương pháp tiếp cận: Hình thành tư duy giải quyết vấn đề bằng máy tính theo nguyên tắc logic, chặt chẽ, tối ưu hóa tài nguyên thời gian và không gian lưu trữ.
Cấu trúc giáo trình bao gồm 06 chương được tổ chức theo tiến trình logic từ đơn giản đến phức tạp, đảm bảo tính liên thông và nhất quán kiến thức xuyên suốt toàn bộ văn bản.
Nội dung kiến thức cốt lõi
+--------------------------------------------------------------------------+
| KHUNG KIẾN THỨC 6 CHƯƠNG THEO TIẾN TRÌNH ĐÀO TẠO |
+--------------------------------------------------------------------------+
| Chương 1: Tổng quan về kỹ thuật lập trình & Lý thuyết giải thuật |
| ↓ |
| Chương 2: Cú pháp cơ bản, bảng mã ASCII & Hệ thống toán tử C/C++ |
| ↓ |
| Chương 3: Cấu trúc điều khiển (Tuần tự, Rẽ nhánh, Vòng lặp) & I/O |
| ↓ |
| Chương 4: Lập trình cấu trúc, Phân rã mô-đun, Hàm, Nạp chồng & Mẫu |
| ↓ |
| Chương 5: Cấu trúc Mảng (1D, 2D, Xâu) & Quản lý Bộ nhớ Động qua Con trỏ |
| ↓ |
| Chương 6: Cấu trúc struct, Cấu trúc dữ liệu tuyến tính/cây & Xử lý Tệp |
+--------------------------------------------------------------------------+
Các chương và chủ đề chính
Chương 1: Tổng quan về kỹ thuật lập trình
- Quá trình xây dựng phần mềm: Phân tích 4 giai đoạn cốt lõi: Khảo sát bài toán $\rightarrow$ Phân tích & thiết kế $\rightarrow$ Mã hóa chương trình (Coding) $\rightarrow$ Kiểm thử & bảo trì. Xác định vai trò của lập trình viên trong việc hiện thực hóa thuật toán thành mã lệnh.
- Phân loại ngôn ngữ lập trình:
- Ngôn ngữ máy: Chuỗi mã nhị phân thuần túy
0/1, phụ thuộc trực tiếp vào phần cứng.
- Ngôn ngữ bậc thấp: Hợp ngữ (Assembler), dùng các ký hiệu gợi nhớ thao tác trực tiếp trên thanh ghi và vi xử lý.
- Ngôn ngữ bậc cao: Pascal, C/C++, Java, sử dụng bảng ký hiệu tự nhiên gần với tiếng Anh, yêu cầu trình biên dịch (Compiler) chuyển đổi mã nguồn thành chương trình thực thi (
.exe).
- Lý thuyết thuật toán (Algorithms): Định nghĩa thuật toán là một dãy hữu hạn các thao tác đơn nghĩa. Trình bày 4 đặc trưng bắt buộc: Tính kết thúc (tính dừng), Tính rõ ràng - chặt chẽ, Tính phổ dụng, Tính hiệu quả. Phân tích ví dụ phản chứng về thuật toán tìm ước số chung lớn nhất (USCLN) bị lặp vô tận nếu sai điều kiện dừng.
- Phương pháp biểu diễn thuật toán:
- Mô tả từng bước bằng ngôn ngữ giả: Khung mô tả gồm
Algorithm, Input, Output, Actions (B1, B2... Bn, End).
- Sơ đồ khối (Flowchart): Sử dụng các ký hiệu chuẩn gồm hình e-líp (Bắt đầu/Kết thúc), hình chữ nhật (Tính toán xử lý), hình bình hành (Nhập/Xuất), hình thoi (Rẽ nhánh điều kiện logic) và mũi tên luồng điều khiển. Minh họa chi tiết qua bài toán giải phương trình bậc hai $ax^2 + bx + c = 0$ và tìm số nhỏ nhất/lớn nhất trong dãy số.
- Đánh giá độ phức tạp thời gian: Ước lượng số lượng phép toán xử lý theo kích thước dữ liệu đầu vào $n$ thông qua hàm tiệm cận bậc $O$:
- $O(\log_2 n)$: Độ phức tạp logarit.
- $O(n)$: Độ phức tạp tuyến tính (ví dụ: tính tổng dãy $n$ số).
- $O(n \cdot \log_2 n)$: Độ phức tạp $n \log n$.
- $O(a^n)$: Độ phức tạp lũy thừa.
Chương 2: Ngôn ngữ lập trình C/C++
- Bảng ký hiệu và mã ký tự ASCII:
- Ký tự điều khiển: Mã thập phân từ $0$ đến $31$ (
NUL - 0, BEL - 7, BS - 8, HT - 9, LF - 10, CR - 13, ESC - 27).
- Ký tự in được: Mã thập phân từ $32$ đến $127$ (Khoảng trắng - 32, Chữ số
0-9 từ 48-57, Chữ hoa A-Z từ 65-90, Chữ thường a-z từ 97-122).
- Ký tự mở rộng: Mã thập phân từ $128$ đến $255$ (€, ©, ®, ±, $\mu$, v.v.).
- Hệ thống định danh (Identifiers) và Từ khóa (Keywords): Quy tắc đặt tên (bắt đầu bằng chữ cái hoặc gạch dưới
_, phân biệt hoa/thường); liệt kê bảng từ khóa chuẩn (asm, auto, bool, break, case, catch, class, const, delete, double, else, enum, extern, float, for, goto, if, inline, int, long, namespace, new, operator, private, public, return, short, sizeof, static, struct, switch, template, this, throw, typedef, union, unsigned, virtual, void, volatile, while, v.v.).
- Các kiểu dữ liệu cơ bản:
- Kiểu ký tự:
char, unsigned char (1 byte).
- Kiểu số nguyên:
short int (2 bytes, miền $-32768$ đến $32767$), int (4 bytes, miền $-2147483648$ đến $2147483647$), unsigned int (4 bytes, $0$ đến $4294967295$), long, unsigned long.
- Kiểu số thực:
float (4 bytes, độ chính xác đơn $\pm 3.4 \times 10^{\pm 38}$), double (8 bytes, độ chính xác kép $\pm 1.7 \times 10^{\pm 308}$), long double (12 bytes).
- Kiểu logic:
bool (1 byte, nhận true/false; trong C/C++ quy ước giá trị $0$ là sai, khác $0$ là đúng).
- Hằng số và Biến nhớ: Định nghĩa hằng qua tiền xử lý
#define, cơ chế phân bổ ô nhớ vật lý theo địa chỉ byte (mô hình ô nhớ 1000, 1001, 1002...).
- Hệ thống toán tử phong phú:
- Số học:
+, -, *, / (chia nguyên hoặc chia thực), % (chia lấy dư nguyên).
- Quan hệ và Logic:
>, <, >=, <=, ==, !=, &&, ||, !.
- Thao tác bit:
& (AND), | (OR), ^ (XOR), ~ (NOT đảo bit), << (dịch trái), >> (dịch phải).
- Toán tử tăng/giảm và gán kết hợp:
++, -- (phân biệt tiền tố ++a và hậu tố a++), +=, -=, *=, /=, %=.
- Ép kiểu tường minh và tự động:
(tên_kiểu) biểu_thức.
- Cấu trúc tệp chương trình C/C++: Khung mã nguồn chuẩn gồm nạp thư viện tiêu chuẩn (
<stdio.h>, <conio.h>, <iostream.h>, <stdlib.h>, <math.h>, <string.h>, v.v.), định nghĩa hằng, định nghĩa kiểu, khai báo hàm con, biến toàn cục và hàm chính int main() { ... return 0; }.
- Môi trường phát triển: Giới thiệu Dev-C++, Turbo C++ 3.0, Microsoft Visual C++ 6.0/.NET.
Chương 3: Cấu trúc lệnh trong lập trình
- Cấu trúc tuần tự và Vào/Ra dữ liệu:
- Cơ chế I/O chuẩn (
<stdio.h>): Hàm printf() hiển thị dữ liệu với định dạng (%d, %f, %s, %c, %x), hàm scanf() nhận dữ liệu qua địa chỉ con trỏ &, hàm gets(), hàm xóa bộ đệm bàn phím fflush(stdin).
- Cơ chế I/O dòng (
<iostream.h>): Đối tượng cin >>, cout <<, các phương thức quản lý dòng cin.get(), cin.ignore(), cin.clear().
- Cấu trúc rẽ nhánh: Lệnh điều kiện
if, if-else, cấu trúc lựa chọn đa trường hợp switch-case-default.
- Cấu trúc lặp: Vòng lặp xác định
for, vòng lặp kiểm tra điều kiện trước while, vòng lặp kiểm tra điều kiện sau do-while, các lệnh điều khiển bước lặp break, continue.
Chương 4: Lập trình cấu trúc
- Phương pháp phân rã mô-đun: Khái niệm hàm (function), cấu trúc định nghĩa hàm, tầm vực biến cục bộ (local scope) và biến toàn cục (global scope).
- Cơ chế truyền tham số: Phân biệt truyền tham trị (pass-by-value) và truyền tham chiếu/địa chỉ (pass-by-reference).
- Kỹ thuật nâng cao trong xử lý hàm:
- Hàm đệ quy (Recursion): Bản chất lưu trữ trên Call Stack, điều kiện dừng và bước đệ quy.
- Hàm nạp chồng (Function Overloading): Định nghĩa nhiều hàm cùng tên nhưng khác danh sách tham số.
- Hàm mẫu (Function Templates): Cơ chế khái quát hóa kiểu dữ liệu cho thuật toán dùng từ khóa
template.
Chương 5: Phương pháp tổ chức dữ liệu theo mảng và Con trỏ
- Mảng tĩnh: Mảng một chiều (duyệt, tìm kiếm, sắp xếp), mảng hai chiều (ma trận toán học), mảng ký tự và thư viện xử lý xâu chuỗi (
<string.h>).
- Con trỏ và Bộ nhớ động: Khái niệm con trỏ trỏ tới địa chỉ ô nhớ, toán tử lấy địa chỉ
& và toán tử giải tham chiếu *, các phép toán số học trên con trỏ, cơ chế cấp phát và giải phóng bộ nhớ động (malloc/free trong C, toán tử new/delete trong C++).
Chương 6: Cấu trúc dữ liệu và Tệp tin
- Kiểu dữ liệu cấu trúc (
struct): Gom nhóm các trường dữ liệu thuộc nhiều kiểu khác nhau vào một bản ghi, mảng các cấu trúc.
- Cấu trúc dữ liệu động: Khái niệm danh sách liên kết đơn (Single Linked List), cấu trúc cây (Tree) cơ bản.
- Xử lý tệp tin (File I/O): Đọc/ghi luồng dữ liệu văn bản và nhị phân lên thiết bị lưu trữ ngoài/ổ đĩa thông qua các hàm thư viện chuẩn và đối tượng tệp (
fstream).
Kiến thức nền tảng được xây dựng
Giáo trình xây dựng hệ thống nguyên lý khoa học máy tính thông qua các mô hình sau:
- Mô hình tính toán tuần tự: Chương trình thực thi tuần tự từng câu lệnh theo cơ chế thanh ghi đếm lệnh (Program Counter) của vi xử lý.
- Mô hình phân vùng bộ nhớ: Phân định rõ ràng giữa vùng nhớ mã lệnh (Code Segment), vùng nhớ biến tĩnh/toàn cục (Data Segment), vùng nhớ ngăn xếp (Stack Segment) dành cho tham số/biến cục bộ của hàm, và vùng nhớ cấp phát tự do (Heap Segment) điều khiển qua con trỏ.
- Nguyên tắc hình thức hóa giải thuật: Quy đổi các bài toán thực tế (tính toán số học, giải phương trình, hoán vị phần tử, kiểm tra số nguyên tố) thành các cấu trúc điều khiển cơ bản (Tuần tự - Chọn lọc - Lặp).
Kỹ năng phát triển
Thông qua hệ thống lý thuyết và bài tập, giáo trình rèn luyện 3 nhóm năng lực chuyên môn:
- Năng lực giải thuật và phân tích logic: Đọc hiểu, thiết kế và tối ưu sơ đồ khối giải thuật; đánh giá tiệm cận thời gian chạy của bài toán.
- Kỹ năng cú pháp và lập trình C/C++ chuẩn: Khai báo và sử dụng chính xác hệ thống kiểu dữ liệu, viết biểu thức logic phức hợp, vận dụng đúng mức độ ưu tiên của toán tử, bao gồm cả kỹ thuật thao tác trực tiếp trên bit (Bitwise manipulation).
- Kỹ năng gỡ lỗi và kiểm thử phần mềm: Phân biệt và sửa chữa lỗi biên dịch (Compile-time syntax errors), lỗi thực thi (Runtime errors như tràn bộ đệm, chia cho 0, vòng lặp vô tận), và kỹ thuật kiểm soát dòng vào/ra qua
fflush(stdin) hay cin.clear().
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 3 thành phần đồng bộ trong mỗi chương:
+--------------------------------------------------------------------------+
| QUY CHUẨN CẤU TRÚC 3 THÀNH PHẦN TRONG MỖI CHƯƠNG |
+--------------------------------------------------------------------------+
| 1. Lý thuyết & Khái niệm: Diễn giải hình thức kèm sơ đồ, ví dụ minh họa |
| 2. Bài tập mẫu có hướng dẫn: Phân tích thuật toán & mã nguồn C/C++ chuẩn |
| 3. Bài tập tự luyện: Hệ thống bài toán đa cấp độ để sinh viên tự cài đặt |
+--------------------------------------------------------------------------+
- Phần thứ nhất - Lý thuyết cơ sở và Minh họa trực quan: Trình bày định nghĩa, cú pháp, quy tắc thực thi. Mọi khái niệm đều đi kèm bảng phân loại (như bảng mã ASCII, bảng từ khóa, bảng kiểu dữ liệu, bảng chân trị logic) hoặc hình vẽ minh họa kiến trúc bộ nhớ, sơ đồ khối luồng lệnh.
- Phần thứ hai - Bài tập có hướng dẫn và lời giải chi tiết: Cung cấp đề bài, phương pháp giải, thuật toán (dạng mô tả hoặc sơ đồ khối) và toàn bộ mã nguồn viết bằng C/C++. Các chương trình mẫu đều được biên dịch và kiểm thử thành công trên môi trường Dev-C++.
- Phần thứ ba - Hệ thống bài tập tự luyện: Tập hợp các bài toán chưa có lời giải đòi hỏi người học tự thiết kế thuật toán, vẽ sơ đồ khối và cài đặt chương trình.
Quy trình tự học khuyến nghị từ nhóm tác giả
- Bước 1: Đọc kỹ nội dung lý thuyết trước mỗi chương, đối chiếu với các bảng quy tắc cú pháp và sơ đồ minh họa.
- Bước 2: Nghiên cứu các bài tập mẫu có hướng dẫn, phân tích cách thức chuyển hóa từ thuật toán lý thuyết sang mã lệnh C/C++.
- Bước 3: Nhập trực tiếp mã nguồn vào môi trường IDE (Dev-C++), thực hiện biên dịch, chạy thử nghiệm với các bộ dữ liệu đầu vào ($Input$) khác nhau để quan sát kết quả đầu ra ($Output$).
- Bước 4: Tự lập trình giải quyết hệ thống bài tập tự luyện ở cuối chương để củng cố kỹ năng lập trình độc lập.
Điểm nổi bật và cập nhật
- Tính lưỡng tính giữa chuẩn C và mở rộng C++: Giáo trình giới thiệu song song hai hệ thống xử lý: cơ chế vào/ra định dạng cổ điển của C qua
<stdio.h> (printf/scanf) và cơ chế dòng hướng đối tượng của C++ qua <iostream.h> (cout/cin). Điều này giúp sinh viên hiểu rõ bản chất chuyển tiếp từ lập trình thủ tục sang các tính năng nâng cao của C++ như nạp chồng hàm (overloading) và hàm mẫu (template).
- Trực quan hóa cấu trúc dữ liệu và ô nhớ máy tính: Thay vì giải thích trừu tượng, giáo trình đưa ra các sơ đồ minh họa trực quan về cách biến nhớ chiếm dụng các ô nhớ liên tiếp trong RAM (địa chỉ 1000, 1001, 1002...) tương ứng với kích thước byte (
int: 4 bytes, char: 1 byte, double: 8 bytes), giúp người học nắm vững bản chất của cơ chế ép kiểu và con trỏ.
- Hệ thống bảng tra cứu chuẩn hóa: Tích hợp các bảng dữ liệu kỹ thuật đầy đủ:
- Bảng mã ASCII chi tiết gồm 3 cột hệ đếm (DEC, HEX, BIN) và mô tả ngữ nghĩa cho ký tự điều khiển, ký tự in được và ký tự mở rộng.
- Bảng kết quả các phép toán logic (
&&, ||, !) và thao tác bit (&, |, ^, ~).
- Bảng kích thước và miền giá trị các kiểu dữ liệu trên kiến trúc vi xử lý x86 hệ điều hành Windows 64-bit.
- Tính thực chứng trên phần mềm IDE Dev-C++: Toàn bộ các ví dụ và đoạn mã mẫu trong tài liệu đều được viết, biên dịch và chạy kiểm nghiệm thực tế trên môi trường Dev-C++, đảm bảo tính chuẩn xác về mặt cú pháp và kết quả đầu ra.
Đối tượng sử dụng giáo trình
+-------------------------------------------------------------------------------+
| MA TRẬN ĐỐI TƯỢNG SỬ DỤNG VÀ ĐIỀU KIỆN TIÊN QUYẾT |
+-------------------------------------------------------------------------------+
| • Đối tượng chính: |
| - Sinh viên năm 1 & năm 2 ngành Công nghệ thông tin, Tin học, Kỹ thuật PM. |
| - Sinh viên các khối ngành kỹ thuật học môn Tin học đại cương / Lập trình C.|
| |
| • Kiến thức tiên quyết (Prerequisites): |
| - Kiến thức Toán học phổ thông (Đại số, logic mệnh đề, phương trình). |
| - Kỹ năng thao tác máy tính cơ bản (quản lý tệp tin, soạn thảo văn bản). |
| - Không yêu cầu kiến thức lập trình từ trước. |
| |
| • Ứng dụng đối với Giảng viên: |
| - Làm giáo trình giảng dạy chính thức cho học phần Kỹ thuật lập trình. |
| - Sử dụng ngân hàng bài tập mẫu và bài tập sơ đồ khối để ra đề kiểm tra. |
+-------------------------------------------------------------------------------+
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 thiết kế chuyên biệt cho sinh viên đại học năm thứ nhất và năm thứ hai thuộc các ngành Công nghệ thông tin, Tin học, Kỹ thuật phần mềm, Hệ thống thông tin hoặc sinh viên khối ngành kỹ thuật cần học phần lập trình cơ sở.
2. Cần kiến thức nền nào để học giáo trình này?
Người học chỉ cần nắm vững kiến thức toán học phổ thông (đại số cơ bản, logic học) và kỹ năng sử dụng máy tính căn bản. Giáo trình bắt đầu từ những khái niệm sơ cấp nhất của lập trình nên không đòi hỏi người học phải có kiến thức lập trình từ trước.
3. Điểm khác biệt giữa giáo trình này với các tài liệu lập trình C khác?
Giáo trình kết hợp chặt chẽ giữa lý thuyết giải thuật hình thức (đặc biệt là phương pháp biểu diễn bằng sơ đồ khối chuẩn hóa và ước lượng độ phức tạp Big-$O$) với kỹ thuật lập trình C/C++ thực hành. Ngoài ra, tài liệu diễn giải chi tiết cơ chế bộ nhớ vật lý và cung cấp cấu trúc 3 phần rõ ràng trong mỗi chương.
4. Làm sao để tự học giáo trình hiệu quả nhất?
Người học nên tuân thủ quy trình 4 bước được tác giả hướng dẫn trong Lời nói đầu: Đọc lý thuyết $\rightarrow$ Xem ví dụ minh họa và sơ đồ khối $\rightarrow$ Cài đặt và chạy thử mã nguồn mẫu trên IDE Dev-C++ $\rightarrow$ Tự giải hệ thống bài tập tự luyện cuối chương.
5. Giáo trình sử dụng môi trường phát triển (IDE) nào để thực hành?
Mã nguồn trong giáo trình được biên dịch và kiểm thử chuẩn tắc trên môi trường Dev-C++. Bên cạnh đó, tài liệu cũng giới thiệu các môi trường lập trình tương thích khác như Turbo C++ 3.0 và Microsoft Visual C++.
Kết luận
Giáo trình "Kỹ thuật lập trình cơ sở với ngôn ngữ C/C++" của PGS.TS Dương Thăng Long (Chủ biên) và Trương Tiến Tùng là tài liệu đào tạo đại học chuẩn mực, cung cấp đầy đủ hệ thống lý thuyết giải thuật, cú pháp ngôn ngữ C/C++ và phương pháp tổ chức dữ liệu cơ bản.
Lộ trình học tập được thiết kế khoa học: xuất phát từ nền tảng giải thuật và biểu diễn sơ đồ khối (Chương 1), tiếp cận cú pháp, kiểu dữ liệu và toán tử (Chương 2), làm chủ các cấu trúc điều khiển và vào/ra dữ liệu (Chương 3), mở rộng sang tư duy lập trình cấu trúc theo hàm (Chương 4), quản trị bộ nhớ động và mảng (Chương 5), tiến tới tổ chức dữ liệu cấu trúc và tệp tin lưu trữ ngoài (Chương 6). Tài liệu là nguồn tham khảo chính quy cho công tác giảng dạy và học tập trong các cơ sở đào tạo đại học kỹ thuật trên toàn quốc.