Java Core Programming
Cơ sở lập trình, các thành phần cơ bản, thiết kế và lập trình hướng đối tượng, xử lý mảng & chuỗi, lập trình vào/ra,...
Cơ sở lập trình & Các thành phần cơ bản
Tổng quan về Công nghệ Java; kỹ thuật lập trình; tổ chức thư viện và môi trường phát triển tích hợp (IDE)...
- Kiến trúc thực thi các Ứng dụng Java; bộ công cụ phát triển JDK
- Hệ thống tính năng (features) được hỗ trợ trong các phiên bản JDK
- Chương trình Java đầu tiên, biên dịch & thực thi chương trình đó
- Kiến trúc máy ảo (JVM); tổ chức thư viên; cài đặt môi trường phát triển tích hợp (IDE)
- Hệ thống từ khóa (Keywords); kiểu dữ liệu (Data types); khai báo biến & hằng
- Các toán tử số học; toán tử logic; biểu thức; vào ra cơ bản
- Cấu trúc điều khiển (if/else); cấu trúc lặp (for/while/do while)
- Sự cải tiến kỹ thuật trong các phiên bản JDK
Rèn luyện kỹ năng và tư duy lập trình trong 2 buổi học này là một số bài tập kinh điển như:
kiểm tra một giá trị n (nguyên) có phải nguyên tố; tìm UCLN của 2 số nguyên dương a và b;
kiểm tra một bộ 3 giá trị nguyên dương (a,b,c) có tạo thành một tam giác;
tính thể tích của một hình nón cụt, tính diện tích của một mặt lồi lõm;
giải bài toán Fibonaci không đệ quy; giải bài toán Hà Nội Tower không đệ quy;
giải bài toán cái túi, bài toán người du lịch...
Ứng dụng & Xây dựng hệ thống quản lý sản phẩm (Project 1 - Phần 1)
Phương thức (Method) & Lớp đối tượng (Object)
Khai báo và sử dụng phương thức, kỹ thuật chồng phương thức, xây dựng lớp đối tượng, chuẩn hóa lớp đối tượng.
- Cấu trúc khai báo phương thức (Method) và cách sử dụng
- Kỹ thuật chồng phương thức (Overloading)
- Xây dựng tài liệu và đóng gói chương trình (phương thức)
- Xây dựng lớp đối tượng (Object) cơ bản
- Tạo các Constructor (phương thức khởi tạo đối tượng) và nguyên lý làm việc của nó
- Đối tượng this (đối tượng nội tại) & thành phần private (riêng tư, che dấu)
- Truy cập các thành phần thuộc tính với các phương thức Setter/Getter
- Các thành phần thuộc về lớp (static), cách sử dụng hằng (final), dọn dẹp đối tượng (finalize)
- Xây dựng lớp đối tượng nâng cao, chuẩn hóa lớp đối tượng.
Rèn luyện kỹ năng và tư duy lập trình trong 2 buổi học này là một số bài tập như:
xây dựng lớp đối tượng Person (firstName, lastName, age...);
xây dựng lớp Address (cityName, districtName, streetName,...);
cải tiến lớp Person với việc bổ sung thêm thuộc tính Address (vừa xây dựng);
xây dựng lớp Book (book_id, book_name, book_author, book_publisher,...);
phân tích & thiết kế đối tượng cho hệ thống quản lý sản phẩm điện thoại / máy tính / ô tô / xe máy / ...
Ứng dụng & Xây dựng hệ thống quản lý sản phẩm (Project 1 - Phần 2)
Xử lý mảng (Array) & Chuỗi (String)
Khai báo và sử dụng mảng, xử lý dữ liệu mảng, làm việc với chuỗi ký tự, cách sử dụng và khai thác API String.
- Khai báo & sử dụng mảng 1 chiều
- Các thao tác nghiệp vụ và hoạt động xử lý với mảng 1 chiều
- Mảng đa chiều (2++) và mảng đối tượng
- Lập trình sử dụng ArrayList cơ bản
- Chuỗi ký tự và xử lý
- Xây dựng và phát triển các phương thức nghiệp vụ
- Những cải tiến của một số phiên bản JDK đối với Array & String
Rèn luyện kỹ năng và tư duy lập trình trong 2 buổi học này là một số bài tập như:
sinh ngẫu nhiên mảng 1 chiều / 2 chiều / mảng đối tượng,...;
sắp xếp tăng/giảm giá trị với một số thuật toán Bubblesort, Quicksort, Selectionsort,...;
lọc thành phần, lọc giá trị, các kỹ thuật nâng cao với mảng 1 chiều / mảng đối tượng;
đếm số ký tự trong chuỗi, chuẩn hóa chuỗi và đếm số từ (word) trong chuỗi kỹ tự;
tính tần suất xuất hiện của một cụm ký tự, viết hoa tên riêng, viết hoa đầu câu, cắt chuỗi ký tự
Ứng dụng & Xây dựng hệ thống quản lý sản phẩm (Project 1 - Phần 3)
Phát triển lớp đối tượng (Advanced Object)
Các kỹ thuật nâng cao hướng đối tượng: Thừa kế, đa hình, trừu tượng và giao diện/giao tiếp
- Thừa kế (Inheritance) & phân loại thừa kế
- Phát triển kỹ thuật lập trình đa hình (Polymorphism)
- Xây dựng lớp trừu trượng (Abstract class) và ứng dụng
- Xây dựng giao diện / giao tiếp (Interface)
- Một số xử lý nâng cao với Interface
- Một số đánh giá / so sánh Abstract class & Interface
- Những cải tiến trên các phiên bản JDK
Rèn luyện kỹ năng và tư duy lập trình trong 2 buổi học này là một số bài tập như:
xây dựng lớp Student/Employee dựa trên lớp Person buổi học trước;
cài đặt đa hình cho một danh sách Person (với các phần tử cấp phát ngẫu nhiên);
xây dựng & cài đặt lớp trừu tượng Manager với các hoạt động cập nhật / tìm kiếm / sắp xếp...;
xây dựng, cài đặt và phát triển các Interface: Product, SearchProduct, SortedProduct...;
cải tiến theo các phiên bản Java mới
Ứng dụng & Phát triển hệ thống quản lý sản phẩm (Project 2 - Phần 1)
Lập trình vào ra (Input/Output) & Tập tin (File/Folder)
Luồng dữ liệu (Stream) & các kỹ thuật xử lý, tập tin / thư mục (Fille/Folder), quản lý tập tin / thư mục
- Stream và các kỹ thuật xử lý cơ bản
- Phân cấp Stream và kỹ thuật xử lý nâng cao (Buffer/Binary/Serialization/Pipe)
- Tập tin (File), kỹ thuật làm việc với File văn bản
- Tập tin (File), kỹ thuật làm việc với File nhị phân
- Quản lý tập tin (File Management)
- Các kỹ thuật làm việc với tập tin nâng cao trong dự án phần mềm
- Những cải tiến trên các phiên bản JDK
Rèn luyện kỹ năng và tư duy lập trình trong 2 buổi học này là một số bài tập như:
xây dựng lớp MySream & StreamCopy thực hiện việc sao chép (copy) dữ liệu theo luồng byte / ký tự;
cài đặt Person với giao tiếp Serialization;
xây dựng DataPutter/DataGetter xử lý kỹ thuật với Pipe;
xây dựng MyFileProcessthực hiện việc đọc/ghi dữ liệu vào file văn bản / file nhị phân;
xây dựng các Utilities xử lý sao chép file/folder, sao chép và xử lý dữ liệu hình ảnh.
Ứng dụng & Phát triển hệ thống quản lý sản phẩm (Project 2 - Phần 2)
Các kỹ thuật lập trình nâng cao khác (Advanced techniques)
Lập trình tập hợp (Collections), lập trình Socket / WebSocket, lập trình sử dụng JavaTuples, phát triển APIs...
- List và các thành phần thuộc về List, các kỹ thuật làm việc
- Set/Queue và các thành phần thuộc về Set/Queue, các kỹ thuật làm việc
- Map và các thành phần thuộc về Map, các kỹ thuật làm việc
- Lập trình Socket và phát triển ứng dụng với WebSocket
- Lập trình và ứng dụng JavaTuples
- Xây dựng các Utilities cho hệ thống phần mềm / ứng dụng / dịch vụ web
- Những kỹ thuật cải tiến trên các phiên bản JDK
Rèn luyện kỹ năng và tư duy lập trình trong 2 buổi học này là một số bài tập như:
xây dựng các MyArrays, MyCollections, MyStrings... làm việc với List/Map/Set;
cài đặt ứng dụng gửi tin nhắn sử dụng WebSocket;
phát triển các phương thức trong MyArrays, MyStrings... thành các library;
ứng dụng JavaTuples vào các phương thức trong MyArrays, MyStrings, MyCllections;
đánh giá độ phức tạp, hiệu năng và tối ưu mã nguồn.
Hoàn thiện & Báo cáo thực nghiệm hệ thống quản lý sản phẩm (Project 2 - Phần 3)