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

Giáo trình Lập trình Java do tác giả Nguyễn Thị Hồng Mỹ biên soạn vào năm 2019, được ban hành theo đề cương chi tiết học phần của Khoa Công nghệ Thông tin – Trường Cao đẳng Công nghệ Thủ Đức (TP. Hồ Chí Minh). Đây là học phần chuyên ngành bắt buộc thuộc chương trình đào tạo ngành Công nghệ thông tin trình độ Cao đẳng.

Trong cấu trúc chương trình đào tạo, học phần giữ vai trò cầu nối quan trọng. Học phần này tiếp nối các kiến thức đã học từ học phần Kỹ thuật lập trình và Cấu trúc dữ liệu, đồng thời đóng vai trò là khối kiến thức nền tảng tiên quyết để sinh viên học tiếp các học phần nâng cao như Lập trình Android và Phát triển ứng dụng Java (J2EE).

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

  • Kiến thức: Sinh viên tổng hợp được hệ thống kiến thức cốt lõi về ngôn ngữ Java, hiểu rõ cơ chế vận hành của máy ảo Java (JVM) và phương pháp xây dựng phần mềm theo mô hình lập trình hướng đối tượng (OOP).
  • Kỹ năng: Người học sử dụng thành thạo môi trường phát triển tích hợp (IDE NetBeans/Eclipse); có khả năng xây dựng các ứng dụng console và ứng dụng có giao diện đồ họa người dùng (GUI); thực hiện phân tích, thiết kế và phát triển ứng dụng Java có tương tác lưu trữ dữ liệu với tập tin (File I/O) hoặc cơ sở dữ liệu quan hệ (JDBC).
  • Năng lực tự chủ và trách nhiệm: Rèn luyện phương pháp tư duy hệ thống, khả năng tự học và tuân thủ các quy ước viết mã chuẩn công nghiệp (Coding Conventions).

Giáo trình được thiết kế theo cách tiếp cận thực hành ứng dụng, xây dựng kiến thức từ tầng kiến trúc máy tính/máy ảo, đi qua cú pháp cơ sở, đào sâu nguyên lý hướng đối tượng và mở rộng ra các kỹ thuật phát triển ứng dụng hoàn chỉnh. Điểm đặc sắc nhất của giáo trình là việc sử dụng xuyên suốt một dự án mẫu – Case Study Quản Lý Sinh Viên – qua tất cả các chương để minh họa việc áp dụng lý thuyết vào một bài toán thực tế.


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 9 chương học phần, phát triển theo tiến trình từ cơ bản đến nâng cao:

