Quy định nộp bài tập

Lập trình nâng cao


Cập nhật ngày 26 tháng 09 năm 2017

Giới thiệu

Trong môn học Lập trình nâng cao, sinh viên sẽ thực hiện nhiều bài tập. Những bài tập này giúp sinh viên hiểu, nắm vững các kiến thức trong môn học này và đồng thời là công cụ để tôi đánh giá kết quả học tập của sinh viên. Ở đây, tôi cung cấp đầy đủ những thông tin cần thiết để giúp sinh viên thực hiện tốt các bài tập này.

Để thực hiện các bài tập này, sinh viên phải sử dụng ngôn ngữ lập trình C# trên chương trình Visual Studio Community 2017 trở lên. Sinh viên chỉ được sử dụng thư viện .NET được cung cấp bởi Microsoft. Các bạn có thể dùng công cụ Object Browser hoặc truy cập vào trang web MSDN của Microsoft để tham khảo về thư viện .NET.

GitHub Classroom

GitHub Classroom Lập trình nâng cao là công cụ duy nhất để sinh viên lưu và nộp bài làm. Tất cả những tài liệu, bản thiết kế, mã nguồn dự án (project),... thuộc về bài tập, sinh viên đều lưu trữ tại kho (repository) trên GitHub thông qua các lần lưu trạng thái (commit). Do đó, bạn nên đọc kỹ hướng dẫn của GitHub hoặc đọc bài viết Lập trình "an tâm" cùng anh GitHub.

Có hai loại bài tập trong các Classroom:

  1. Bài tập cá nhân (Individual assignment): sinh viên vào liên kết của bài tập sẽ có nút Accept the assigment. Bấm vào đó, GitHub Classroom sẽ tạo cho bạn một kho (repository) mới để bạn làm bài, lưu tài liệu và nộp bài.
  2. Bài tập nhóm (Group assignment): sinh viên đầu tiên của nhóm truy cập vào liên kết của bài tập, điền tên nhóm vào ô Create a new team để tạo một nhóm mới. Các thành viên còn lại của nhóm truy cập vào liên kết của bài tập, chọn tên nhóm của mình trong danh sách các nhóm đã có để tham gia vào. Sau khi thành viên đầu tiên tạo nhóm, GitHub Classroom cũng tự động tạo một kho (repository) mới cho nhóm để làm bài.

Mỗi bài tập trên đều có thời hạn nộp bài. Xem thời hạn nộp bài tại Lịch học của lớp.

Quy định nộp bài tập

Yêu cầu cho mã nguồn chương trình

Mã nguồn chương trình của bạn :
  • Phải được chú thích tốt
    • giải thích những gì bạn đã làm, những lựa chọn cài đặt của bạn, và những biến chính
  • Phải dễ hiểu và được cấu trúc tốt (dưới dạng hàm và các lớp)
    • mã nguồn của bạn càng dễ hiểu, điểm của bạn sẽ càng cao
    • tránh sao chép trong mã nguồn của bạn
    • nếu bạn sử dụng một số đoạn mã của người khác, hãy chỉ ra nó trong chú thích hoặc trong phần mô tả bằng văn bản (của ai, nguồn, URL,...) 
    • tránh lặp lại cùng một đoạn mã để xử lý cùng một vấn đề (hãy sử dụng hàm)

Yêu cầu cho bản báo cáo bài tập (tuỳ theo bài tập)

Bên cạnh phần mã nguồn chương trình, sinh viên có thể phải nộp một báo cáo không cần có trang tiêu đề, không cần có mục lục và không cần phần giới thiệu. Bạn chỉ cần ghi họ tên của bạn, lớp và tiêu đề của bài tập ở trang đầu tiên của báo cáo. Không nêu lại yêu cầu của bài tập, cũng như những nội dung được dạy trong khóa học vào báo cáo của bạn. Nên tránh sao chép những nội dung không hữu ích và hãy tập trung vào những nội dung cốt yếu : công việc của bạn, kết quả của bạn và những phân tích của bạn.

