TỔNG QUAN HỌC THUẬT: GIÁO TRÌNH LẬP TRÌNH CHO THIẾT BỊ DI ĐỘNG


Tổng quan về giáo trình (250-300 từ)

Giáo trình Lập trình cho thiết bị di động là tài liệu học tập và nghiên cứu chuyên ngành do Tiến sĩ Ngô Bá Hùng (chủ biên) và Thạc sĩ Đoàn Hòa Minh biên soạn, được Nhà xuất bản Đại học Cần Thơ ấn hành năm 2016 (230 trang, khổ 24 cm, chỉ số ISBN: 9786049195846, phân loại DDC 23: 004.167). Học phần này được thiết kế và giảng dạy chính thức cho sinh viên thuộc khối ngành Công nghệ Thông tin và Truyền thông tại Trường Đại học Cần Thơ từ năm học 2010–2011. Ban đầu, học phần có thời lượng 2 tín chỉ giảng dạy trên nền tảng J2ME, sau đó được cập nhật sang nền tảng Android vào năm học 2012–2013, và chính thức nâng lên 3 tín chỉ vào năm 2014 với việc mở rộng thêm kiến thức về iOS, Windows Phone và Mobile Web.

Mục tiêu học tập của giáo trình là trang bị cho người học hệ thống lý thuyết về mạng truyền thông không dây, kiến trúc phần mềm di động, quy trình cài đặt môi trường phát triển (SDE/IDE), cũng như kỹ năng xây dựng, kiểm thử, đóng gói và phát hành ứng dụng di động hoàn chỉnh. Cấu trúc giáo trình gồm 06 chương, tiếp cận theo tiến trình từ nguyên lý chung đến kỹ thuật lập trình chuyên sâu trên nền tảng mở Android (từ giao diện, lưu trữ, mạng đến định vị GPS), sau đó mở rộng đối sánh với các nền tảng iOS, Windows Phone và Mobile Web. Điểm đặc thù của tài liệu là phương pháp trình bày gắn kết chặt chẽ giữa lý thuyết hệ thống (đặc tính công thái học, định luật Fitts, kiến trúc N-Tier Client-Server) và hướng dẫn thực thi qua các đoạn mã nguồn, cấu hình công cụ thực tế.


Nội dung kiến thức cốt lõi (500-600 từ)

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

Giáo trình gồm 6 chương với lộ trình phát triển nội dung logic:

