Tổng quan về giáo trình
Giáo trình Lập trình Java (Nhóm tác giả biên soạn, TP.HCM, xuất bản tháng 01/2006) là tài liệu học tập phục vụ học phần lập trình Java trong chương trình đào tạo Cử nhân Tin học (bao gồm hệ đào tạo từ xa qua mạng) và sinh viên chuyên ngành Công nghệ Thông tin giai đoạn chuyên ngành tại các trường đại học ở Việt Nam.
Mục tiêu học tập của giáo trình bao gồm việc trang bị cho người học các kiến thức nền tảng về ngôn ngữ Java và nền tảng máy ảo Java (Java Virtual Machine - JVM); nắm vững cú pháp lập trình hướng đối tượng thuần nhất; thành thạo kỹ thuật xây dựng các ứng dụng từ chế độ dòng lệnh (Console), ứng dụng giao diện người dùng đồ họa (GUI) sử dụng thư viện AWT và JFC; quản lý luồng dữ liệu xuất/nhập (I/O Streams) và tệp tin; cũng như thiết lập kết nối và thao tác với hệ quản trị cơ sở dữ liệu qua kiến trúc JDBC.
Cấu trúc tài liệu được thiết kế theo tiến trình học tập tuần tự gồm 6 chương lý thuyết kết hợp thực hành, đi kèm danh mục Tài liệu tham khảo (trang 176), Phụ lục A: Trắc nghiệm kiến thức (trang 177) và Phụ lục B: Đáp án trắc nghiệm kiến thức (trang 205). Cách tiếp cận của giáo trình tập trung vào việc làm rõ cơ chế thông dịch/biên dịch của Java, phân tích cú pháp chi tiết thông qua các đoạn mã nguồn hoàn chỉnh, và cung cấp các bước chỉ dẫn thao tác trên công cụ lập trình JCreator LE v3.50 cũng như trình biên dịch dòng lệnh JDK/J2SE.
Điểm đặc thù của giáo trình là việc chuẩn hóa nội dung xoay quanh nền tảng J2SE (Java 2 Standard Edition), đóng vai trò bước đệm kỹ thuật trước khi người học tiếp cận các chuyên đề nâng cao như JavaBeans, lập trình mạng, hoặc kiến trúc doanh nghiệp J2EE (Java 2 Enterprise Edition).
Nội dung kiến thức cốt lõi
GIÁO TRÌNH LẬP TRÌNH JAVA
[Nền tảng & Cú pháp] [Lập trình Đối tượng] [Xây dựng Ứng dụng]
- Chương 1: JVM, JDK, - Chương 3: Class, Object, - Chương 4: GUI (AWT, JFC)
J2SE, J2EE, J2ME Field, Method, - Chương 5: Luồng & Tệp tin
- Chương 2: Kiểu dữ liệu, Constructor, Overloading, (Byte & Char Streams)
Toán tử, Điều khiển, Inheritance, Interface - Chương 6: CSDL với JDBC
Mảng, Wrapper Class
Các chương/chủ đề chính
- Chương 1: Giới thiệu tổng quan về ngôn ngữ lập trình Java: Trình bày bối cảnh lịch sử phát triển của Java từ dự án Green Team (Sun Microsystems, James Gosling khởi xướng từ đầu thập niên 90 với tên gọi ban đầu là Oak); nguyên lý máy ảo JVM và định dạng mã nhị phân trung gian Java Bytecode; các đặc trưng cốt lõi gồm cơ chế vừa biên dịch vừa thông dịch (
.java $\rightarrow$ javac $\rightarrow$ .class $\rightarrow$ java), tính độc lập nền tảng ("Write Once, Run Anywhere"), tính đa nhiệm/đa luồng (Multithreading); phân loại các họ ứng dụng Java (Console, Applet, Desktop AWT/JFC, Web J2EE, Nhúng J2ME); cấu trúc chương trình đầu tiên HelloWorldApp, phương thức main(String[] args), cú pháp ghi chú và công cụ javadoc; hướng dẫn cài đặt bộ công cụ J2SE SDK và môi trường soạn thảo JCreator LE v3.50.
- Chương 2: Hằng, biến, kiểu dữ liệu, toán tử, biểu thức và các cấu trúc điều khiển trong Java: Phân loại hệ thống kiểu dữ liệu gồm 8 kiểu dữ liệu cơ sở (
byte, short, int, long, float, double, char biểu diễn bộ mã Unicode 2 bytes, boolean); các lớp bao tương ứng (Wrapper Classes trong gói java.lang như Integer, Double, Character); toán tử số học, toán tử trên bit, toán tử quan hệ, logic, toán tử điều kiện ?: và quy tắc ép kiểu rộng/hẹp; cấu trúc rẽ nhánh if...else, switch...case; cấu trúc lặp while, do...while, for; lệnh nhảy break, continue kết hợp nhãn (label); kiểu dữ liệu mảng (cấp phát qua từ khóa new, mảng một chiều, mảng hai chiều) và các thao tác trên đối tượng chuỗi String cùng luồng nhập xuất BufferedReader, InputStreamReader.
- Chương 3: Hướng đối tượng trong Java: Định nghĩa lớp (
class), khởi tạo đối tượng (new), các phạm vi truy xuất thuộc tính và phương thức (public, private, protected); phương thức khởi tạo (constructor); nạp chồng phương thức (overloading method); các đặc tính hướng đối tượng trong Java, quan hệ kế thừa đơn (inheritance) và cơ chế giao tiếp (interface) dùng để thay thế đa kế thừa (minh họa qua ví dụ lớp xemay).
- Chương 4: Thiết kế giao diện người dùng: Giới thiệu cấu trúc thư viện AWT và bộ công cụ JFC (Java Foundation Classes); cách khởi tạo khung chứa cửa sổ (
Container, Frame), tạo hệ thống thực đơn (Menu), bố trí các thành phần giao diện (Component); mô hình xử lý biến cố/sự kiện (Event-Handling Model) áp dụng cho các sự kiện chuột (Mouse Events) và bàn phím (Keyboard Events).
- Chương 5: Luồng và tập tin: Khái niệm luồng xuất nhập dữ liệu (
Stream); các luồng chuẩn định nghĩa trước (Predefined Streams); phân biệt và áp dụng luồng byte (Byte Streams) và luồng ký tự (Character Streams); kỹ thuật đọc/ghi dữ liệu trên cửa sổ Console; đọc/ghi tập tin nhị phân và xử lý tập tin truy cập ngẫu nhiên (Random Access Files).
- Chương 6: Lập trình cơ sở dữ liệu. Kiến trúc JDBC: Cung cấp mô hình kiến trúc JDBC (Java Database Connectivity); quy trình đăng ký trình điều khiển (Driver); thiết lập kết nối cơ sở dữ liệu; quy tắc ánh xạ tương thích giữa các kiểu dữ liệu SQL và kiểu dữ liệu Java; thực thi các câu lệnh truy vấn dữ liệu (
SELECT) và cập nhật dữ liệu (INSERT, UPDATE, DELETE).
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 máy ảo và kiến trúc thực thi Bytecode; nguyên lý quản trị bộ nhớ độc lập phần cứng; lý thuyết dòng dữ liệu nhập xuất dạng luồng liên tục (Data Streaming).
- Nguyên lý cốt lõi (Core principles): Nguyên lý hướng đối tượng thuần nhất (mọi định nghĩa phương thức và biến đều phải nằm trong phạm vi lớp); nguyên lý đơn kế thừa kết hợp đa giao tiếp (Single Class Inheritance, Multiple Interface Implementation); nguyên lý xử lý phân tách giữa giao diện và biến cố ngoại vi.
- Khung kiến trúc thiết yếu (Essential frameworks): Nền tảng J2SE Standard Edition; thư viện đồ họa AWT và JFC; kiến trúc trừu tượng hóa cơ sở dữ liệu JDBC.
Kỹ năng phát triển
- Kỹ năng kỹ thuật (Technical skills): Cấu hình biến môi trường hệ thống (
PATH); sử dụng trình biên dịch javac và trình thực thi java; sử dụng công cụ soạn thảo JCreator LE v3.50; khai báo biến, mảng, toán tử, lớp bao và đối tượng String.
- Kỹ năng phân tích (Analytical skills): Phân tích cấu trúc phân cấp lớp; xử lý lỗi dịch mã nguồn và lỗi thời gian chạy (như
NoClassDefFoundError, lỗi vượt biên mảng trong ví dụ ArrayErr, lỗi không tương thích kiểu giữa boolean và int); tối ưu thuật toán sắp xếp mảng (ví dụ sắp xếp nổi bọt BubbleSort).
- Năng lực thực hành (Practical competencies): Xây dựng ứng dụng hoàn chỉnh có giao diện đồ họa tương tác; xây dựng chương trình đọc ghi tệp nhị phân và tệp ngẫu nhiên; viết các khối lệnh kết nối và truy xuất cơ sở dữ liệu quan hệ bằng JDBC.
Phương pháp giảng dạy và học tập
Giáo trình áp dụng phương pháp sư phạm diễn dịch kết hợp thực hành trực tiếp trên mã nguồn (code-along approach). Mỗi nội dung lý thuyết đều được cấu trúc rõ ràng: nêu định nghĩa, cung cấp bảng đặc tả cú pháp, giải thích tham số và đưa ra đoạn mã nguồn minh họa hoàn chỉnh có thể biên dịch trực tiếp.
Hệ thống bài tập và ví dụ minh họa trong giáo trình có tính ứng dụng cao, bao gồm:
- Chương trình nhập/xuất và xử lý thuật toán cơ bản: Đoạn mã
VariableDemo (sử dụng Math.min), chương trình InputChar và inputNum (sử dụng BufferedReader và InputStreamReader), ArrayDemo, thuật toán tìm giá trị cực trị MinMax, mô phỏng lỗi truy cập chỉ số ngoài biên ArrayErr, và thuật toán sắp xếp BubbleSort.
- Chương trình xử lý mảng và chuỗi ký tự: Đoạn mã ma trận hai chiều
TwoD_Arr, lớp khởi tạo chuỗi StringDemo, các phép toán kiểm tra và trích xuất chuỗi StrOps, chương trình đảo ngược chuỗi InverstString, trích chuỗi con SubStr, và quản lý danh sách chuỗi qua mảng StringArray.
- Chương trình thiết kế hướng đối tượng và giao diện: Cấu trúc lớp thực tế
xemay quản lý thuộc tính (nhasx, model, chiphisx, so, biến tĩnh sobanhxe), các khung giao diện chứa nút bấm, thực đơn và khối lắng nghe sự kiện chuột/bàn phím.
Phương pháp đánh giá kết quả học tập được chuẩn hóa thông qua hệ thống câu hỏi tại Phụ lục A: Trắc nghiệm kiến thức (trang 177) và bảng kiểm tra đối chiếu tại Phụ lục B: Đáp án trắc nghiệm kiến thức (trang 205). Bộ câu hỏi này bao quát toàn diện các kiến thức về cú pháp, quy tắc chuyển đổi kiểu dữ liệu, các từ khóa bảo vệ quyền truy cập và mô hình kiến trúc Java.
Đối với sinh viên tự học hoặc học tập từ xa, giáo trình đưa ra lộ trình cụ thể: bắt đầu từ việc thiết lập môi trường JDK, thực hiện tuần tự việc viết mã trên trình soạn thảo, dịch mã từ cửa sổ dòng lệnh để nắm bắt bản chất các thông báo lỗi hệ thống, sau đó chuyển sang thao tác dự án trên môi trường đồ họa JCreator LE v3.50 và tự kiểm tra đánh giá qua phụ lục trắc nghiệm.
Điểm nổi bật và cập nhật
- Đặc điểm công nghệ của ấn bản: Giáo trình biên soạn dựa trên phiên bản J2SE (Java 2 Standard Edition phiên bản 1.4/1.5) của Sun Microsystems. Toàn bộ các công cụ dịch, bộ thư viện chuẩn và cú pháp ngôn ngữ được đồng bộ theo tiêu chuẩn chính thức của Sun tại thời điểm xuất bản.
- Phân định cấu trúc hệ sinh thái Java: Tài liệu chỉ rõ ranh giới ứng dụng giữa ba phiên bản công nghệ Java của Sun Microsystems:
- J2SE: Phục vụ phát triển ứng dụng đơn lẻ (standalone) và ứng dụng mô hình client-server.
- J2EE: Phục vụ phát triển ứng dụng thương mại điện tử, ứng dụng web quy mô lớn và hệ thống phân tán.
- J2ME: Phục vụ xây dựng phần mềm nhúng trên thiết bị cá nhân (điện thoại di động, thiết bị hỗ trợ kỹ thuật số cá nhân PDA/Palm).
- Giải pháp loại bỏ các yếu tố nguy hiểm của ngôn ngữ tiền nhiệm: Giáo trình phân tích cụ thể sự khác biệt giữa Java và C++, trong đó Java đã lược bỏ cơ chế con trỏ trực tiếp, loại bỏ cấu trúc đa kế thừa trực tiếp để tránh xung đột cấu trúc, thay thế bằng cơ chế
interface và hệ thống gom rác tự động chạy trên JVM.
- Kết nối thực tiễn và công cụ phát triển: Nội dung giáo trình phản ánh bức tranh toàn cảnh về các công cụ phát triển Java trong ngành công nghiệp phần mềm giai đoạn này (JBuilder của Borland, Visual Café của Symantec, JDeveloper của Oracle, Visual J++ của Microsoft và JCreator LE của Xinox Software), đồng thời dẫn chứng các hệ thống cổng thông tin và giải pháp web triển khai trên công nghệ J2EE tại Việt Nam và thế giới.
Đối tượng sử dụng giáo trình
- Sinh viên đại học và cao đẳng: Giáo trình được biên soạn chuyên biệt cho sinh viên năm thứ hai hoặc năm thứ ba thuộc ngành Công nghệ Thông tin, Tin học ứng dụng, Khoa học Máy tính, cũng như sinh viên theo học chương trình Cử nhân Tin học hệ đào tạo từ xa qua mạng.
- Kiến thức tiên quyết (Prerequisites): Để tiếp thu nội dung tài liệu một cách hiệu quả, người học bắt buộc phải hoàn thành và nắm vững kiến thức từ hai học phần cơ sở:
- Nhập môn lập trình: Cấu trúc điều khiển cơ bản, tư duy thuật toán, biến và kiểu dữ liệu.
- Lập trình hướng đối tượng: Các khái niệm trừu tượng hóa, đóng gói, kế thừa và đa hình.
- Giảng viên chuyên ngành: Giảng viên có thể sử dụng giáo trình làm đề cương chi tiết và tài liệu giảng dạy chính cho học phần Lập trình Java cơ sở hoặc chuyên đề tự chọn về Java trong khung chương trình đào tạo kỹ sư/cử nhân CNTT.
- Người tự học và lập trình viên: Tài liệu là tài liệu tham khảo hệ thống cho các lập trình viên đã có kinh nghiệm với C/C++ có nhu cầu chuyển đổi sang nền tảng Java, giúp nắm bắt nhanh kiến trúc JVM, cú pháp lớp, xử lý I/O Stream và kỹ thuật kết nối CSDL thông qua JDBC.
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 phục vụ sinh viên chuyên ngành Công nghệ Thông tin, sinh viên các lớp Cử nhân Tin học từ xa qua mạng, và người học cần một tài liệu có hệ thống về nền tảng ngôn ngữ Java theo chuẩn J2SE.
2. Cần trang bị những 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 hoàn thành hai môn học tiên quyết: Nhập môn lập trình và Lập trình hướng đối tượng (OOP). Việc hiểu biết trước về cú pháp C hoặc C++ sẽ hỗ trợ tiếp thu nhanh các cấu trúc điều khiển và cú pháp hướng đối tượng trong Java.
3. Điểm khác biệt về mặt cấu trúc của giáo trình này so với các tài liệu lập trình khác là gì?
Tài liệu trình bày toàn diện chu trình phát triển ứng dụng Java từ cơ chế thực thi của máy ảo JVM, phương pháp biên dịch/thông dịch bằng công cụ dòng lệnh JDK, đến việc xây dựng giao diện đồ họa AWT/JFC, xử lý luồng tệp tin và thao tác trực tiếp với cơ sở dữ liệu qua JDBC. Ngoài ra, giáo trình tích hợp sẵn bộ câu hỏi trắc nghiệm đánh giá kèm đáp án ở phần phụ lục.
4. Phương pháp tự học giáo trình này như thế nào để đạt hiệu quả cao?
Người học nên cài đặt bộ công cụ J2SE SDK và phần mềm JCreator LE v3.50; thực hành viết và biên dịch từng đoạn mã ví dụ trong sách (từ các ứng dụng Console, xử lý mảng, chuỗi đến thiết kế giao diện AWT/JFC); sau khi hoàn thành mỗi chương, tự giải các câu hỏi trắc nghiệm tại Phụ lục A và đối chiếu với Phụ lục B.
5. Giáo trình có những tài liệu bổ trợ nào đi kèm?
Giáo trình cung cấp danh mục Tài liệu tham khảo chuyên ngành ở trang 176, hệ thống câu hỏi ôn tập tại Phụ lục A: Trắc nghiệm kiến thức (trang 177) và Phụ lục B: Đáp án trắc nghiệm kiến thức (trang 205).
Kết luận
Giáo trình Lập trình Java cung cấp hệ thống tri thức cơ bản về ngôn ngữ Java và nền tảng máy ảo JVM. Nội dung văn bản tập trung vào cấu trúc ngữ pháp chuẩn mực, nguyên lý lập trình hướng đối tượng thuần nhất, kỹ thuật thiết kế giao diện người dùng AWT/JFC, xử lý dữ liệu luồng/tệp tin và kết nối cơ sở dữ liệu qua JDBC.
Lộ trình học tập được định hình tuần tự: xây dựng nền tảng cú pháp và tư duy đối tượng ở Chương 1, 2, 3; phát triển năng lực ứng dụng thực tế với giao diện, luồng và cơ sở dữ liệu ở Chương 4, 5, 6; và kiểm chuẩn năng lực qua hệ thống trắc nghiệm phụ lục.
Nội dung giáo trình đóng vai trò kiến thức nền tảng bắt buộc, chuẩn bị cho người học tiếp tục nghiên cứu các chuyên đề chuyên sâu về công nghệ Java như JavaBeans, JFC nâng cao, lập trình mạng và nền tảng ứng dụng doanh nghiệp J2EE.