THÔNG TIN MÔ TẢ HỌC THUẬT: GIÁO TRÌNH MÔ ĐUN LẬP TRÌNH WINDOW 1


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

Giáo trình mô đun Lập trình window 1 (Mã mô đun: MĐ 22) là tài liệu học tập chính thức được biên soạn bởi tác giả Trần Thị Kim Ngọc, ban hành theo quyết định của Hiệu trưởng Trường Cao đẳng nghề An Giang thuộc Ủy ban nhân dân Tỉnh An Giang (2019). Tài liệu được xây dựng phục vụ chuyên ngành đào tạo Lập trình máy tính ở trình độ Cao đẳng.

Trong chương trình đào tạo, mô đun này thuộc nhóm mô đun chuyên môn bắt buộc, được bố trí giảng dạy trước mô đun Lập trình window 2. Để tiếp thu nội dung mô đun, người học cần có kiến thức tiên quyết về cấu trúc dữ liệu và lập trình hướng đối tượng.

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: Giải thích được các nguyên lý hoạt động của nền tảng Microsoft .NET, môi trường thực thi ngôn ngữ chung (CLR), không gian tên (namespace), hệ thống kiểu dữ liệu; vận dụng được các nguyên lý lập trình hướng đối tượng, kỹ thuật xử lý ngoại lệ, mảng, chuỗi ký tự, cơ chế ủy quyền và việc khai thác các lớp cơ sở trong thư viện System.
  • Kỹ năng: Xây dựng, biên dịch và gỡ lỗi được các chương trình ứng dụng trên giao diện dòng lệnh (Console Application) bằng ngôn ngữ C#.
  • Năng lực tự chủ và trách nhiệm: Hình thành thái độ làm việc cẩn thận, nghiêm túc và tuân thủ các quy chuẩn cú pháp trong phát triển phần mềm.

Về cấu trúc và thời lượng, giáo trình được thiết kế với tổng thời lượng 90 giờ, bao gồm 30 giờ lý thuyết, 57 giờ thực hành/thảo luận/bài tập và 3 giờ kiểm tra đánh giá. Cấu trúc nội dung tiếp cận từ các thành phần cú pháp cơ sở của ngôn ngữ C# đến các cơ chế lập trình hướng đối tượng nâng cao, tạo tiền đề kỹ thuật trực tiếp cho việc xây dựng ứng dụng giao diện đồ họa (Windows Form) ở các học phần tiếp theo.


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 phân bổ qua 8 bài học chuyên đề và 1 nội dung ôn tập tổng hợp:

[Bài 1: Cơ bản về C# (32h)] 
[Bài 2: Xây dựng lớp – Đối tượng (8h)] 
[Bài 3: Kế thừa – Đa hình (8h)] 
[Bài 4: Nạp chồng toán tử (12h)] 
[Bài 5: Cấu trúc (4h)] 
[Bài 6: Thực thi giao diện (12h)] 
[Bài 7: Mảng (8h)] 
[Bài 8: Xử lý chuỗi (4h)] 
[Ôn tập tổng hợp (2h)]
  • Bài 1: Cơ bản về C# (32 giờ: 10 giờ Lý thuyết, 21 giờ Thực hành, 1 giờ Kiểm tra): Trình bày hệ thống kiểu dữ liệu xây dựng sẵn (int, float, double, bool, string...) và kiểu dữ liệu do người dùng định nghĩa; phân loại kiểu giá trị (value type) và kiểu tham chiếu (reference type); kiểu liệt kê (enum); cách khai báo biến, hằng số (giá trị hằng literal, biểu tượng hằng const, danh sách liệt kê); biểu thức và câu lệnh; quy tắc khoảng trắng; cấu trúc điều khiển rẽ nhánh (if-else, switch-case với lệnh nhảy break, goto, default); các cấu trúc lặp (while, do-while, for, foreach); hệ thống toán tử (gán, số học, tự gán +=, -=, toán tử tăng/giảm tiền tố/hậu tố, quan hệ, logic, toán tử ba ngôi ?:); không gian tên (namespace, chỉ dẫn using); chỉ dẫn tiền xử lý (#define, #if, #else, #endif); cơ chế quản lý ngoại lệ (try-catch-finally, câu lệnh throw, lớp System.Exception, các thuộc tính Message, StackTrace, HelpLink, InnerException).
  • Bài 2: Xây dựng lớp – Đối tượng (8 giờ: 2 giờ Lý thuyết, 6 giờ Thực hành): Trình bày cú pháp khai báo lớp (class); các chỉ định truy cập (AccessModifier gồm public, private, protected, internal, internal protected); truyền tham số và nạp chồng phương thức; tạo đối tượng qua toán tử new và truy cập thành viên qua toán tử chấm (.); cấu trúc bộ khởi dựng (constructor, copy constructor); tham chiếu this; thành phần tĩnh (static field, static method, static constructor, private constructor cho lớp tiện ích); cơ chế thu dọn bộ nhớ tự động (Garbage Collection), bộ hủy đối tượng (destructor cú pháp ~ClassName()) và phương thức Finalize().
  • Bài 3: Kế thừa – Đa hình (8 giờ: 4 giờ Lý thuyết, 4 giờ Thực hành): Trình bày nguyên lý đặc biệt hóa và tổng quát hóa; cú pháp kế thừa giữa các lớp; định nghĩa và sử dụng lớp trừu tượng (abstract class); kỹ thuật xây dựng và phạm vi truy cập của các lớp lồng nhau (nested classes).
  • Bài 4: Nạp chồng toán tử (12 giờ: 4 giờ Lý thuyết, 8 giờ Thực hành): Hướng dẫn định nghĩa lại hành vi toán tử thông qua từ khóa operator; hỗ trợ ngôn ngữ cho toán tử số học, toán tử so sánh bằng và các toán tử chuyển đổi kiểu dữ liệu.
  • Bài 5: Cấu trúc (4 giờ: 2 giờ Lý thuyết, 2 giờ Thực hành): Khái niệm và cú pháp định nghĩa kiểu cấu trúc (struct); bản chất kiểu giá trị của cấu trúc so với lớp; các trường hợp tạo và sử dụng cấu trúc trong chương trình.
  • Bài 6: Thực thi giao diện (12 giờ: 3 giờ Lý thuyết, 8 giờ Thực hành, 1 giờ Kiểm tra): Cú pháp khai báo và thực thi giao diện (interface); truy cập phương thức giao diện; kỹ thuật thực thi phủ quyết giao diện; cơ chế thực thi giao diện tường minh (explicit interface implementation).
  • Bài 7: Mảng (8 giờ: 3 giờ Lý thuyết, 4 giờ Thực hành, 1 giờ Kiểm tra): Khởi tạo và quản lý danh sách mảng; cơ chế duyệt mảng thông qua vòng lặp foreach; các thuật toán cơ bản trên mảng một chiều và nhiều chiều.
  • Bài 8: Xử lý chuỗi (4 giờ: 2 giờ Lý thuyết, 2 giờ Thực hành): Thao tác trên đối tượng kiểu string, các phương thức xử lý chuỗi và kỹ thuật áp dụng biểu thức quy tắc (Regular Expressions) để kiểm tra, trích xuất dữ liệu.
  • Ôn tập (2 giờ Lý thuyết): Hệ thống hóa toàn bộ các khối kiến thức cú pháp, hướng đối tượng và kỹ năng gỡ lỗi chương trình.

Progression logic của giáo trình đi tuần tự từ mức cơ sở (cú pháp, kiểu dữ liệu, cấu trúc điều khiển, ngoại lệ) sang mô hình lập trình hướng đối tượng nền tảng (lớp, đối tượng, phương thức, thành viên tĩnh), nâng cao lên các đặc tính OOP chuyên sâu (kế thừa, đa hình, nạp chồng toán tử, struct, interface) và hoàn thiện với các cấu trúc dữ liệu thường dùng (mảng, chuỗi ký tự).

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

Giáo trình thiết lập hệ thống lý thuyết cốt lõi của nền tảng .NET và ngôn ngữ C#:

  1. Phân loại kiểu dữ liệu: Phân tách rõ ràng giữa kiểu giá trị (Value Type - lưu trữ trên stack, gồm các kiểu nguyên thủy, enum, struct) và kiểu tham chiếu (Reference Type - lưu trữ trên heap, gồm class, string, interface, array).
  2. Hệ thống xử lý ngoại lệ chuẩn CLR: Cấu trúc phân cấp của các lớp ngoại lệ kế thừa từ System.Exception (bao gồm ArgumentNullException, DivideByZeroException, ArithmeticException, IndexOutOfRangeException, InvalidCastException, NullReferenceException, OutOfMemoryException, OverflowException, StackOverflowException...), cơ chế lan truyền ngoại lệ (stack unwinding) và bảo toàn thông tin lỗi gốc qua InnerException.
  3. Quản lý tài nguyên và bộ nhớ: Nguyên lý thu dọn rác tự động của CLR, cơ chế hoạt động của khối finally, sự tương đương giữa destructor ~Class() với việc ghi đè phương thức Finalize() và gọi base.Finalize().
  4. Mô hình lập trình hướng đối tượng (OOP): Cơ chế đóng gói thông qua thuộc tính và cấp độ truy cập; quan hệ kế thừa và đa hình; tính trừu tượng qua abstract class và interface.

Kỹ năng phát triển

  • Kỹ năng kỹ thuật: Cài đặt, biên dịch và thực thi ứng dụng Console Application trên môi trường Visual Studio .NET (cụ thể minh họa trên Visual Studio .NET 2008); khai báo và phân chia không gian tên (namespace); sử dụng các chỉ thị tiền xử lý để kiểm soát quá trình biên dịch (#define, #if).
  • Kỹ năng phân tích: Đọc hiểu và phân tích lỗi biên dịch (ví dụ lỗi error CS0131 khi gán giá trị cho hằng số); truy vết ngăn xếp thực thi lỗi runtime dựa trên chuỗi thông báo của thuộc tính StackTrace.
  • Kỹ năng thực hành: Đóng gói mã nguồn thành các lớp đối tượng (class) và cấu trúc (struct); kiểm soát số lượng thể hiện của lớp bằng biến tĩnh (static variable); xây dựng các bộ khởi dựng có tham số và khởi dựng sao chép; nạp chồng phương thức và toán tử; xử lý dữ liệu tập hợp bằng mảng và biểu thức quy tắc.

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

Giáo trình áp dụng mô hình đào tạo theo định hướng thực hành nghề nghiệp với tỷ lệ phân bổ thời gian: 33.3% lý thuyết (30 giờ), 63.3% thực hành và bài tập (57 giờ), và 3.4% kiểm tra định kỳ (3 giờ).

Phương pháp tiếp cận sư phạm dựa trên nguyên tắc minh họa cú pháp gắn liền với mã nguồn hoàn chỉnh có kèm kết quả hiển thị màn hình Console tương ứng (như các ví dụ MinhHoaC3, UsingWhile, UsingFor, UsingForeach, TestFunc, Cat, ThoiGian).

Hệ thống bài tập và nghiên cứu tình huống trong tài liệu bao gồm:

  • Bài tập đọc hiểu và xác định luồng dữ liệu: Điển hình như phân tích chương trình vòng lặp for xuất định dạng ba chữ số (BaiTap1_1), theo dõi sự thay đổi biến đếm thể hiện của lớp Cat qua các bước khởi tạo đối tượng.
  • Bài tập tìm và sửa lỗi cú pháp/biên dịch: Phân tích các lỗi lập trình phổ biến như gán giá trị cho biểu tượng hằng, sử dụng biến chưa khởi tạo (BaiTap1_4), sai cú pháp định dạng chuỗi (BaiTap1_2), hoặc xung đột kiểu dữ liệu giữa double và decimal (BaiTap1_3).
  • Bài tập xử lý ngoại lệ và an toàn bộ nhớ: Cài đặt các khối try-catch-finally xử lý phép chia cho 0 (DoDivide), bẫy ngoại lệ lồng (MyCustomException) và quản lý luồng đóng tài nguyên tập tin trong khối finally.

Quy trình đánh giá kết quả học tập gồm 3 bài kiểm tra định kỳ phân bổ vào cuối Bài 1 (1 giờ), Bài 6 (1 giờ) và Bài 7 (1 giờ) cùng 1 buổi ôn tập 2 giờ trước khi kết thúc mô đun.

Hướng dẫn tự học: Sinh viên được yêu cầu trực tiếp nhập liệu mã nguồn mẫu trên Visual Studio .NET, thực hiện thao tác gỡ lỗi bằng phím F5 hoặc thực đơn Debug > Start Debugging, phân tích các thông báo lỗi do trình biên dịch trả về và tự giải quyết các bài tập ở cuối mỗi bài học.


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

  1. Trọng tâm Console làm nền tảng kỹ thuật: Giáo trình không chuyển ngay sang giao diện đồ họa kéo thả mà tập trung rèn luyện tư duy lập trình C# thuần túy trên Console Application, bảo đảm người học nắm vững cấu trúc lớp, phương thức, không gian tên và cách thức quản lý kiểu dữ liệu.
  2. Hệ thống bảng tra cứu và phân loại chuyên môn: Cung cấp các bảng tổng hợp có tính quy chuẩn cao:
    • Bảng các kiểu dữ liệu xây dựng sẵn của C#.
    • Bảng các toán tử tự gán (+=, -=, *=, /=, %=).
    • Bảng các toán tử quan hệ và bảng toán tử logic.
    • Bảng danh mục 16 lớp ngoại lệ phổ biến thuộc namespace System (từ MethodAccessException, ArgumentException, DivideByZeroException đến NullReferenceException, StackOverflowException, TypeInitializationException).
  3. Phân định rõ sự khác biệt giữa C# với các ngôn ngữ lập trình khác:
    • So sánh lệnh lặp foreach của C# với môi trường C/C++ và Visual Basic.
    • Làm rõ cơ chế tự động dọn rác của C# so với cơ chế giải phóng bộ nhớ thủ công trong C++, đồng thời giải thích bản chất của cú pháp ~ClassName() là liên kết với phương thức Finalize() của lớp cơ sở.
    • Quy định tính bao gói của các phương thức tĩnh (static), không cho phép khai báo hàm toàn cục tự do ngoài lớp như C++.
  4. Ví dụ gắn với mô hình đối tượng thực tế: Các ví dụ minh họa sử dụng các bài toán cụ thể như xử lý ngày giờ hệ thống qua đối tượng DateTime trong lớp ThoiGian, theo dõi số lượng đối tượng sinh ra qua biến tĩnh của lớp Cat, hay tính toán mức lương sử dụng các toán tử số học và tự gán.

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

  • Sinh viên chuyên ngành: Sinh viên năm thứ nhất hoặc năm thứ hai theo học hệ Cao đẳng nghề Lập trình máy tính hoặc các ngành liên quan đến Công nghệ thông tin.
  • Điều kiện tiên quyết: Người học bắt buộc đã hoàn thành các học phần cơ sở về Cấu trúc dữ liệu và Lập trình hướng đối tượng.
  • Giảng viên chuyên ngành: Sử dụng làm giáo trình giảng dạy chuẩn cho mô đun MĐ 22 (Lập trình window 1), làm căn cứ xây dựng đề cương bài giảng, kế hoạch bài dạy và ngân hàng đề thi thực hành 90 giờ.
  • Người tự học và nghiên cứu: Người học cần tài liệu tra cứu có hệ thống về cú pháp C# căn bản, mô hình phân cấp lớp ngoại lệ và kỹ thuật quản lý bộ nhớ cơ bản trong môi trường .NET Framework.

Câu hỏi thường gặp

1. Giáo trình này phù hợp với đối tượng nào?

Giáo trình được thiết kế cho sinh viên trình độ Cao đẳng nghề chuyên ngành Lập trình máy tính. Tài liệu cũng phù hợp cho người học kỹ thuật phần mềm cần nắm vững ngôn ngữ C# trên môi trường dòng lệnh (Console).

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

Người học cần hoàn thành các nội dung về kiến thức cấu trúc dữ liệu và các nguyên lý cơ bản của lập trình hướng đối tượng trước khi tiếp cận mô đun này.

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 Windows khác là gì?

Mô đun Lập trình window 1 tập trung hoàn toàn vào kỹ thuật lập trình C# trên nền tảng Console (chưa thao tác với Windows Form) với 8 bài học chuyên sâu về cú pháp, hướng đối tượng, ngoại lệ, nạp chồng toán tử, struct, interface, mảng và chuỗi nhằm chuẩn bị nền tảng cho mô đun Lập trình window 2.

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

Người học nên cài đặt môi trường Visual Studio .NET, trực tiếp gõ và biên dịch toàn bộ các đoạn mã minh họa từ Bài 1 đến Bài 8, đối chiếu thông báo lỗi của trình biên dịch và hoàn thành đầy đủ các bài tập tìm lỗi, sửa lỗi ở phần bài tập cuối bài.

5. Có tài liệu và công cụ bổ trợ nào đi kèm?

Giáo trình sử dụng công cụ Visual Studio .NET (phiên bản minh họa trong tài liệu là Visual Studio .NET 2008), thư viện chuẩn của .NET Framework (CLR, namespace System) cùng hệ thống thuật ngữ chuyên môn và danh mục tài liệu tham khảo được liệt kê ở cuối giáo trình.


Kết luận

Giáo trình Lập trình window 1 (MĐ 22) của Trường Cao đẳng nghề An Giang cung cấp hệ thống kiến thức chuẩn xác, có cấu trúc chặt chẽ về ngôn ngữ lập trình C# trên môi trường Console. Với tỷ lệ hơn 63% thời lượng dành cho thực hành, tài liệu giúp người học rèn luyện kỹ năng viết mã nguồn chuẩn mực, xử lý ngoại lệ và xây dựng kiến trúc hướng đối tượng.

Lộ trình học tập đề xuất là hoàn thành tuần tự 8 bài học theo đúng phân phối 90 giờ, từ đó tạo nền tảng vững chắc để chuyển tiếp sang học phần Lập trình window 2 chuyên sâu về phát triển ứng dụng giao diện Windows Forms trên nền tảng .NET.