Chương 1: Tổng quan về Java & Kiến trúc JVM
  1. Chương 1: Tổng quan về Java Trình bày lịch sử phát triển của ngôn ngữ Java (do James Gosling phát triển tại Sun Microsystems, nay thuộc Oracle), các đặc trưng như tính độc lập nền tảng ("Write Once, Run Anywhere"), tính an toàn, hỗ trợ phân tán (Java RMI) và cơ chế tự động gom rác. Chương này phân tích chi tiết cấu trúc nền tảng Java (JDK, JRE, JVM), quy trình nạp lớp (Class Loader), các vùng dữ liệu thực thi (Runtime Data Areas) và bộ thực thi (Execution Engine gồm Interpreter, JIT Compiler, Garbage Collector). Đồng thời, hướng dẫn cài đặt JDK 8 và sử dụng IDE NetBeans/Eclipse.
  2. Chương 2: Nền tảng Java cơ bản Cung cấp hệ thống kiểu dữ liệu nguyên thủy (Primitive) và kiểu dữ liệu tham chiếu (Reference), các lớp bao bọc (Wrapper Class: Integer, Double,...), cơ chế ép kiểu (Implicit và Explicit Casting), hệ thống toán tử và cấu trúc rẽ nhánh (if-else, switch-case), vòng lặp (while, do-while, for), giải thuật đệ quy. Chương cũng giới thiệu các thư viện xử lý chuỗi (String), mảng (1 chiều, 2 chiều), thư viện toán học (Math), số ngẫu nhiên (Random), xử lý ngày tháng (LocalDate, Calendar, DateTimeFormatter), định dạng chuỗi (printf, format), và bước đầu khởi tạo Lớp (Class), Đối tượng (Object), Constructor cùng từ khóa static.
  3. Chương 3: Xử lý ngoại lệ (Exception Handling) Định nghĩa ngoại lệ, cấu trúc khối lệnh try-catch-finally, cơ chế ủy nhiệm ngoại lệ bằng throw và throws, phân biệt giữa ngoại lệ kiểm tra (Checked Exception) và ngoại lệ không kiểm tra (Unchecked Exception), cùng phương pháp xây dựng các lớp ngoại lệ tự định nghĩa.
  4. Chương 4: Đọc file và Ghi file Trình bày các phương thức xử lý vào/ra dữ liệu (I/O Stream), bao gồm kỹ thuật đọc/ghi file nhị phân (Binary File), đọc/ghi file văn bản (Text File), và kỹ thuật đọc/ghi đối tượng (Object Serialization).
  5. Chương 5: Lập trình với Cơ sở dữ liệu (JDBC) Cung cấp kiến thức về kiến trúc Java Database Connectivity (JDBC), quy trình kết nối với hệ quản trị cơ sở dữ liệu, thực thi các câu lệnh truy vấn CRUD (Create, Read, Update, Delete) và tương tác với cơ sở dữ liệu thông qua Stored Procedure.
  6. Chương 6: Thiết kế giao diện người dùng GUI Trình bày các thành phần giao diện cơ bản, các trình quản lý bố cục (Layout Managers), cơ chế bắt và xử lý sự kiện (Event Handling), cùng kỹ thuật hiển thị đồ họa cơ bản.
  7. Chương 7: Collections và Sắp xếp Giới thiệu cấu trúc Collections trong Java, các phương thức tiện ích của lớp Collections, cơ chế sắp xếp dữ liệu thông qua việc hiện thực hai giao diện (interface) Comparable và Comparator.
  8. Chương 8: Thiết kế hướng đối tượng Đào sâu các khái niệm lớp trừu tượng (Abstract Class), giao diện (Interface), các quan hệ đối tượng (is-a, has-a), sử dụng biểu đồ lớp UML (Class Diagram) để thiết kế hệ thống và áp dụng kiến trúc phần mềm MVC (Model - View - Controller).
  9. Chương 9: Lập trình Đa luồng (Multithreading) Trình bày khái niệm luồng (Thread), cách tạo lập và quản lý vòng đời của Thread, thiết lập độ ưu tiên của luồng và cơ chế đồng bộ hóa (Synchronization) để giải quyết xung đột tài nguyên trong môi trường thực thi đồng thời.

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

Giáo trình cung cấp một hệ thống lý thuyết hoàn chỉnh về khoa học lập trình Java:

  • Kiến trúc máy ảo và quản lý bộ nhớ: Khái quát hóa hoạt động của JVM qua các phân vùng bộ nhớ cụ thể:
    • Method Area: Lưu trữ dữ liệu mức lớp (class-level data).
    • Heap Area: Quản lý các đối tượng (Object) và biến thể hiện (Instance Variables), được chia nhỏ thành các thế hệ (Young Generation chứa Eden, Survivor S0, S1; Old Generation; Permanent Generation) phục vụ cơ chế tự động dọn rác (Garbage Collection qua các thuật toán Marking, Normal Deleting, Deletion with Compacting).
    • Stack Area: Cấp phát cho từng tiến trình, quản lý các khung ngăn xếp (Stack Frame) chứa mảng biến cục bộ (Local Variable Array) và ngăn xếp toán hạng (Operand Stack).
    • PC Register và Native Method Stack.
  • Nguyên lý lập trình hướng đối tượng (OOP): Củng cố 4 trụ cột cơ bản thông qua cú pháp tường minh: Tính đóng gói (Encapsulation thông qua các phạm vi truy xuất private, protected, public), Tính kế thừa (Inheritance bằng từ khóa extends), Tính trừu tượng (Abstraction qua abstract class và interface), và Tính đa hình (Polymorphism thông qua nạp chồng phương thức Overloading và ghi đè phương thức Overriding).
  • Mô hình kiến trúc phần mềm: Chuẩn hóa quy trình tách biệt dữ liệu, giao diện hiển thị và logic xử lý thông qua mô hình MVC.

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical Skills): Thành thạo cú pháp Java SE; cài đặt, cấu hình biến môi trường và vận hành công cụ biên dịch dòng lệnh (javac, java, javadoc) cũng như IDE chuyên nghiệp (NetBeans); thành thạo thao tác kết nối cơ sở dữ liệu qua JDBC, xử lý dữ liệu tập tin và quản lý tiến trình đa luồng.
  • Kỹ năng phân tích (Analytical Skills): Khả năng mô hình hóa bài toán thực tế thành sơ đồ lớp UML; phân tích luồng ngoại lệ và thiết kế giải thuật đệ quy hoặc tối ưu hóa truy vấn dữ liệu.
  • Năng lực thực hành ứng dụng (Practical Competencies): Xây dựng độc lập một phần mềm desktop hoàn chỉnh có giao diện người dùng, xử lý nghiệp vụ đầy đủ, đảm bảo an toàn ngoại lệ và tương tác bền vững với cơ sở dữ liệu.

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