flowchart TD
    C1["Chương 1: Tổng quan & Mạng di động"] --> C2["Chương 2: Nền tảng & Kiến trúc Android"]
    C2 --> C3["Chương 3: Lập trình giao diện UI (XML/Java)"]
    C3 --> C4["Chương 4: Lưu trữ dữ liệu (SQLite/File/Content Provider)"]
    C4 --> C5["Chương 5: Hoạt động mạng, Web Services & GPS"]
    C5 --> C6["Chương 6: Tổng quan iOS, Windows Phone & Mobile Web"]
  • Chương 1: Tổng quan về lập trình thiết bị di động: Hệ thống hóa các khái niệm điện toán di động, thiết bị di động, môi trường phát triển (SDE/IDE), kiến trúc N-Tier Thin-Client và Thick-Client. Trình bày tiến trình mạng tế bào (1G đến 3G, LTE), mạng tầm ngắn (WPAN, WLAN IEEE 802.11, Bluetooth Piconet/Scatternet, UWB, Wibree) và các nguyên lý thiết kế ứng dụng (vùng ngón cái, định luật Fitts, quản lý năng lượng và RAM).
  • Chương 2: Phát triển ứng dụng trên nền tảng Android: Giới thiệu lịch sử hình thành Open Handset Alliance, giấy phép Apache, các bản nâng cấp từ Android 1.0 đến Android 5.0/5.1 (Lollipop, API 21–22). Phân tích kiến trúc 4 tầng (Linux Kernel 2.6, Libraries C/C++, Android Runtime với Dalvik VM, Application Framework, Applications). Hướng dẫn thiết lập Eclipse ADT, Android Studio, biến môi trường, máy ảo AVD, vòng đời Activity và cấu trúc dự án (AndroidManifest.xml).
  • Chương 3: Lập trình giao diện người dùng với Android: Triển khai thiết kế giao diện mức cao bằng XML thông qua View, ViewGroup (LinearLayout, TableLayout, FrameLayout, AbsoluteLayout), các Widget (TextView, EditText, Button, ListView, GridView, Gallery) và xử lý sự kiện tương tác/bàn phím T9. Đồng thời hướng dẫn lập trình giao diện đồ họa mức thấp bằng Java thông qua Canvas, Paint, SurfaceView và xử lý đa luồng (Thread).
  • Chương 4: Lưu trữ dữ liệu trong Android: Trình bày 3 cơ chế lưu trữ chính: cơ sở dữ liệu quan hệ SQLite (thông qua SQLiteOpenHelper để tạo bảng, thêm, sửa, xóa, truy vấn với Cursor), lưu trữ tập tin (bộ nhớ trong Internal Storage và thẻ nhớ ngoài SD Card), và chia sẻ dữ liệu liên ứng dụng qua Content Providers (đọc danh bạ hệ thống).
  • Chương 5: Lập trình mạng với Android: Khai thác kết nối mạng, hiển thị trang web với WebView, thư viện Telephony (lập trình SMS, Email), tương tác Web Services qua giao thức HTTP (GET/POST Requests), lập trình truyền thông thời gian thực qua kết nối Socket TCP/IP, và tích hợp dịch vụ vị trí dựa trên GPS cùng Google Maps API.
  • Chương 6: Giới thiệu một vài nền tảng khác: Cung cấp tổng quan kiến trúc và công cụ lập trình của các nền tảng đương thời: iOS (kiến trúc tầng Cocoa Touch, Media, Core Services, Core OS; ngôn ngữ Objective-C, IDE Xcode 6.2); Windows Phone (kiến trúc hệ thống, ngôn ngữ trung gian CIL, Silverlight Framework, XAML); và nền tảng Mobile Web (xây dựng giao diện web thân thiện trên thiết bị di động).

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

Giáo trình thiết lập hệ thống tri thức nền tảng dựa trên các lý thuyết và mô hình chuẩn:

  • Lý thuyết truyền thông & mạng không dây: Mô hình phân bổ tài nguyên mạng tế bào (GSM, CDMA, GPRS, EDGE, UMTS, HSDPA/HSUPA), cơ chế đa truy cập CSMA/CA trong chuẩn IEEE 802.11, cấu trúc liên kết mạng cá nhân WPAN với mô hình Piconet (1 Master, tối đa 7 Active Slaves, 255 Parked Slaves) và mạng Scatternet.
  • Nguyên lý kiến trúc phần mềm di động: Cơ chế thực thi của máy ảo Dalvik thông qua việc biên dịch mã Java thành định dạng .dex (Dalvik Executable) trên nền nhân Linux 2.6; cơ chế phân phối dữ liệu phân tán N-Tier Wireless Client-Server; mô hình 4 thành phần ứng dụng cốt lõi (Activity, Service, Content Provider, Broadcast Receiver) cùng cơ chế truyền thông điệp Intent.
  • Nguyên tắc công thái học và tối ưu tài nguyên: Ứng dụng định luật Fitts ($T = a + b \log_2(1 + D/W)$) trong tính toán thời gian di chuyển điểm chạm trên màn hình cảm ứng, tiêu chuẩn kích thước điểm chạm (Apple: 44x44 pixel, Microsoft: 34x34 pixel, Nokia: tối thiểu 28x28 pixel), nguyên lý "vùng ngón cái" (thumb zone), và các kỹ thuật thu hồi bộ nhớ khi thiết bị rơi vào trạng thái ngủ (hibernation).

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical skills): Thành thạo quy trình cấu hình bộ công cụ phát triển phần mềm (JDK, Android SDK, ADT Plugin, AVD Manager); viết mã nguồn Java và khai báo XML; cấu hình quyền truy cập và khai báo thành phần trong AndroidManifest.xml; thao tác dữ liệu với SQLite và Content Resolver; gửi nhận gói tin Socket và xử lý giao thức HTTP.
  • Kỹ năng phân tích (Analytical skills): Phân tích và lựa chọn giải pháp kiến trúc client-server (Thin-client vs. Thick-client) phù hợp với tài nguyên phần cứng; đánh giá dung lượng bộ nhớ RAM và mức độ tiêu hao pin (mAh) của ứng dụng; tối ưu hóa luồng hiển thị đồ họa nhằm tránh nghẽn luồng giao diện chính (UI Thread).
  • Năng lực thực hành ứng dụng (Practical competencies): Xây dựng các ứng dụng hoàn chỉnh tích hợp đa chức năng: ứng dụng truyền thông (SMS/Email), ứng dụng quản trị dữ liệu cục bộ, ứng dụng giải trí/đồ họa 2D cơ bản, và ứng dụng định vị dẫn đường dựa trên GPS và bản đồ số.

