Giáo trình Lập trình Hướng đối tượng (C# / .NET) – Khoa Công nghệ Thông tin, Trường Đại học Công nghệ Sài Gòn

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

Tài liệu học tập Lập trình Hướng đối tượng được biên soạn bởi Giảng viên Nguyễn Thanh Tùng (Khoa Công nghệ Thông tin, Trường Đại học Công nghệ Sài Gòn). Trong khung chương trình đào tạo Cử nhân và Kỹ sư Công nghệ Thông tin, học phần này giữ vị trí môn cơ sở ngành bắt buộc, đóng vai trò bản lề chuyển tiếp người học từ tư duy lập trình cấu trúc/thủ tục truyền thống sang phương pháp luận phát triển phần mềm theo hướng đối tượng.

Mục tiêu học tập của giáo trình bao gồm:

  • Phân tích và phân biệt sự khác nhau giữa hai mô hình lập trình hướng thủ tục và hướng đối tượng.
  • Nắm vững cú pháp cơ bản và các đặc điểm kiểu dữ liệu trong ngôn ngữ lập trình C#.
  • Làm chủ các khái niệm cốt lõi của hướng đối tượng: lớp, đối tượng, thuộc tính, phương thức, tính đóng gói, tính kế thừa và tính đa hình.
  • Ứng dụng kỹ thuật nạp chồng toán tử, sử dụng từ khóa static, quản lý vòng đời đối tượng và thu gom rác tự động.
  • Sử dụng ngôn ngữ mô hình hóa UML để biểu diễn lớp và đối tượng.
  • Thiết kế và xây dựng ứng dụng giao diện đồ họa người dùng bằng Windows Forms (WinForm) trên môi trường Microsoft Visual Studio 2010, tích hợp xử lý ngoại lệ, thao tác tệp và áp dụng mô hình kiến trúc phân lớp 2-Tiers.

Giáo trình được cấu trúc thành 6 bài học chính theo tiến trình sư phạm từ lý thuyết mô hình đến ứng dụng thực tiễn:

  1. Giới thiệu lập trình hướng đối tượng
  2. Các khái niệm cơ bản của ngôn ngữ C#
  3. Lớp và đối tượng
  4. Xây dựng ứng dụng trên WinForm
  5. Tính thừa kế và tính đa hình
  6. Liên hệ giữa các lớp đối tượng

Điểm đặc thù của giáo trình là việc kết hợp chặt chẽ giữa lý thuyết hướng đối tượng tiêu chuẩn với việc hiện thực hóa trực tiếp qua ngôn ngữ C# và nền tảng .NET. Tài liệu cung cấp các ví dụ toán học cụ thể (như lớp số phức CSoPhuc, kiểu cấu trúc phân số PHANSO) kết hợp các ca ứng dụng thực tế (ứng dụng Quản lý học sinh), đồng thời chỉ dẫn sinh viên phương pháp tra cứu thư viện Microsoft Developer Network (MSDN).


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

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

  • Bài 1: Giới thiệu lập trình hướng đối tượng: Trình bày định nghĩa và so sánh hai mô hình lập trình. Mô hình hướng thủ tục tiếp cận theo nguyên tắc $Chương\ trình = Cấu\ trúc\ dữ\ liệu + Giải\ thuật$, sử dụng phương pháp "Top-Down", phù hợp bài toán nhỏ nhưng hạn chế về tính tái sử dụng và an toàn dữ liệu. Ngược lại, mô hình hướng đối tượng tiếp cận theo nguyên tắc $Chương\ trình = {\text{Tập các đối tượng}}$, sử dụng phương pháp "Bottom-Up", giải quyết bài toán quy mô lớn với nhiều luồng dữ liệu phức tạp thông qua các tính chất: đóng gói, kế thừa và đa hình.
  • Bài 2: Các khái niệm cơ bản của ngôn ngữ C#: Cung cấp hướng dẫn khởi tạo ứng dụng Console Application trên Microsoft Visual Studio 2010. Hệ thống hóa các kiểu dữ liệu cơ bản (char, int, long, float, double, bool), biến, hằng (const), các nhóm toán tử (số học, quan hệ, luận lý, phép gán). Điểm trọng tâm là cơ chế truyền tham số vào hàm với 3 hình thức: truyền tham trị, truyền tham số với từ khóa ref, và truyền tham số với từ khóa out. Trình bày kiểu cấu trúc (struct ví dụ cấu trúc PHANSO), kiểu ngày giờ (DateTime), kiểu chuỗi Unicode (string), kiểu mảng 1 chiều/2 chiều (array) và kiểu liệt kê (enum), đi kèm quy chiếu tra cứu thư viện lớp MSDN.
  • Bài 3: Lớp và đối tượng: Định nghĩa đối tượng (gồm thuộc tính dữ liệu và hành vi phương thức) và lớp đối tượng. Phân tích trạng thái đối tượng, tính đóng gói và hai phạm vi truy cập: private (truy cập nội bộ lớp) và public (truy cập bên ngoài lớp). Hướng dẫn cú pháp khai báo lớp, cấp phát bộ nhớ bằng từ khóa new, toán tử truy cập thành viên (.), định nghĩa Property với cặp khối lệnh get/set, và con trỏ tự tham chiếu this. Đi sâu vào phương thức tạo lập (Constructor) và phương thức hủy (Destructor với ký tự ~), cơ chế dọn rác tự động thông qua phương thức GC.Collect(). Hướng dẫn biểu diễn lớp và đối tượng bằng chuẩn UML, khai báo thành phần tĩnh (static), và nạp chồng toán tử (operator overloading).
  • Bài 4: Xây dựng ứng dụng bằng WinForm: Hướng dẫn tạo dự án Windows Forms trên Visual Studio 2010. Phân tích chi tiết các điều khiển (Controls) cơ bản: Button (sự kiện Click), MessageBox.Show(), Label, TextBox, CheckBox (thuộc tính Checked), RadioButton, DateTimePicker (thuộc tính Value kiểu DateTime), ListBox (các thuộc tính Items, SelectionMode, SelectedIndex, SelectedItem), và ComboBox (thuộc tính DropDownStyle: Simple, DropDown, DropDownList). Hướng dẫn thiết lập hệ thống menu bằng MenuStrip và ToolStripMenuItem. Trình bày cơ chế điều hướng giao diện gồm Modal Form (gọi qua ShowDialog()), Modeless Form (gọi qua Show()), và ứng dụng đa tài liệu MDI Form (sử dụng thuộc tính IsMdiContainer = true). Nội dung bao quát thêm cấu trúc tập hợp dữ liệu, kỹ thuật thao tác tệp, bẫy lỗi và cấu trúc mẫu kiến trúc 2 tầng (2-Tiers) trên ca ứng dụng Quản lý học sinh.
  • Bài 5 & Bài 6: Tính thừa kế và tính đa hình – Liên hệ giữa các lớp đối tượng: Cung cấp các kiến thức về việc tái sử dụng mã nguồn qua kế thừa, triển khai cơ chế liên kết động và thiết lập mối liên kết giữa các thực thể lớp trong một hệ thống phần mềm hoàn chỉnh.

Logic phát triển nội dung tuân theo chuỗi: Đối chiếu tư duy mô hình $\rightarrow$ Nắm vững cú pháp cơ sở $\rightarrow$ Trừu tượng hóa đối tượng $\rightarrow$ Hiện thực hóa giao diện trực quan và kiến trúc phần mềm.

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

  • Lý thuyết nền tảng (Fundamental theories): Lý thuyết về thực thể và trừu tượng hóa dữ liệu; mô hình phát triển phần mềm từ dưới lên (Bottom-Up); nguyên lý vòng đời đối tượng từ khởi tạo (Constructor), vận hành trạng thái đến giải phóng bộ nhớ (Destructor và thu gom rác tự động).
  • Nguyên lý cốt lõi (Core principles): Ba trụ cột hướng đối tượng gồm Đóng gói (Encapsulation), Kế thừa (Inheritance), và Đa hình (Polymorphism); nguyên tắc bảo toàn tính toàn vẹn dữ liệu qua đặc tả phạm vi truy cập (private/public) và bao đóng thuộc tính (Property get/set); nguyên tắc dùng chung thành phần qua cơ chế static.
  • Khung công nghệ (Essential frameworks): Nền tảng .NET Framework, cấu trúc phân cấp lớp của Microsoft MSDN, và mô hình kiến trúc phân lớp ứng dụng 2-Tiers.

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical skills): Cài đặt và thao tác trên Microsoft Visual Studio 2010; lập trình cú pháp C#; định nghĩa và nạp chồng toán tử; xây dựng giao diện WinForm; xử lý sự kiện điều khiển; bẫy lỗi và đọc ghi tệp.
  • Kỹ năng phân tích (Analytical skills): Phân tích bài toán thành các thực thể đối tượng có trạng thái và hành vi; thiết kế sơ đồ lớp và đối tượng theo chuẩn mô hình hóa UML; lựa chọn phương thức truyền tham số (ref, out, tham trị) phù hợp với yêu cầu xử lý dữ liệu.
  • Năng lực thực hành (Practical competencies): Triển khai ứng dụng quản lý có giao diện đồ họa người dùng theo kiến trúc 2-Tiers; tạo lập cấu trúc Form cha-con (MDI Form) và phân loại biểu mẫu Modal/Modeless.

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

