Thực hành lập trình ứng dụng
I. Phần lý thuyết chung (15 tiết) 1. Các bước cần thực hiện để thiết kế một phần mềm 2. Phương pháp phân tích và mô hình hoá bài toán 3. Lựa chọn công nghệ, giải pháp phù hợp với bài toán 4. Một số vấn đề liên quan đến kỹ thuật thiết kế II. Phần bài tập thực hành (60 tiết) Giáo viên nên lựa chọn các bài tập thiết kế phần mềm mà xã hội đang có nhu cầu tại thời điểm hiện tại, tránh tình trạng chọn lặp đi lặp lại trong một vài bài tập. Mặt khác, không nên khống chế ngôn ngữ lập trình mà tùy theo bài toán cụ thể, sinh viên có thể chọn ngôn ngữ lập trình phù hợp nhất. III. Phần kíên thức tự nghiên cứu của sinh viên (15 tiết) A. Cách thức tổ chức thực hành: •Giáo viên công bố các chủ đề và các bài tập mẫu đã chuẩn bị trước. •Sinh viên đăng ký nhóm làm việc (3-4 SV/nhóm) và chọn chủ đề theo sở trường của họ. Giáo viên giao nhiệm vụ cho nhóm thông qua bài tập (do giáo viên chọn) theo chủ đề mà nhóm làm việc đã chọn. Để thuận lợi cho sinh viên, giáo viên nên trình bày chi tiết của hệ thống mà sinh viên phải xây dựng phần mềm hỗ trợ cũng như các yêu cầu cụ thể đối với hệ thống này. Ví dụ: Với bài tập 3.3, giáo viên cần: - Nêu đặc điểm của bài thi trắc nghiệm - Nêu yêu cầu phải đáp ứng của phần mềm như cần có chức năng quét bài thi bằng scanner vào máy tính, có chức năng quản lý các block bài thi, máy tính nhận dạng các dấu hiệu từ bài thi, tổng hợp và in bảng điểm từ kết quả nhận dạng được, thông báo lỗi nhận dạng v5.) - Giới thiệu một số phần mềm tương tự hoặc các tài liệu mà sinh viên có thể tham khảo. Nhóm làm việc phân công, lên kế hoạch làm việc cụ thể cho mỗi thành viên và nộp lại cho giáo viên để giáo viên có thể giám sát hoạt động của từng người. Trong quá trình thực hiện, giáo viên cần giám sát tiến độ, định hướng lại giải pháp và có thể tổ chức thảo luận riêng từng nhóm hoặc cả lớp về các vấn đề phát sinh, đồng thời tiếp tục hỗ trợ các tài liệu liên quan đến các chi tiết trong bài tập mà sinh viên buộc phải nghiên cứu. Việc đánh giá kết quả cho mỗi sinh viên phải kết hợp giữa đánh giá chung toàn nhóm và phần việc mà sinh viên đã được giao. Kết quả mà mỗi nhóm làm việc phải nộp gồm: - Cứ liệu điều tra, khảo sát (nếu có) - Bản phân tích và mô hình bài toán - Phần mềm - Bản tự nhận xét chất lượng sản phẩm hoặc ý kiến người dùng (nếu có) B. Một số chủ đề và bài tập mẫu (tham khảo về loại và cở của phần mềm): Chủ đề 1: Lập trình ứng dụng mạng Bài tập 1.1: Thiết kế phần mềm thu thập và phân tích thông tin dự báo thời tiết (chỉ hạn chế ở mức: tự động thu thập thông tin từ một vài website khí tượng thủy văn, thực hiện các thuật toán phân tích đơn giản để đưa ra cảnh báo) Bài tập 1.2: Thiết kế phần mềm hỗ trợ giao dịch hành chính công thông qua internet (chỉ hạn chế ở mức: hỗ trợ giao nhận hồ sơ, lưu bản quét hồ sơ vào máy tính và tổ chức quản lý chúng, trộn các đoạn text phê duyệt vào bản quét, thông báo tình hình xử lý hồ sơ cho người dân) Bài tập 1.3: Thiết kế tiện ích truyền và nhận dữ liệu thông qua e-mail (chỉ hạn chế ở mức: e-mail dạng POP3, một mail-client khi nhận được một e-mail từ một mail-client khác, nó tự động đọc file attach, nhận biết loại dữ liệu và cập nhật dữ liệu trong file attach này vào một cơ sở dữ liệu tại máy hiện thời - bài tập này có thể thay e-mail bằng thiết kế một FTP client) Bài tập 1.4: Thiết kế các tiện ích hỗ trợ cho người quản trị mạng (như quản trị việc sử dụng máy in, proxy, thông báo và chia sẽ thông tin cho người dùng v5.) Chủ đề 2: Lập trình quản trị cơ sở dữ liệu Bài tập 2.1: Thiết kế phần mềm phục vụ quản lý học sinh tại các trường phổ thông (chỉ hạn chế ở mức: quản lý hồ sơ và điểm các môn học của học sinh theo lớp) Bài tập 2.2: Thiết kế phần mềm quản trị tư liệu tại các phòng lưu trữ (hoặc thư viện) (chỉ hạn chế ở mức: quản lý đầu sách, mượn, trả và cho phép tra cứu danh mục từ xa thông qua mạng LAN hoặc internet) Chủ đê 3: Lập trình phục vụ dạy và học Bài tập 3.1: Thiết kế phần mềm cho học sinh bậc tiểu học (chỉ hạn chế ở mức: chọn một vài bài trong một môn học nào đó sao cho phần mềm thể hiện được một số tiêu chí về tính sư phạm, sức hấp dẫn, trực quan hoá một số khái niệm trừu tượng, dễ sử dụng) Bài tập 3.2: Thiết kế phần mềm dạy học trực tuyến (chỉ hạn chế ở mức: tổ chức cập nhật bài giảng, bài tập, trả lời trực tuyến và truyền một số bài giảng trực tuyến trong điều kiện kết nối ADSL) Bài tập 3.3: Thiết kế phần mềm chấm bài thi trắc nghiệm (phần mềm loại OMR) (chỉ hạn chế ở mức: quản lý bài thi, quét và nhận dạng bài thi, tổng hợp điểm và in kết quả) Bài tập 3.4: Thiết kế phần mềm thi trắc nghiệm trên mạng (chỉ hạn chế ở mức: lập ngân hàng câu hỏi đơn giản cho một môn học, tạo đề thi trắc nghiệm để in ra giấy hoặc tổ chức thi trắc nghiệm trực tiếp trên mạng) Bài tập 3.5: Thiết kế phần mềm tra cứu thông tin về điểm thi hoặc đáp án bài thi thông qua thiết bị cầm tay (PDA) (chỉ hạn chế với mạng wi-fi). Chủ đề 4: Lập trình ứng dụng khác Bài tập 4.1: Thiết kế phần mềm mô phỏng (sinh viên có thể tùy chọn vấn đề cần mô phỏng, chẳng hạn: mô phỏng một số thí nghiệm vật lý, mô phỏng tác động của ngoại cảnh đối với hành vi của một vật thể nào đó .) Bài tập 4.2: Thiết kế phần mềm giám sát mật độ giao thông trên một đoạn đường (chỉ hạn chế ở mức: lấy ảnh từ camera, sử dụng thuật toán đơn giản để nhận dạng trần xe con thông qua color, texture hoặc shape, từ đó đếm số xe con xuất hiện) Bài tập 4.3: Thiết kế phần mềm điều khiển từ xa thông qua thiết bị mobile (chỉ hạn chế ở mức: Tạo một module điều khiển cho phép nhận các SMS thông qua một mobile phone nối với cổng IrDA, các SMS sẽ được module phân tích và tùy theo lệnh phân tích được mà thực hiện công việc tương ứng) . Mặt khác, không nên khống chế ngôn ngữ lập trình mà tùy theo bài toán cụ thể, sinh viên có thể chọn ngôn ngữ lập trình phù hợp nhất. III. Phần kíên thức. đề và bài tập mẫu (tham khảo về loại và cở của phần mềm): Chủ đề 1: Lập trình ứng dụng mạng Bài tập 1.1: Thiết kế phần mềm thu thập và phân tích thông