Phương pháp giảng dạy và học tập (300-350 từ)

Giáo trình triển khai phương pháp tiếp cận sư phạm đi từ việc thiết lập nền tảng nguyên lý hệ thống đến thực hành kỹ thuật chuyên sâu theo từng tầng chức năng. Quá trình tiếp thu kiến thức được cấu trúc theo mô hình phân tầng: người học nắm vững kiến trúc hệ điều hành và môi trường SDK trước khi đi sâu vào thiết kế giao diện (UI), quản trị dữ liệu (Data), xử lý logic mạng (Network) và tích hợp các module dịch vụ nâng cao.

Tiến trình học tập theo module:
[Nguyên lý mạng & Cài đặt môi trường] ➔ [Xây dựng Layout UI & Xử lý sự kiện] ➔ [Lưu trữ SQLite / Bộ nhớ] ➔ [Lập trình Mạng / GPS / Web Services] ➔ [Đóng gói, Kiểm thử & Đối sánh nền tảng]

Hệ thống bài tập và thực hành trong tài liệu được thiết kế bám sát từng đơn nguyên kiến thức:

  • Hệ thống câu hỏi ôn tập lý thuyết: Đặt ở cuối mỗi chương nhằm củng cố các khái niệm trừu tượng, cơ chế hoạt động của hệ thống (chu kỳ sống của Activity, 5 trạng thái tiến trình, cơ chế phân xử piconet, định luật Fitts).
  • Bài tập thực hành mẫu và tình huống: Hướng dẫn chi tiết từng bước xây dựng ứng dụng cụ thể như: thiết kế màn hình HelloAndroidActivity, xây dựng giao diện tùy biến với TableLayoutFrameLayout, thao tác cơ sở dữ liệu MyDB với bảng contacts, viết ứng dụng vẽ chuyển động đối tượng dùng đa luồng trên SurfaceView, và lập trình truyền nhận tin nhắn qua thư viện Telephony.
  • Đánh giá kết quả học tập: Được thực hiện thông qua việc kết hợp giữa kiểm tra lý thuyết, chấm điểm các bài thực hành định kỳ trên phòng máy, và nghiệm thu các sản phẩm đồ án môn học, niên luận, tiểu luận hoặc đề tài khóa luận tốt nghiệp chuyên ngành.
  • Hướng dẫn tự học: Do thời lượng thực hành tập trung tại phòng máy có giới hạn, giáo trình cung cấp danh mục bài tập mở rộng có độ phức tạp cao hơn. Người học được yêu cầu tự cài đặt môi trường trên máy tính cá nhân, tự luyện tập giải quyết các bài toán giao diện đa kích thước và chủ động mở rộng nghiên cứu mã nguồn mẫu.

