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

Giáo trình Lập trình Hướng đối tượng (Mã học phần: CSC106320) là tài liệu học tập chính thức do Khoa Công nghệ Thông tin, Trường Cao đẳng Công nghệ Thủ Đức biên soạn theo Quyết định số 140/QĐ-CNTĐ-CN ban hành ngày 20 tháng 12 năm 2021. Tài liệu do nhóm tác giả ThS. Ngô Minh Anh Thư và ThS. Lâm Thị Phương Thảo thực hiện, phục vụ trực tiếp cho chương trình đào tạo ngành Công nghệ thông tin trình độ Cao đẳng.

Trong khung chương trình đào tạo, học phần CSC106320 thuộc khối kiến thức cơ sở ngành và được bố trí giảng dạy vào học kỳ 2 của năm thứ nhất. Giáo trình hướng đến việc trang bị cho người học hệ thống lý thuyết cùng kỹ năng phân tích, thiết kế và cài đặt chương trình theo mô hình hướng đối tượng (Object-Oriented Programming - OOP) trên nền tảng ngôn ngữ lập trình C# và môi trường phát triển Microsoft Visual Studio.

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

  • Về kiến thức: Trình bày đầy đủ các đặc trưng và nguyên lý của phương pháp lập trình hướng đối tượng.
  • Về kỹ năng: Phân tích, thiết kế và cài đặt thành thạo sơ đồ lớp UML cho các bài toán quy mô vừa và nhỏ; ứng dụng cơ chế kế thừa, đa hình và lập trình khái quát (Generic); thao tác thành thạo công cụ Visual Studio và kỹ thuật gỡ lỗi (debug).
  • Về năng lực tự chủ và trách nhiệm: Rèn luyện chuẩn mực viết mã nguồn (coding convention), tư duy hệ thống và tinh thần tự giác hoàn thành bài tập theo quy định.

Cấu trúc giáo trình được tiếp cận theo nguyên lý từ dưới lên (Bottom-up), đi từ nền tảng đối tượng, thành phần của lớp đến các kỹ thuật mở rộng kiến trúc phần mềm trong C#.


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

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