Giáo trình triển khai phương pháp tiếp cận sư phạm kết hợp giữa giảng giải lý thuyết có đối chiếu và thực hành lập trình theo dự án mẫu. Mỗi khối kiến thức lý thuyết trừu tượng đều được gắn liền với các bài toán mô phỏng cụ thể và hướng dẫn thực thi từng bước.

Bài tập và ca nghiên cứu (Case Studies)

  1. Ca nghiên cứu Lớp số phức (CSoPhuc): Minh họa toàn bộ các khía cạnh của lập trình lớp đối tượng.
    • Dữ liệu: Thành phần phần thực ($a$) và phần ảo ($b$) dạng số thực.
    • Hành vi: Các phép toán cộng, trừ, nhân, chia và tính mô-đun số phức.
    • Cài đặt kỹ thuật: Đóng gói dữ liệu với phạm vi private, cung cấp Property cho phần thực/phần ảo, sử dụng con trỏ this, xây dựng phương thức tạo lập có/không tham số, và nạp chồng các toán tử cộng hai số phức ở dạng hàm static.
  2. Ca nghiên cứu Cấu trúc phân số (PHANSO): Minh họa sự khác biệt giữa kiểu dữ liệu struct và class, thực hiện lưu trữ phân số và định nghĩa hàm tăng giá trị.
  3. Dự án mẫu Quản lý học sinh trên WinForm: Tích hợp giao diện người dùng, cấu trúc dữ liệu tập hợp, các thao tác đọc/ghi tệp dữ liệu, cơ chế nắm bắt ngoại lệ và tổ chức mã nguồn theo mô hình 2 tầng (2-Tiers).