Điểm nổi bật và cập nhật (250-300 từ)

Giáo trình Lập trình cho thiết bị di động phản ánh rõ nét sự chuyển biến công nghệ trong chương trình đào tạo của Khoa Công nghệ Thông tin và Truyền thông – Trường Đại học Cần Thơ qua từng giai đoạn phát triển:

  • Sự chuyển đổi và nâng cấp chương trình đào tạo: Từ nền tảng J2ME (giai đoạn 2010–2011, 2 tín chỉ) dành cho các thiết bị di động cấu hình hạn chế, giáo trình đã chuyển dịch hoàn toàn sang nền tảng Android (từ năm 2012–2013) và nâng quy mô lên 3 tín chỉ vào năm 2014, đáp ứng sự thống trị của các hệ điều hành di động hiện đại.
  • Hệ thống hóa tiến trình phát triển của Android: Giáo trình ghi nhận chi tiết các mốc phát triển công nghệ từ Android 1.0 (trên thiết bị HTC Dream năm 2008), qua các phiên bản như Android 2.2 Froyo (bổ sung V8 JavaScript Engine), Android 3.1 Honeycomb (tối ưu máy tính bảng), Android 4.1–4.3 Jelly Bean (tích hợp Google Now, đồ họa OpenGL ES 3.0, tính năng Restricted Profiles), Android 4.4 KitKat, đến Android 5.0 Lollipop (API 21) với phong cách giao diện Card Style-UI và Android 5.1 (API 22) bổ sung cơ chế bảo mật Device Protection.
  • Mở rộng kiến trúc đa nền tảng: Không giới hạn ở Android, giáo trình cập nhật kiến trúc của các hệ điều hành đối trọng gồm iOS (phiên bản iOS 8, công cụ Xcode 6.2, ngôn ngữ Objective-C), Windows Phone (phiên bản WP 8, Silverlight Framework, ngôn ngữ XAML) và kiến trúc ứng dụng Mobile Web dựa trên HTML5.
  • Gắn kết ứng dụng thực tế: Nội dung thực hành bám sát các ứng dụng dịch vụ thực tiễn như khai thác hệ thống bản đồ Google Maps, xử lý dữ liệu vị trí LBS (Location-based services), tối ưu hóa giao tiếp client-server qua RESTful HTTP, và truyền nhận dữ liệu qua cổng giao tiếp mạng Socket.

Đối tượng sử dụng giáo trình (200-250 từ)

  • Đối tượng sinh viên: Tài liệu được biên soạn phục vụ trực tiếp cho sinh viên đại học năm thứ ba hoặc năm thứ tư thuộc các ngành Công nghệ Thông tin, Kỹ thuật Phần mềm, Truyền thông và Mạng máy tính, Khoa học Máy tính hoặc Hệ thống Thông tin.
  • Kiến thức tiên quyết (Prerequisites): Người học bắt buộc phải có kiến thức nền tảng vững chắc về ngôn ngữ lập trình Java (lập trình hướng đối tượng, xử lý ngoại lệ, luồng dữ liệu, lập trình đa luồng). Ngoài ra, người học cần nắm các khái niệm cơ bản về cấu trúc dữ liệu, hệ điều hành, cơ sở dữ liệu quan hệ (SQL) và nguyên lý mạng máy tính (giao thức TCP/IP, HTTP).
  • Ứng dụng đối với giảng viên: Giảng viên sử dụng giáo trình làm khung bài giảng chính thức cho học phần Lập trình thiết bị di động (3 tín chỉ). Dựa trên cấu trúc phân phối chương, giảng viên lựa chọn các nội dung cốt lõi để trình bày lý thuyết trên lớp và tuyển chọn các bài tập trong danh mục thực hành để giao cho sinh viên rèn luyện tại phòng máy hoặc làm đồ án kết thúc môn.
  • Tự học và tham khảo: Phục vụ các kỹ sư phần mềm, lập trình viên muốn chuyển đổi sang phát triển ứng dụng di động native, hoặc sinh viên thực hiện các đề tài niên luận, tiểu luận chuyên ngành và luận văn tốt nghiệp liên quan đến giải pháp di động.