Kích thước tối đa của báo cáo : 10 trang

Định dạng tập tin báo cáo : nên xuất ra dạng PDF

Nội dung báo cáo thông thường sẽ có các thành phần sau :

  • Phân tích, thiết kế cho chương trình của bạn (có thể sử dụng các phương pháp phân tích thiết kế đã học hoặc tự nghiên cứu)
  • Hoạt động của chương trình của bạn 
    • mô tả cách hoạt động của chương trình
      • khi chương trình chạy thì cái gì hiển thị ra trên màn hình ? người sử dụng sẽ nhập dữ liệu gì vào ? tháo tác thế nào với chương trình ?
    • cú pháp câu lệnh (gọi chạy chương trình) và ý nghĩa của những tham số cần cung cấp trong đối số dòng lệnh (nếu có)
    • vài ví dụ về cách hoạt động, cách sử dụng câu lệnh của chương trình (nếu cần thiết) 
  • Thiết kế chương trình 
    • trình bày cách thiết kế chương trình của bạn 
    • các biến và ý nghĩa của nó 
    • có những phương thức nào và ý nghĩa của nó 
    • áp dụng thuật toán gì hay phương pháp gì đặc biệt 
    • khuyến khích thêm vào các hình ảnh, mô hình để giải thích tốt cho thiết kế chương trình của bạn
  • Kết quả
    • đưa ra một vài kết quả của chương trình của bạn 
    • hãy chọn lựa các kết quả và tham số một cách thông minh để chứng minh hoạt động tốt của chương trình mà không cần phải đưa ra quá nhiều ví dụ 
    • kết quả các test theo yêu cầu của bài tập
  • Trả lời câu hỏi (tùy bài tập)
    • trả lời các câu hỏi bằng cách đưa ra các ví dụ hay kết quả từ chương trình của bạn 
    • sửa đổi chương trình của bạn để trả lời các câu hỏi 
  • Thảo luận / kết luận (tùy ý - rất ngắn) 
    • kết quả của bạn đạt được là tốt hay chưa tốt (giải thích vì sao ?)
    • đâu là giới hạn của chương trình của bạn
    • nếu chương trình của bạn hoạt động không tốt, hãy nêu giải pháp để khắc phục
    • nêu nhận xét về bài thực hành
Những mục trên có thể được thay đổi cho phù hợp với bài tập. Bạn sẽ không bị đánh giá trên chất lượng trình bày của báo cáo, mà được đánh giá trên nội dung của công việc và của báo cáo của bạn. Hãy lựa chọn đưa ra những điểm quan trọng để chứng tỏ hoạt động tốt của chương trình của bạn. 

Phương pháp đánh giá

Sau đây là những tiêu chuẩn chính để đánh giá kết quả bài tập : 
  • Kết quả đạt được
  • Mã nguồn + hoạt động của chương trình
  • Phân tích kết quả và giải thích
Trên lớp, giáo viên có thể yêu cầu chạy thử hay hỏi một số vấn đề trên công việc của bạn đã làm.

Chú ý : những tiêu chuẩn này, cũng như trọng số, có thể thay đổi tùy vào bài tập. 

Điểm thưởng : đối với những sinh viên (khoảng 10% số sinh viên của lớp) nộp bài sớm trước thời hạn (2 hoặc 3 ngày) và trước những sinh viên khác, một điểm cộng sẽ được tính vào điểm cuối cùng của bài tập đó.

Điểm phạt : 
  • Trễ < 1 ngày : -0.5 điểm 
  • Trễ > 1 ngày : -1 điểm mỗi ngày 
  • Trễ > 1 tuần : điểm 0 
  • Hành vi sao chép là tuyệt đối không được chấp nhận. Nếu bị phát hiện, người sao chép và người cho sao chép sẽ bị điểm 0 đối với bài tập đó