Bài tập thực hành và phương pháp kiểm tra

  • Bài tập thực hành:
    • Tạo ứng dụng Console, xử lý biến và chuyển đổi truyền tham số (ref, out).
    • Xây dựng giao diện Form tương tác với Button, Label, TextBox, và hộp thoại thông báo MessageBox.Show().
    • Cấu hình các điều khiển danh sách phức tạp (ListBox, ComboBox với các chế độ DropDownStyle).
    • Xây dựng thanh điều hướng đa cấp bằng MenuStrip và ToolStripMenuItem.
    • Thiết kế hệ thống cửa sổ MDI Form bằng cách kích hoạt thuộc tính IsMdiContainer = true kết hợp hiển thị các dạng Modal Form và Modeless Form.
  • Phương pháp đánh giá (Assessment methods): Đánh giá thông qua mức độ hoàn thiện các bài thực hành viết mã nguồn, độ chuẩn xác trong việc thiết kế sơ đồ lớp UML, khả năng bẫy lỗi hệ thống và chất lượng của đồ án ứng dụng WinForm theo mô hình 2-Tiers.
  • Hướng dẫn tự học: Sinh viên sử dụng tài liệu học tập kết hợp tra cứu các lớp thư viện xây dựng sẵn của .NET trên hệ thống MSDN (DateTime, String, Array, Enum), tự viết lại mã nguồn trên Visual Studio 2010 và giải quyết các bài toán mở rộng dựa trên lớp CSoPhuc và ứng dụng Quản lý học sinh.

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

  • Chuyển dịch phương pháp luận: Giáo trình phân tích tường minh sự khác biệt bản chất giữa lập trình cấu trúc/thủ tục và lập trình hướng đối tượng, chỉ rõ nhược điểm truy cập dữ liệu tự do gây mất an toàn của mô hình cũ và ưu điểm kiểm soát truy cập thông qua đóng gói của mô hình mới.
  • Khai thác sâu các tính năng của C#: Giáo trình không chỉ dừng ở lý thuyết hướng đối tượng tổng quát mà tích hợp sâu các đặc thù của C# gồm:
    • Cơ chế truyền tham số có kiểm soát qua từ khóa ref và out.
    • Cú pháp đóng gói rút gọn với Property (get/set).
    • Cơ chế dọn rác tự động của môi trường thực thi .NET qua Garbage Collection và lệnh cưỡng bức GC.Collect().
    • Khả năng nạp chồng toán tử bằng các hàm static.
  • Tích hợp công cụ trực quan và chuẩn hóa thiết kế: Sử dụng trực tiếp môi trường phát triển Microsoft Visual Studio 2010; tích hợp ngôn ngữ mô hình hóa UML trong việc biểu diễn trực quan thuộc tính, phương thức và mối quan hệ giữa các lớp.
  • Ứng dụng thực tế và chuẩn kiến trúc doanh nghiệp: Nội dung kết nối trực tiếp với việc phát triển ứng dụng máy tính (Desktop Application) thông qua công nghệ Windows Forms. Giáo trình hướng dẫn sinh viên áp dụng mẫu kiến trúc 2 tầng (2-Tiers), kỹ thuật quản lý luồng dữ liệu file và cơ chế nắm bắt lỗi ngoại lệ trong phần mềm nghiệp vụ thực tế.

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

