NT106 - Lập trình mạng căn bản

Tài liệu môn học

Folder Drive Youtube Playlist

Mô tả môn học

Điều kiện đăng ký

Môn học trước Môn học tiên quyết
IT001 - Nhập môn lập trình
-
IT005 - Nhập môn mạng máy tính
-

Hệ số điểm

QT GK TH CK
0.3
-
0.2
0.5

Điểm quá trình = Điểm bài tập (10%) + Điểm đồ án (20%).

Lý thuyết

Tại môn học này các bạn sẽ được dạy về cách để lập trình ra 1 chương trình ứng dụng mạng cơ bản. Các bạn sẽ được học về:

  • Các khái niệm cơ bản về mạng như: giao thức, cổng, socket, TCP, UDP, IP, API, Web Server, FTP, SMTP, POP3, IMAP.
  • Các kiến thức về lập trình mạng như: lập trình socket, lập trình đồng bộ và bất đồng bộ, multithreading (đa luồng).
  • Nhập xuất dữ liệu từ file, database, giao diện trên C# Winforms.
  • Sơ qua về mã hóa dữ liệu khi truyền trên mạng để áp dụng vào đồ án môn học.

Thực hành

Môn này có hình thức thực hành 1 (HT1). Ở các buổi thực hành cô sẽ cho các bạn làm các bài lab như các môn khác đã học từ cơ sở nhóm ngành và đại cương. Nội dung các bài lab hầu như đều là phần thực hành của nội dung đã học ở trên lớp như lập trình socket, lập trình bất đồng bộ, multithreading (đa luồng), TCP, UDP, IMAP, POP3, FTP,… . Ngoài ra, các bạn sẽ làm quen với ngôn ngữ C# và lập trình trên giao diện Winforms ở buổi học đầu tiên. Chi tiết các bài lab các bạn có thể coi trong link ở trên.

Đồ án

  • Làm theo nhóm gồm 4 thành viên.
  • Nội dung đồ án là thiết lập 1 chương trình ứng dụng mạng gồm có ít nhất 2 client và 1 server. Server phải có 1 cơ sở dữ liệu, client phải có GUI.
  • Nội dung của chương trình có thể là 1 game, 1 chương trình chat, 1 chương trình quản lý thông tin,… tùy theo ý tưởng của các bạn và được phép kham thảo source code từ các nguồn khác.
  • Tuy nhiên, phần xử lý dữ liệu đa luồng, bất đồng bộ, lập trình socket,… phải được các bạn tự code lại.
  • Sẽ được cộng điểm nếu có thể triển khai ứng dụng này chạy trên mạng internet thực tế.
  • Đồ án sẽ được báo cáo và demo trên lớp vào cuối kỳ, trước khi thi vấn đáp.

Hình thức thi

Môn này chỉ có thi vấn đáp ở cuối kỳ:

  • Sẽ có 2 phần vấn đáp chính là theo nhóm và cá nhân.
  • Phần vấn đáp theo nhóm sẽ hỏi về đồ án đã làm của các bạn. Ví dụ như ai làm phần nào, làm như thế nào, gặp khó khăn gì, giải quyết khó khăn đó như thế nào,…
  • Còn phần vấn đáp cá nhân sẽ đánh vào kiến thức của môn học như:
    • Lập trình Socket, lập trình đồng bộ và bất đồng bộ, multithreading (đa luồng).
    • TCP, UDP, API, Web Server.
    • SMTP, POP3, IMAP.
    • FTP.
  • Các bạn cứ yên tâm là các câu hỏi sẽ không quá khó, chỉ cần hiểu được các nội dung đã học cũng như là tham gia làm đồ án tích cực lên là chắc chắn sẽ làm tốt phần vấn đáp này.

Thông tin khác

  • Do môn này sẽ là một trong những môn đầu tiên các bạn làm 1 đồ án xuyên suốt cả 1 học kỳ nên các bạn nên tìm những người có khả năng học và lập trình tốt để hoàn thành đồ án này với điểm cao nhất có thể.
  • Ngoài ra các bạn còn phải quản lý thời gian và phân công công việc cho các thành viên trong nhóm sao cho công việc được hoàn thành đúng tiến độ.
  • HaiTC: Cá nhân mình khuyên các bạn nên làm đồ án thật tốt. Vì nếu không làm được đồ án thì các bạn sẽ không thể trả lời các câu hỏi này một cách rõ ràng và tự tin được. Đồ án là một phần quan trọng trong môn học này (thì ảnh hưởng tới 2 cột điểm cơ mà), nên các bạn cố gắng làm tốt nhé.
  • Còn bài tập trên lớp nếu có ra thì cũng không quá khó, mình đánh giá nó như là 1 ‘mini-lab’ nên các bạn cứ yên tâm làm kiểu gì cũng làm được thôi.