1. Phân nhóm và đề tài: - Sinh viên chia thành các nhóm, mỗi nhóm tối đa 6 người, tối thiểu 3 người. Các nhóm nhận đề tài của nhóm mình, phân chia công việc và tiến hành thực hiện. 2. Yêu cầu: - Sinh viên hoàn thành báo cáo, bao gồm các nội dung sau: + Phân tích yêu cầu bài toán. + Thiết kế cấu trúc dữ liệu: xác đinh các trường dữ liệu cần lưu trữ, xác định trường khóa của dữ liệu, xác định mô hình lưu trữ dữ liệu (danh sách liên kết, stack, queue, …). Giải thích lý do. + Thiết kế giải thuật (sử dụng lưu đồ thuật toán) + Đánh giá, so sánh với giữa các thuật toán (về độ phức tạp thuật toán, việc cài đặt thuật toán bằng ngôn ngữ C++) + Trong báo cáo yêu cầu chia rõ phần việc của mỗi thành viên. Mỗi thành viên phải thực hiện ít nhất 1 thuật toán cho 1 chức năng trong chương trình. Ngoài ra sinh viên cần nắm được toàn bộ chương trình của nhóm để trình bày. - Sinh viên hoàn thành chương trình, sử dụng ngôn ngữ lập trình C++. Chương trình phải có các chức năng sau: + Có menu để người dùng lựa chọn thao tác. Bao gồm Nhập dữ liệu Sắp xếp dữ liệu theo thứ tự tăng dần, giảm dần Tìm kiếm dữ liệu theo khóa nhập vào từ bàn phím Bổ sung 1 phần tử vào vị trí được người dùng nhập vào (theo khóa dữ liệu) Xóa dữ liệu chứa khóa được nhập vào In dữ liệu ra màn hình. Thoát + Khi thực hiện các thao tác sắp xếp, không được thay đổi thứ tự của danh sách ban đầu (sao chép ra 1 danh sách khác để thực hiện sắp xếp) + Sau mỗi lựa chọn của người dùng, chương trình thực hiện và đưa ra kết quả trên màn hình. Màn hình được thiết kế để hiển thị các dữ liệu dước dạng bảng, có hàng tiêu đề và các hàng dữ liệu. Ví dụ: + Khi chương trình thực hiện xong 1 chức năng, nhấn phím bất kỳ để trở lại menu đầu tiên và thực hiện tiếp chức năng tiếp theo. Chương trình thoát khi chọn menu thoát. - Sinh viên thực hiện slide bảo vệ bằng PowerPoint, trình bày các nội dung: + Phân tích bài toán + Cấu trúc dữ liệu + Giải thuật + Đánh giá. Slide yêu cầu ngắn gọn, đúng tiêu chuẩn ( mỗi slide không quá 10 dòng). Chú ý tập trung vào việc thuyết trình, không phải là đọc lại báo cáo hay đọc nguyên văn slide. Nếu không thực hiện được sẽ không có điểm. 3. Cách thực hiện: - Sinh viên tiến hành làm báo cáo và chương trình. Tại các buổi học lý thuyết và thực hành, sinh viên có thắc mắc có thể hỏi và giáo viên giải đáp. Ngoài ra sinh viên có thể vào blog để trao đổi. - Để kiếm tra tiến độ, ngày 20/10/2010, tại buổi thực hành, sinh viên phải trình bày báo cáo và chương trình để giáo viên kiểm tra. Sau đó sinh viên chỉnh sửa và nạp lại. - Ngày 24/10/2010 là hạn cuối để sinh viên nạp tiểu luận. Những sinh viên nạp sau sẽ nhận điểm 0 và phải bảo vệ lại cùng các sinh viên không đạt. Sinh viên cần nạp: bản in báo cáo, bản mềm báo cáo, slide bảo vệ và mã nguồn chương trình. - Trong tuần từ 25/10/2010 đến 31/10/2010, sinh viên sẽ báo cáo tiểu luận và chương trình tại phòng thực hành. - Trong tuần từ 01/11/2010 đến 07/11/2010 sẽ tổ chức bảo vệ lại cho sinh viên. 4. Bảo vệ và chấm điểm: - Sinh viên thuyết trình về phần việc của mình (mỗi người thực hiện ít nhất 1 chức năng, trình bày về lý do, thuật toán và đánh giá chức năng đó). - Thực hiện chạy thử chương trình. - Trả lời các câu hỏi của giáo viên và các sinh viên khác. - Thực hiện các thay đổi trên chương trình nếu được yêu cầu. Cách tính điểm: - Báo cáo và chương trình chạy được(chung cho cả nhóm): 5 điểm - Thuyết trình về phần việc của mình: 2.5đ - Trả lời câu hỏi: 1.5đ - Thực hiện các thay đổi trong chương trình: 1 đ 5. Quy chuẩn viết báo cáo: - Sử dụng font chữ Time New Romans, cỡ chữ 13, giãn dòng multiple 1.3. - Báo cáo nhiều nhất là 10 trang. Không viết nhiều, lan man.