Nội dung giáo trình được cấu trúc thành 6 chương học thuật có tính liên kết chặt chẽ:

  • Chương 1: Giới thiệu về phương pháp lập trình hướng đối tượng: Trình bày lịch sử phát triển của OOP (bắt đầu từ Simula67, Smalltalk tại trung tâm Xerox PARC đến C++, Java, C#); phân tích sự khác biệt giữa lập trình hướng thủ tục (POP - tiếp cận Top-down) và lập trình hướng đối tượng (OOP - tiếp cận Bottom-up); định nghĩa 4 đặc tính cốt lõi (Trừu tượng, Đóng gói, Kế thừa, Đa hình); phân biệt khái niệm Lớp (Class) và Đối tượng (Object/Instance); giới thiệu quy chuẩn biểu diễn sơ đồ lớp UML.
  • Chương 2: Xây dựng lớp đối tượng: Cung cấp cú pháp khai báo lớp; hệ thống 5 bổ từ truy xuất (public, protected, internal, private, protected internal); 5 loại lớp trong C# (normal, partial, static, abstract, sealed); kỹ thuật xây dựng Trường dữ liệu (Fields) và Thuộc tính (Properties với get/set); các loại phương thức khởi tạo (Constructors: mặc định, không tham số, có tham số, sao chép, khởi tạo tĩnh); phương thức hủy (Finalizers/Destructors) và cơ chế thu gom rác (Garbage Collection); con trỏ this; thành viên tĩnh (static); truyền tham số bằng ref, out, params; quản lý mảng đối tượng và biểu diễn quan hệ phụ thuộc (Dependency).
  • Chương 3: Tính kế thừa: Phân tích quan hệ tổng quát hóa – đặc biệt hóa giữa lớp cơ sở (Base/Parent class) và lớp dẫn xuất (Derived/Child class); cú pháp và tầm vực truy xuất trong kế thừa; phân loại và các mô hình phân cấp kế thừa dạng cây.
  • Chương 4: Tính đa hình: Cơ chế đa hình tĩnh (Static Polymorphism) thông qua nạp chồng phương thức (Method Overloading) và nạp chồng toán tử (Operator Overloading); cơ chế đa hình động (Dynamic Polymorphism) thông qua từ khóa virtual, override; xây dựng lớp trừu tượng (abstract class), phương thức trừu tượng (abstract method), từ khóa niêm phong sealed và kiểu dữ liệu cơ sở Object.
  • Chương 5: Giao diện (Interface): Định nghĩa và vai trò của giao diện trong việc thiết lập khuôn mẫu hành vi; cú pháp khai báo, quy tắc cài đặt và cơ chế đa kế thừa hành vi trên C#.
  • Chương 6: Lập trình khái quát (Generic): Khái niệm và đặc điểm của Generic trong C#; kỹ thuật xây dựng và áp dụng lớp khái quát (Generic class) nhằm nâng cao tính tái sử dụng và đảm bảo an toàn kiểu dữ liệu (type-safety).
Progression logic của giáo trình:
[Tư duy OOP & Sơ đồ UML] (Chương 1)
[Cấu trúc Lớp & Đối tượng] (Chương 2)
[Mở rộng quan hệ Kế thừa] (Chương 3)
[Đa hình & Trừu tượng hóa] (Chương 4 & 5)
[Tối ưu hóa mã nguồn với Generic] (Chương 6)

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

  • Lý thuyết nền tảng: Phân tích bản chất của việc đóng gói dữ liệu và giải thuật trong từng thực thể độc lập; quy trình trừu tượng hóa thế giới thực vào mô hình phần mềm qua việc nhận diện danh từ (thuộc tính) và động từ (hành vi).
  • Nguyên lý cốt lõi: Bốn trụ cột OOP (Abstraction, Encapsulation, Inheritance, Polymorphism); nguyên lý che giấu thông tin (Information Hiding) thông qua việc đặt trường dữ liệu ở mức private và cung cấp cổng truy xuất kiểm soát qua properties (getter/setter).
  • Khuôn khổ lập trình hướng đối tượng trong C#: Quản lý vòng đời đối tượng từ lúc khởi tạo trong bộ nhớ đến khi được giải phóng bởi bộ thu dọn rác tự động GC; cơ chế kết nối mã nguồn qua partial class; kỹ thuật chia sẻ trạng thái chung bằng từ khóa static.

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical skills): Viết mã nguồn C# chuẩn xác; sử dụng thành thạo các cấu trúc dữ liệu đối tượng; khai báo và định nghĩa constructor, destructor, nạp chồng phương thức; sử dụng mảng đối tượng kết hợp Array.Resize; cấu hình tham số tùy chọn và biến số lượng tham số với params.
  • Kỹ năng phân tích (Analytical skills): Phân tích yêu cầu bài toán thực tế; phân rã thực thể; xác định đúng mối quan hệ giữa các lớp (Dependency, Inheritance); thiết kế biểu đồ lớp chuẩn UML.
  • Năng lực ứng dụng thực tế (Practical competencies): Sử dụng Visual Studio để phát triển và gỡ lỗi chương trình; tối ưu hóa cấu trúc chương trình; tuân thủ quy tắc đặt tên (PascalCase cho tên lớp, phương thức, thuộc tính; camelCase cho biến và trường dữ liệu).

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 kết hợp chặt chẽ giữa lý thuyết mô hình hóa và thực hành triển khai mã nguồn:

  • Phương pháp tiếp cận sư phạm: Áp dụng nguyên lý "hộp đen" trong lập trình: người học được hướng dẫn cách thiết kế lớp sao cho phía sử dụng chỉ cần quan tâm đến chức năng công khai (giao diện public) mà không cần can thiệp vào chi tiết cài đặt nội bộ (private).
  • Hệ thống bài tập và Case Studies: Giáo trình tích hợp các ví dụ điển hình xuyên suốt như lớp sinh viên (Student), lớp khóa học (Course), lớp tiện ích (Utilities), mô hình tài khoản ngân hàng (Bank Account), điểm tọa độ (Point), và điện thoại (Mobile).
  • Bài tập thực hành phân cấp: Cuối mỗi chương đều có bài tập áp dụng (ví dụ: HW1-LTHDT) chia làm hai mức độ:
    1. Bài tập cơ bản: Trả lời lý thuyết, phân biệt khái niệm, xác định thuộc tính và phương thức từ mô tả bài toán.
    2. Bài tập nâng cao: Thiết kế và vẽ sơ đồ lớp UML hoàn chỉnh cho các hệ thống đối tượng thực tế.
  • Phương thức đánh giá: Kết quả học tập được đánh giá dựa trên các chuẩn đầu ra (như L.1 - Phân tích, thiết kế và cài đặt sơ đồ lớp; L.8 - Tự giác làm và nộp bài đúng hạn). Bài tập thực hành được nộp định kỳ qua hệ thống quản lý học tập trực tuyến (EL - E-learning) của nhà trường.
  • Hướng dẫn tự học: Sinh viên được yêu cầu tự cài đặt các đoạn mã minh họa, sử dụng phím tắt hỗ trợ phát sinh mã nguồn trong Visual Studio (Ctrl + R + E hoặc Ctrl + .), tự thiết lập các kịch bản kiểm thử dữ liệu biên và chạy chế độ Debug để theo dõi giá trị biến trong bộ nhớ.

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

  • Cập nhật tính năng ngôn ngữ C#: Giáo trình tích hợp các cú pháp phát sinh thuộc tính tự động trên C# 6.0, kỹ thuật nội suy chuỗi ký tự ($""), và cơ chế gán giá trị mặc định cho tham số trong phương thức khởi tạo (optional parameters).
  • Hệ thống phân loại lớp chi tiết: Tài liệu phân tách rành mạch 5 loại lớp trong C# (normal, partial, static, abstract, sealed), giúp người học nắm bắt cách tổ chức mã nguồn lớn (sử dụng partial class để tách mã nguồn trên nhiều file) cũng như xây dựng các thư viện tiện ích (thông qua static class như ví dụ lớp Utilities chuyển đổi điểm hệ 10 sang hệ 4 và tính tổng số tiết từ số tín chỉ).
  • Quản lý vòng đời và bộ nhớ tường minh: Phân tích rõ ràng sự khác biệt giữa cấp phát bộ nhớ đối tượng và cơ chế thu hồi tự động của Garbage Collection (GC), chỉ rõ nguyên nhân và cách khắc phục lỗi tràn bộ nhớ hoặc treo hệ thống thông qua việc sử dụng Finalizer.
  • Tính ứng dụng thực tế cao: Các ví dụ minh họa gắn liền với các bài toán quản lý thực tế (quản lý kết quả học tập sinh viên, phân loại sinh viên chưa tốt nghiệp và đã tốt nghiệp, in bảng điểm quá trình và bảng điểm tốt nghiệp thông qua đa hình).