Giáo trình áp dụng phương pháp tiếp cận học tập theo định hướng thực hành (Hands-on Learning) và học tập dựa trên dự án tình huống (Case-based Learning).

Lý thuyết nền tảng (Cú pháp/Khái niệm)

Phương pháp tiếp cận sư phạm

Mỗi chủ đề đều bắt đầu bằng định nghĩa lý thuyết ngắn gọn, tiếp nối bằng mô hình minh họa trực quan (sơ đồ khối JVM, sơ đồ luồng dữ liệu, bảng so sánh kiểu dữ liệu) và các đoạn mã nguồn mẫu tối giản. Tác giả sử dụng các chú thích trực tiếp trong code để giải thích cơ chế thực thi, giúp người học nhanh chóng đối chiếu giữa cú pháp và kết quả hiển thị trên màn hình.

Bài tập và Case Study

Trục xương sống của phương pháp giảng dạy trong tài liệu là Case Study Quản Lý Sinh Viên:

  • Yêu cầu bài toán: Xây dựng hệ thống phần mềm quản lý thông tin trường học bao gồm: sinh viên, môn học, khoa, lớp cố định, lớp học phần, đăng ký môn học.
  • Hệ thống chức năng: Cung cấp đầy đủ các thao tác Thêm, Xóa, Sửa, Tra cứu danh sách.
  • Tiến trình tích hợp: Tại mỗi chương, sinh viên sẽ áp dụng trực tiếp kiến thức mới vào Case Study này (từ việc thiết kế lớp đối tượng ở Chương 2, bẫy lỗi nhập liệu ở Chương 3, lưu trữ danh sách ra file ở Chương 4, chuyển đổi sang lưu trữ CSDL ở Chương 5, gắn giao diện đồ họa ở Chương 6, sắp xếp danh sách ở Chương 7, tối ưu hóa cấu trúc theo MVC ở Chương 8 và xử lý luồng ở Chương 9).

Ngoài Case Study, cuối mỗi chương đều có hệ thống bài tập thực hành độc lập, bao gồm các bài toán xử lý chuỗi, thuật toán số học (tìm UCLN/BCNN, tính giai thừa), bài toán chuyển đổi hệ đo lường (Fahrenheit/Celsius, tính chỉ số BMI), và bài toán thiết kế đối tượng độc lập như lớp HinhChuNhat, BankAccount.

Phương pháp đánh giá và Hướng dẫn tự học

  • Phương pháp đánh giá: Đánh giá tính đúng đắn của chương trình qua việc chạy thực thi, kiểm tra khả năng bẫy lỗi dữ liệu đầu vào bằng try-catch, và ứng dụng Unit Test để kiểm thử đơn vị. Đồng thời, đánh giá mức độ tuân thủ quy chuẩn mã nguồn (quy tắc đặt tên CamelCase, comment tài liệu hóa theo cú pháp javadoc).
  • Hướng dẫn tự học: Sinh viên cần cài đặt môi trường JDK 8 và NetBeans theo hướng dẫn chi tiết tại Chương 1, thực hiện gõ lại từng đoạn mã mẫu, tự tạo các breakpoint để debug lỗi và tra cứu thêm tại tài nguyên đặc tả chính thức Java API Document của Oracle.

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

  • Nền tảng công nghệ Java SE: Giáo trình được xây dựng trên nền tảng Java Standard Edition (cụ thể là phiên bản Java SE Development Kit 8 - JDK 8), tích hợp các đặc trưng hiện đại như việc sử dụng kiểu dữ liệu String trong cấu trúc switch-case (tính năng từ Java SE 7) và các thư viện quản lý ngày giờ thuộc gói java.time (LocalDateTime, DateTimeFormatter).
  • Phân tích chuyên sâu về cơ chế tầng thấp: Khác với các tài liệu chỉ tập trung vào cú pháp bề mặt, giáo trình trình bày chi tiết cơ chế hoạt động bên trong của máy ảo JVM, giải thích tường tận 3 giai đoạn của Class Loader (Loading, Linking với Verify/Prepare/Resolve, Initialization) và thuật toán phân chia vùng nhớ của bộ dọn rác (Garbage Collector).
  • Gắn kết thực tế doanh nghiệp: Nội dung lập trình cơ sở dữ liệu JDBC không chỉ dừng lại ở các câu lệnh SQL tĩnh mà mở rộng sang kỹ thuật gọi Stored Procedure, phản ánh đúng kiến trúc xử lý dữ liệu trong các dự án phần mềm thực tế.
  • Chuẩn hóa quy ước phát triển phần mềm: Tài liệu định hình phong cách lập trình chuyên nghiệp ngay từ đầu thông qua việc giới thiệu và yêu cầu tuân thủ hai bộ tiêu chuẩn: Google Java Style Guide và Sun Java Style Guide.

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