Câu hỏi thường gặp (250-300 từ)

1. Giáo trình này phù hợp với ai?

Giáo trình phù hợp cho sinh viên chuyên ngành Công nghệ thông tin bậc đại học, học viên các khóa đào tạo chuyên đề phát triển phần mềm di động, và các lập trình viên đã có nền tảng lập trình hướng đối tượng muốn tiếp cận kiến trúc ứng dụng di động một cách bài bản.

2. Cần kiến thức nền nào để học?

Yêu cầu bắt buộc là người học phải nắm vững kiến thức lập trình ngôn ngữ Java căn bản. Đồng thời, việc có sẵn kiến thức về cơ sở dữ liệu (cú pháp SQL cơ bản), mô hình hướng đối tượng (OOP) và khái niệm mạng máy tính (Client-Server, HTTP) sẽ hỗ trợ quá trình tiếp thu.

3. Điểm khác biệt với giáo trình khác?

Tài liệu kết hợp toàn diện giữa lý thuyết truyền thông không dây (mạng tế bào, WPAN, Bluetooth), công thái học phần mềm di động (định luật Fitts, nguyên lý vùng ngón cái) với kỹ năng lập trình thực tế. Nội dung không chỉ tập trung sâu vào Android mà còn cung cấp kiến trúc đối sánh của iOS, Windows Phone và Mobile Web.

4. Làm sao để tự học hiệu quả?

Người học nên tuân thủ tiến trình: cài đặt môi trường hoàn chỉnh (JDK, Android SDK, IDE và AVD), đọc hiểu lý thuyết kiến trúc từng chương, sau đó trực tiếp gõ mã nguồn và chạy thử các bài thực hành mẫu. Sau khi hoàn thành các ví dụ cơ bản, người học cần tự giải quyết các bài tập mở rộng ở cuối mỗi chương.

5. Có tài liệu bổ trợ nào kèm theo?

Giáo trình cung cấp danh mục 45 thuật ngữ viết tắt chuẩn quốc tế kèm giải nghĩa tiếng Việt (API, APK, AVD, Dalvik, CIL, LBS, QoS, SMS, WAP...), danh mục 47 hình vẽ/sơ đồ kiến trúc minh họa, 4 bảng thông số kỹ thuật, và danh mục tài liệu tham khảo học thuật từ các tổ chức chuẩn hóa và các công trình quốc tế.


Kết luận (150 từ)

Giáo trình Lập trình cho thiết bị di động của TS. Ngô Bá Hùng và ThS. Đoàn Hòa Minh cung cấp hệ thống tri thức học thuật hoàn chỉnh và có cấu trúc chặt chẽ về kỹ thuật phát triển phần mềm di động. Giá trị cốt lõi của tài liệu thể hiện qua việc chuẩn hóa các khái niệm điện toán di động, phân tích tường minh kiến trúc phân tầng của Android và cung cấp quy trình xây dựng ứng dụng thực tế từ giao diện, dữ liệu đến kết nối mạng và định vị GPS.

Lộ trình học tập khuyến nghị cho người học là nghiên cứu vững lý thuyết nền tảng ở Chương 1, thực hành tuần tự các module chuyên sâu của Android từ Chương 2 đến Chương 5, và mở rộng tầm nhìn kiến trúc đa nền tảng tại Chương 6. Để đào sâu kiến thức, người học nên kết hợp tra cứu tài liệu phát triển chính thức từ các cổng thông tin nhà phát triển (Android Developers, Apple Developer Documentation, Microsoft Developer Network) cùng các dự án mã nguồn mở thực tế.