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

Giáo trình Lập trình cơ bản (mã môn học: MH 14) là tài liệu đào tạo chuyên môn bắt buộc thuộc chương trình đào tạo nghề Công nghệ thông tin (chuyên ngành Ứng dụng phần mềm), được ban hành và lưu hành nội bộ bởi Trường Trung cấp nghề Tổng hợp Hà Nội (chủ biên: Phạm Văn Thuận, năm 2025). Môn học có tổng thời lượng 60 giờ, bao gồm 20 giờ lý thuyết, 37 giờ thực hành, thảo luận, bài tập và 3 giờ kiểm tra đánh giá. Về mặt vị trí trong chương trình đào tạo, môn học được bố trí giảng dạy sau các môn học chung nhằm trang bị nền tảng giải thuật và kỹ thuật lập trình sơ cấp trước khi người học tiếp cận các môn học chuyên ngành nâng cao.

Mục tiêu học tập của giáo trình được xác định rõ trên ba phương diện:

  • Kiến thức: Cung cấp hệ thống khái niệm căn bản về ngôn ngữ lập trình C bao gồm cú pháp, từ khóa, các kiểu dữ liệu sơ cấp, biến, hằng, biểu thức, cấu trúc điều khiển rẽ nhánh, vòng lặp, kỹ thuật xây dựng hàm, cùng các cấu trúc dữ liệu cơ sở như mảng và chuỗi ký tự; mô tả thuật toán giải quyết các bài toán kỹ thuật đơn giản.
  • Kỹ năng: Người học có khả năng cài đặt, biên dịch và thực thi chương trình ứng dụng đơn giản trên môi trường phát triển tích hợp (IDE); đọc hiểu, kiểm thử và chỉnh sửa mã nguồn C có sẵn.
  • Năng lực tự chủ và trách nhiệm: Rèn luyện tác phong kỹ thuật cẩn thận, chính xác, tư duy logic khoa học, khả năng làm việc độc lập và làm việc nhóm, tạo nền tảng để tự nâng cao trình độ chuyên môn hoặc liên thông lên các bậc học cao hơn.