Nhóm đối tượng Yêu cầu tiên quyết / Cách thức sử dụng Mục tiêu đạt được
Sinh viên đại học/cao đẳng (Chuyên ngành CNTT, Kỹ thuật phần mềm, Hệ thống thông tin) Đã hoàn thành học phần Nhập môn lập trình hoặc Lập trình cơ bản (C/C++); nắm chắc các khái niệm về giải thuật, biến, kiểu dữ liệu nguyên thủy, hàm và mảng. Nắm vững tư duy hướng đối tượng; làm chủ ngôn ngữ C#; có khả năng xây dựng ứng dụng Desktop bằng WinForms trên Visual Studio 2010.
Giảng viên giảng dạy Sử dụng làm khung đề cương chi tiết, giáo trình bài giảng lý thuyết và tài liệu hướng dẫn thực hành tại phòng máy. Đảm bảo chuẩn đầu ra về lập trình hướng đối tượng; có sẵn hệ thống ví dụ mẫu (CSoPhuc, WinForms, 2-Tiers) để minh họa và đánh giá sinh viên.
Người tự học & Lập trình viên Có nền tảng lập trình cấu trúc cơ bản; có máy tính cài đặt môi trường Microsoft Visual Studio 2010. Chuyển đổi tư duy lập trình từ thủ tục sang đối tượng; tự học cách sử dụng C#, WinForms và tra cứu tài liệu MSDN.

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 phục vụ sinh viên chuyên ngành Công nghệ Thông tin tại Trường Đại học Công nghệ Sài Gòn và các trường đại học, cao đẳng đào tạo khối ngành kỹ thuật phần mềm đang theo học học phần Lập trình Hướng đối tượng hoặc C# căn bản.

2. Người học cần chuẩn bị kiến thức nền tảng nào trước khi tiếp cận giáo trình?

Người học cần có kiến thức cơ bản về lập trình cấu trúc thông qua các ngôn ngữ như C hoặc C++, bao gồm: tư duy giải thuật, cấu trúc rẽ nhánh, vòng lặp, mảng, hàm và kiểu dữ liệu có cấu trúc (struct).

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

Tài liệu gắn liền lý thuyết OOP với cú pháp và công nghệ cụ thể của hệ sinh thái Microsoft .NET (ngôn ngữ C#, Windows Forms, môi trường Visual Studio 2010). Các cơ chế kỹ thuật như Property, từ khóa ref/out, Garbage Collection, định nghĩa toán tử static, mô hình MDI Form và kiến trúc 2-Tiers được minh họa cụ thể qua mã nguồn thay vì chỉ mô tả khái niệm thuần túy.

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

Người học nên cài đặt phần mềm Microsoft Visual Studio 2010, tuần tự triển khai mã nguồn từ các ứng dụng Console Application ở Bài 2 đến việc cài đặt toàn diện lớp CSoPhuc ở Bài 3. Sau đó, tiến hành thiết kế giao diện WinForm ở Bài 4, thực hành thao tác từng control và hoàn thiện ứng dụng Quản lý học sinh theo mô hình 2-Tiers.

5. Có tài liệu bổ trợ nào được khuyến nghị kèm theo giáo trình?

Giáo trình định hướng người học sử dụng hệ thống thư viện tra cứu trực tuyến Microsoft Developer Network (MSDN) để nghiên cứu chuyên sâu về các lớp và kiểu dữ liệu có sẵn như DateTime, String, Array và Enum.


Kết luận

Giáo trình Lập trình Hướng đối tượng của Giảng viên Nguyễn Thanh Tùng (Khoa Công nghệ Thông tin, Trường Đại học Công nghệ Sài Gòn) là tài liệu học thuật cung cấp hệ thống kiến thức toàn diện từ lý thuyết mô hình đối tượng đến kỹ thuật lập trình ứng dụng trên nền tảng C# và .NET Framework.

Lộ trình học tập đề xuất từ giáo trình bao gồm: $$\text{Lập trình cơ sở (C/C++)} \longrightarrow \text{Bài 1: Tổng quan OOP} \longrightarrow \text{Bài 2: Cú pháp C# & Console}$$ $$\longrightarrow \text{Bài 3: Thiết kế Lớp & Đối tượng} \longrightarrow \text{Bài 4: Ứng dụng WinForm & 2-Tiers} \longrightarrow \text{Bài 5 & 6: Kế thừa, Đa hình & Liên hệ lớp}$$

Người học được khuyến nghị kết hợp thực hành trực tiếp trên Microsoft Visual Studio 2010, tra cứu tài liệu MSDN và hoàn thành các bài tập ứng dụng mẫu để củng cố kỹ năng lập trình hướng đối tượng.