Đối tượng Yêu cầu / Cách thức sử dụng
Sinh viên chuyên ngành Sinh viên năm thứ nhất và năm thứ hai theo học hệ Cao đẳng hoặc Đại học ngành Công nghệ Thông tin, Kỹ thuật Phần mềm, Hệ thống Thông tin.
Kiến thức tiên quyết Đã hoàn thành các học phần cơ sở: Kỹ thuật lập trình (nắm vững tư duy thuật toán, cấu trúc rẽ nhánh, vòng lặp) và Cấu trúc dữ liệu (hiểu về mảng, ngăn xếp, hàng đợi).
Giảng viên Sử dụng làm tài liệu giảng dạy chính khóa trên lớp; sử dụng khung bài tập và dự án "Case Study Quản lý sinh viên" để biên soạn đề cương bài giảng, bài thực hành tại phòng máy (lab) hoặc bài tập lớn/đồ án môn học.
Người tự học & Tham khảo Lập trình viên mới chuyển đổi sang ngôn ngữ Java hoặc người cần hệ thống hóa lại nguyên lý hướng đối tượng, kiến trúc máy ảo JVM và mô hình MVC trước khi học lập trình Android/Web.

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 biên soạn chuyên biệt cho sinh viên hệ Cao đẳng ngành Công nghệ thông tin, đồng thời phù hợp với sinh viên đại học và người tự học cần một tài liệu có hệ thống từ cơ bản đến ứng dụng hoàn chỉnh về Java SE.

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 cần có kiến thức cơ bản về kỹ thuật lập trình (logic câu lệnh điều khiển, hàm) và kiến thức cấu trúc dữ liệu cơ sở. Không bắt buộc phải biết trước về lập trình hướng đối tượng vì nội dung này được hướng dẫn từ đầu ở Chương 2 và Chương 8.

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

Giáo trình kết hợp chặt chẽ giữa lý thuyết kiến trúc máy tính (phân tích chi tiết bộ nhớ JVM, Class Loader, Garbage Collector) với tính thực hành thông qua một dự án mẫu duy nhất (Case Study Quản Lý Sinh Viên) được phát triển liên tục và mở rộng qua từng chương học.

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

Người học nên tuân thủ tiến trình 3 bước:

  1. Đọc và hiểu cơ chế hoạt động, kiến trúc bộ nhớ được mô tả trong giáo trình.
  2. Cài đặt môi trường NetBeans/Eclipse, tự tay gõ lại mã nguồn mẫu và thực hiện các bài tập lập trình thuật toán cuối chương.
  3. Tự phát triển từng phân hệ của dự án Quản lý sinh viên theo từng chương tương ứng.

5. Giáo trình yêu cầu công cụ và tài liệu bổ trợ nào kèm theo?

  • Bộ công cụ phát triển: Java SE Development Kit 8 (JDK 8), môi trường NetBeans IDE hoặc Eclipse IDE.
  • Tài liệu tra cứu chính thức: Java Platform Standard Edition API Specification từ Oracle (Oracle API Document).
  • Tài liệu quy chuẩn mã nguồn: Google Java Style Guide và Sun Java Style Guide.

Kết luận

Giáo trình Lập trình Java của tác giả Nguyễn Thị Hồng Mỹ (Trường Cao đẳng Công nghệ Thủ Đức) cung cấp đầy đủ các kiến thức từ nền tảng máy ảo Java (JVM), cú pháp lập trình hướng đối tượng, cho đến các kỹ thuật xây dựng ứng dụng với giao diện đồ họa, xử lý tập tin, kết nối cơ sở dữ liệu quan hệ và mô hình MVC.

Lộ trình học tập được thiết kế khoa học: người học bắt đầu từ việc hiểu cấu trúc nền tảng Java Platform, rèn luyện tư duy đối tượng, hoàn thiện ứng dụng phần mềm qua dự án mẫu thực tế, và chuẩn bị sẵn sàng nền tảng vững chắc để tiếp tục phát triển chuyên sâu với lập trình ứng dụng di động Android hoặc hệ thống doanh nghiệp Java EE.