Về cấu trúc và cách tiếp cận, giáo trình gồm 6 chương được thiết kế tích hợp chặt chẽ giữa lý thuyết và thực hành, trong đó thời lượng thực hành chiếm hơn 61% tổng khối lượng môn học. Điểm đặc trưng của tài liệu là phương pháp tiếp cận trực tiếp vào chuẩn ANSI C, gắn kết chặt chẽ cú pháp ngôn ngữ với các bài toán đại số, hình học giải tích và các bài toán kỹ thuật thực 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 được cấu trúc thành 6 chương trọng tâm, phản ánh tiến trình tiếp cận từ môi trường phát triển, cú pháp vi mô đến các cấu trúc dữ liệu và điều khiển:

  • Chương 1: Tổng quan về ngôn ngữ C (Mã chương: MH 14 – 01; thời lượng: 5 giờ - 2 giờ lý thuyết, 3 giờ thực hành): Trình bày lịch sử hình thành của ngôn ngữ C do Dennis Ritchie phát triển tại phòng thí nghiệm Bell vào cuối thập niên 1960 - đầu thập niên 1970, kế thừa từ ngôn ngữ BCPL (Martin Richards, 1967) và ngôn ngữ B (Ken Thompson, 1970) trên hệ thống DEC PDP-11; xuất bản phẩm nền tảng của Dennis Ritchie và B.W Kernighan (1978); quá trình chuẩn hóa ANSI C. Khái quát các đặc tính kỹ thuật: tính cô đọng (32 từ khóa chuẩn, 40 toán tử chuẩn), tính cấu trúc, tính tương thích qua bộ tiền xử lý, tính linh hoạt và quy trình biên dịch liên kết (compile and link). Hướng dẫn cài đặt, cấu hình môi trường Dev-C++ của tác giả Colin Laplace trên hệ điều hành Windows và công cụ biên dịch trực tuyến OnlineGDB C Compiler.
  • Chương 2: Các thành phần cơ bản (Mã chương: MH 14 – 02; thời lượng: 10 giờ - 4 giờ lý thuyết, 6 giờ thực hành): Khảo sát tập ký hiệu mã ASCII, hệ thống 32 từ khóa chuẩn của Turbo C (auto, break, case, char, const, continue, default, do, double, else, enum, extern, float, for, goto, if, int, long, register, return, short, signed, sizeof, static, struct, switch, typedef, union, unsigned, void, volatile, while); quy tắc định danh (tên biến, hàm tối đa 32 ký tự có nghĩa); cú pháp chú thích /* ... */. Phân loại hệ thống kiểu dữ liệu sơ cấp: số nguyên 1 byte (char, unsigned char), số nguyên 2 byte (short int, int, enum, unsigned int), số nguyên 4 byte (long, unsigned long), số thực dấu phẩy động (float 4 byte, double 8 byte, long double 10 byte) và kiểu void. Quy tắc khai báo biến, phân biệt biến toàn cục (ngoài hàm) và biến cục bộ (trong hàm), toán tử lấy địa chỉ &. Cú pháp định nghĩa hằng (const, #define, hằng bát phân tiền tố 0, hằng thập lục phân tiền tố 0x, hằng ký tự, hằng chuỗi kết thúc bởi ký tự rỗng \0). Cấu trúc tệp mã nguồn C bao gồm các chỉ thị tiền xử lý (#include, #define), từ khóa định nghĩa kiểu typedef, nguyên mẫu hàm (prototype), biến toàn cục, hàm chính main(). Phân loại các thư viện chuẩn thông dụng (stdio.h, conio.h, math.h, alloc.h, io.h, graphics.h). Cú pháp và định dạng nhập xuất dữ liệu qua scanf() và printf() với các ký tự định dạng (%d, %f, %c, %s, %o, %x, %e), kỹ thuật làm sạch bộ đệm fflush(stdin) và đọc chuỗi có khoảng trắng bằng gets().
  • Chương 3: Các lệnh cấu trúc (Mã chương: MH 14 – 03; thời lượng: 15 giờ - 5 giờ lý thuyết, 10 giờ thực hành): Khái niệm giá trị chân lý trong ngôn ngữ C (giá trị bằng 0 đại diện cho điều kiện sai, khác 0 đại diện cho điều kiện đúng). Cấu trúc rẽ nhánh if...else dạng đầy đủ, dạng không đầy đủ và kỹ thuật lồng ghép điều kiện. Cấu trúc lựa chọn đa nhánh switch...case...default áp dụng cho biểu thức số nguyên hoặc ký tự. Các cấu trúc lặp cơ bản: vòng lặp for (biểu thức khởi tạo, biểu thức điều kiện, biểu thức bước nhảy), vòng lặp while (kiểm tra điều kiện trước khi thực thi khối lệnh) và vòng lặp do...while (thực thi khối lệnh tối thiểu một lần trước khi kiểm tra điều kiện). Các lệnh điều khiển luồng đặc biệt: lệnh ngắt break để thoát khỏi vòng lặp hoặc cấu trúc switch, và lệnh continue để bỏ qua các câu lệnh còn lại trong thân vòng lặp để chuyển sang bước lặp tiếp theo.
  • Chương 4: Hàm (Thời lượng: 10 giờ - 3 giờ lý thuyết, 5 giờ thực hành, 2 giờ kiểm tra): Khái niệm về hàm và kỹ thuật phân rã mô-đun hóa chương trình; quy tắc hoạt động của hàm; cú pháp định nghĩa hàm, khai báo nguyên mẫu và lời gọi hàm; phân loại tham số hình thức và đối số thực tế; cơ chế truyền tham số cho hàm; giới thiệu thuật toán đệ quy.
  • Chương 5: Mảng (Thời lượng: 10 giờ - 3 giờ lý thuyết, 7 giờ thực hành): Khái niệm cấu trúc dữ liệu mảng tĩnh; cú pháp khai báo mảng một chiều, mảng hai chiều (ma trận dòng và cột) và mảng nhiều chiều; phương pháp vừa khai báo vừa khởi tạo giá trị ban đầu; kỹ thuật duyệt và truy xuất các phần tử mảng thông qua chỉ số.
  • Chương 6: Chuỗi ký tự (Thời lượng: 10 giờ - 3 giờ lý thuyết, 6 giờ thực hành, 1 giờ kiểm tra): Định nghĩa chuỗi ký tự bản chất là mảng ký tự một chiều kết thúc bằng ký tự \0; cách thức khai báo chuỗi thông qua mảng ký tự hoặc con trỏ ký tự; các thao tác nhập và xuất chuỗi màn hình; giới thiệu các hàm xử lý chuỗi ký tự chuẩn trong thư viện ngôn ngữ C.

Tiến trình nội dung tuân thủ logic chặt chẽ: thiết lập môi trường thao tác $\rightarrow$ nắm vững cú pháp và kiểu dữ liệu sơ cấp $\rightarrow$ điều khiển luồng chương trình qua cấu trúc rẽ nhánh và vòng lặp $\rightarrow$ mô-đun hóa mã nguồn thông qua hàm $\rightarrow$ quản lý tập hợp dữ liệu bằng cấu trúc mảng và chuỗi ký tự.

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

Giáo trình xây dựng cho người học ba nhóm tảng lý thuyết và nguyên lý cốt lõi:

  • Lý thuyết biên dịch chương trình: Làm rõ chu trình xử lý mã nguồn qua hai bước độc lập gồm giai đoạn tiền xử lý (preprocessor) nhằm diễn giải các chỉ thị dẫn hướng bắt đầu bằng ký hiệu # (#include, #define) và giai đoạn biên dịch liên kết (compile and link) chuyển mã nguồn thành mã máy đối tượng (object code) rồi tạo tệp thực thi độc lập (executable).
  • Nguyên lý tổ chức và cấp phát bộ nhớ: Cơ chế phân định bộ nhớ vật lý dựa trên dung lượng byte của từng kiểu dữ liệu (từ 1 byte của char đến 10 byte của long double); phạm vi tác động của biến toàn cục (ảnh hưởng toàn chương trình) và biến cục bộ (chỉ có giá trị trong khối lệnh {}); nguyên lý định vị địa chỉ ô nhớ qua toán tử & phục vụ thao tác nhập dữ liệu.
  • Nguyên lý điều khiển luồng logic: Mô hình hóa luồng xử lý dữ liệu thông qua các biểu thức toán tử quan hệ và logic; cơ chế đánh giá điều kiện dừng của các thuật toán lặp xác định (for) và lặp không xác định (while, do...while).

Kỹ năng phát triển

Thông qua nội dung môn học, người học phát triển các nhóm năng lực thực tế:

  • Kỹ năng kỹ thuật (Technical skills): Cài đặt và sử dụng thành thạo IDE Dev-C++ trên Windows cùng công cụ OnlineGDB trên nền tảng web; sử dụng các phím tắt điều khiển biên dịch và thực thi (F9, Ctrl + F9, Ctrl + F10, Ctrl + N, Ctrl + S); sử dụng chính xác các hàm trong thư viện chuẩn như stdio.h (printf, scanf, fflush, gets, puts), math.h (sqrt, pow, abs, log, sin), conio.h (clrscr, getch); nhận diện và xử lý các lỗi cú pháp khi trình biên dịch báo lỗi.
  • Kỹ năng phân tích (Analytical skills): Chuyển đổi các bài toán toán học, kỹ thuật từ biểu diễn công thức tự nhiên sang mô hình giải thuật; vẽ và phân tích sơ đồ khối giải thuật rẽ nhánh và lặp; xác định chính xác kiểu dữ liệu và phạm vi biến tương ứng với miền giá trị bài toán.
  • Năng lực thực hành nghề nghiệp (Practical competencies): Viết các chương trình tính toán kỹ thuật hoàn chỉnh (tính diện tích, chu vi tam giác theo công thức Heron, tính bán kính đường tròn ngoại tiếp, tính tích vô hướng hai véc tơ, giải bất phương trình bậc nhất, giải hệ phương trình hai ẩn, tính toán ma trận); xây dựng giao diện tương tác dòng lệnh cơ bản; đọc hiểu và tái cấu trúc mã nguồn có sẵn.

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

Giáo trình áp dụng mô hình giảng dạy tích hợp (mô-đun hóa), kết hợp bài giảng lý thuyết ngắn gọn với việc thực hành trực tiếp trên máy vi tính. Trong tổng thể 60 giờ học, phân bổ thời lượng thể hiện rõ nét quan điểm đào tạo kỹ năng nghề:

  • Lý thuyết: 20 giờ (chiếm 33,3%).
  • Thực hành, thí nghiệm, thảo luận, bài tập: 37 giờ (chiếm 61,7%).
  • Kiểm tra đánh giá tập trung: 3 giờ (chiếm 5,0%).

Hệ thống bài tập và nghiên cứu tình huống trong tài liệu được thiết kế bám sát thực tế, chia thành hai nhóm chính:

[Bài tập Lập trình Cơ bản (MH 14)]
        Chuỗi lũy thừa S = 1 + pow(x, i)/(i+1); In ma trận số nguyên n dòng x m cột

Phương pháp đánh giá kết quả học tập bao gồm đánh giá thường xuyên trong các buổi thực hành và đánh giá định kỳ bằng bài thi thực hành trực tiếp trên máy. Giáo trình bố trí 2 bài kiểm tra định kỳ chính thức:

  • Bài kiểm tra 1 (2 giờ) tại Chương 4: Đánh giá kỹ năng phân rã bài toán, xây dựng hàm tự tạo, truyền tham số và hàm đệ quy.
  • Bài kiểm tra 2 (1 giờ) tại Chương 6: Đánh giá kỹ năng thao tác trên cấu trúc chuỗi ký tự và mảng ký tự.

Đối với hoạt động tự học, giáo trình định hướng người học tự khai thác hệ thống trợ giúp (Help) tích hợp sẵn trong Dev-C++, sử dụng trình biên dịch trực tuyến OnlineGDB (https://www.onlinegdb.com/online_c_compiler) để thực hành lập trình mà không phụ thuộc vào cấu hình cài đặt cục bộ, đồng thời thực hiện lại toàn bộ các ví dụ mã nguồn mẫu được cung cấp chi tiết trong từng bài học.


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

Giáo trình Lập trình cơ bản của Trường Trung cấp nghề Tổng hợp Hà Nội (ấn bản năm 2025) thể hiện các điểm cập nhật cụ thể so với các tài liệu giảng dạy truyền thống:

  • Cập nhật công cụ và môi trường phát triển: Thay thế hoàn toàn các trình biên dịch cổ điển trên môi trường DOS 16-bit (như Turbo C 2.0 hoặc Borland C 3.1) bằng IDE Dev-C++ của Colin Laplace chạy trên nền tảng hệ điều hành Windows hiện đại; bổ sung giải pháp thực hành trên nền tảng đám mây thông qua trình biên dịch trực tuyến OnlineGDB C Compiler, giúp người học có thể viết, biên dịch và chạy mã C ngay trên trình duyệt web mà không cần cài đặt.
  • Bám sát chuẩn công nghiệp ANSI C: Cung cấp danh mục 32 từ khóa chuẩn, 40 toán tử chuẩn, chuẩn hóa cú pháp khai báo hàm, sử dụng thư viện chuẩn (stdio.h, math.h), giúp mã nguồn có tính tương thích cao, có thể biên dịch thông suốt bằng các trình biên dịch hiện đại như gcc trong bộ GNU Compiler Collection hoặc vc.exe trong Microsoft Visual Studio.
  • Tính ứng dụng thực tiễn trong kỹ thuật: Loại bỏ các lý thuyết trừu tượng không phục vụ sản xuất; tập trung mã hóa các công thức toán học - vật lý thành chương trình cụ thể, chẳng hạn như tính bán kính đường tròn ngoại tiếp $R = \frac{a \cdot b \cdot c}{4S}$ với diện tích $S$ tính theo công thức Heron $S = \sqrt{p(p-a)(p-b)(p-c)}$, giải hệ phương trình hai ẩn, tính toán độ dài véc tơ và hệ số góc đường thẳng.

Đố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 và mục đích cụ thể:

  • Học sinh, sinh viên: Người học trình độ Trung cấp nghề hoặc Cao đẳng, Đại học thuộc chuyên ngành Công nghệ thông tin (ứng dụng phần mềm, kỹ thuật phần mềm, khoa học máy tính). Tài liệu được sử dụng ở học kỳ đầu tiên khi bắt đầu tiếp cận môn cơ sở ngành lập trình.
  • Điều kiện tiên quyết (Prerequisites): Người học cần hoàn thành các môn học chung cơ bản, nắm vững kỹ năng sử dụng máy tính văn phòng cơ bản (thao tác tệp tin, soạn thảo văn bản) và kiến thức toán học phổ thông (đại số sơ cấp, các phép toán lượng giác, mũ, logarit, hình học giải tích phẳng).
  • Giảng viên: Tài liệu đóng vai trò là khung chương trình chi tiết để xây dựng giáo án lý thuyết và bài tập thực hành trên phòng máy vi tính cho thời lượng 60 giờ học, cung cấp hệ thống mã nguồn mẫu và đáp án giải thuật chuẩn để đối chiếu kết quả thực hành của học sinh.
  • Người tự học và kỹ thuật viên: Dùng làm tài liệu tra cứu nhanh các quy tắc cú pháp ngôn ngữ C, danh mục từ khóa, các hàm thư viện vào ra chuẩn và kỹ thuật xử lý mảng, chuỗi ký tự căn bản.

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 thiết kế cho người mới bắt đầu học lập trình, cụ thể là học sinh, sinh viên ngành Công nghệ thông tin hệ trung cấp, cao đẳng hoặc đại học cần một tài liệu tiếp cận ngôn ngữ C theo hướng thực hành kỹ năng.

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

Người học chỉ cần có kiến thức tin học phổ thông (biết sử dụng máy vi tính, bàn phím, thao tác quản lý thư mục/tệp tin) và kiến thức toán học đại số, hình học cơ bản bậc phổ thông để hiểu và cài đặt các công thức tính toán.

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ý thuyết khác là gì?

Giáo trình phân bổ tỷ lệ thực hành chiếm hơn 61% (37/60 giờ), tinh giản các lý luận cấu trúc dữ liệu phức tạp, tập trung cung cấp mã nguồn hoàn chỉnh có chú thích chi tiết cho các bài toán tính toán cụ thể và tích hợp hướng dẫn cả phần mềm Dev-C++ lẫn trình biên dịch trực tuyến OnlineGDB.

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

Người học cần tự gõ trực tiếp từng đoạn mã mẫu từ Chương 1 đến Chương 6 vào phần mềm Dev-C++ hoặc OnlineGDB (không thực hiện sao chép - dán), quan sát thông báo lỗi của trình biên dịch khi có lỗi cú pháp, tự sửa lỗi, sau đó tự làm lại 10 bài tập thực hành ở cuối Chương 2 và các bài tập ở các chương tiếp theo.

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

Giáo trình tích hợp sẵn phần danh mục tài liệu tham khảo (trang 87), cung cấp địa chỉ tải phần mềm Dev-C++ trực tiếp từ SourceForge (https://sourceforge.net/projects/orwelldevcpp/) và liên kết thực hành trực tuyến tại OnlineGDB Compiler (https://www.onlinegdb.com/online_c_compiler).


Kết luận

Giáo trình Lập trình cơ bản (MH 14) của Trường Trung cấp nghề Tổng hợp Hà Nội là tài liệu học thuật có cấu trúc sư phạm rõ ràng, cung cấp kiến thức nền tảng về ngôn ngữ C thông qua việc tích hợp cân đối giữa lý thuyết cú pháp và kỹ năng lập trình thực tế.

Lộ trình học tập đề xuất theo giáo trình gồm 4 giai đoạn nối tiếp:

  1. Tiếp cận môi trường biên dịch và làm quen cú pháp sơ cấp, biến, kiểu dữ liệu, các hàm vào/ra chuẩn (Chương 1 - Chương 2).
  2. Xây dựng tư duy giải thuật với các cấu trúc điều khiển rẽ nhánh và vòng lặp lặp lại (Chương 3).
  3. Rèn luyện kỹ năng phân rã và mô-đun hóa chương trình thông qua cấu trúc hàm (Chương 4).
  4. Khai thác và xử lý các tập hợp dữ liệu có cấu trúc với mảng và chuỗi ký tự (Chương 5 - Chương 6).

Để mở rộng kiến thức, người học có thể tham khảo danh mục tài liệu nghiên cứu chuyên sâu tại trang 87 của giáo trình kết hợp tra cứu các tài liệu tiêu chuẩn ANSI C và thực hành mở rộng trên các nền tảng trực tuyến.