Đố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 (học kỳ 2) thuộc ngành Công nghệ thông tin trình độ Cao đẳng tại Trường Cao đẳng Công nghệ Thủ Đức và các cơ sở giáo dục nghề nghiệp có chương trình tương đương.
  • Yêu cầu kiến thức tiên quyết (Prerequisites): Người học cần hoàn thành học phần cơ sở về kỹ thuật lập trình hoặc lập trình có cấu trúc (nắm vững các kiểu dữ liệu cơ bản, cấu trúc điều khiển rẽ nhánh if/switch, vòng lặp for/while, và thao tác với mảng một chiều).
  • Giảng viên giảng dạy: Sử dụng làm giáo trình khung và tài liệu giảng dạy chuẩn cho học phần CSC106320; làm cơ sở xây dựng đề cương bài giảng, bài tập thực hành trên hệ thống EL, và ngân hàng đề thi đánh giá học phần.
  • Người tự học và tham khảo: Dành cho các lập trình viên hoặc người học có nhu cầu chuyển đổi phương pháp tư duy từ lập trình cấu trúc/thủ tục (POP) sang phương pháp lập trình hướng đối tượng (OOP) bằng ngôn ngữ C#.

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 biên soạn chính thức cho sinh viên học kỳ 2 năm thứ nhất ngành Công nghệ thông tin trình độ Cao đẳng, đồng thời phù hợp làm tài liệu tự học cho người bắt đầu tiếp cận phương pháp OOP trên ngôn ngữ C#.

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

Người học cần có kiến thức cơ bản về lập trình cấu trúc: cú pháp lệnh, khai báo biến, các kiểu dữ liệu cơ sở, câu lệnh điều kiện, vòng lặp và khái niệm hàm/chương trình con.

3. Điểm khác biệt của giáo trình so với các tài liệu lập trình C# thông thường?

Tài liệu tập trung làm rõ bản chất tư duy thiết kế hướng đối tượng (so sánh trực quan bảng đối chiếu POP vs OOP) kết hợp với chuẩn biểu diễn sơ đồ lớp UML, thay vì chỉ đơn thuần liệt kê cú pháp ngôn ngữ.

So sánh tóm tắt giữa POP và OOP trong giáo trình:

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

Người học nên kết hợp việc đọc lý thuyết với thực hành trực tiếp trên Visual Studio theo từng chương; phân tích bài toán bằng cách xác định danh từ (thuộc tính) và động từ (phương thức); vẽ sơ đồ UML trước khi viết mã và rèn luyện thói quen kiểm tra lỗi bằng Debugger.

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

Học phần đi kèm hệ thống bài tập thực hành định kỳ (mã số HW), môi trường nộp bài và kiểm tra qua hệ thống E-learning (EL) của Khoa Công nghệ thông tin, cùng hướng dẫn sử dụng phần mềm Microsoft Visual Studio.


Kết luận

Giáo trình Lập trình Hướng đối tượng (Mã học phần: CSC106320) của Trường Cao đẳng Công nghệ Thủ Đức cung cấp hệ thống kiến thức toàn diện, chuẩn mực về phương pháp OOP trên nền tảng C#. Tài liệu gắn kết chặt chẽ giữa nguyên lý thiết kế hệ thống và kỹ thuật lập trình thực tế, đáp ứng đúng chuẩn đầu ra của chương trình đào tạo Cao đẳng CNTT.

Lộ trình học tập đề xuất được chia theo 3 giai đoạn:

  1. Nắm vững bản chất đối tượng, lớp và kỹ thuật đóng gói (Chương 1, 2).
  2. Làm chủ cơ chế mở rộng cấu trúc phần mềm với kế thừa và đa hình (Chương 3, 4).
  3. Hoàn thiện kiến trúc trừu tượng và tối ưu hóa kiểu dữ liệu với Interface và Generic (Chương 5, 6).

Để đạt kết quả tốt nhất, người học nên kết hợp nghiên cứu giáo trình cùng đề cương chi tiết học phần CSC106320, tài liệu kỹ thuật Microsoft Docs về C#, và chủ động hoàn thành các bài tập trên hệ thống E-learning theo quy định.