Lập trình Hướng đối tượng
HTTT 4253
3 tín chỉ, 45 tiết
Cập nhật ngày 07 tháng 11 năm 2018
Mô tả môn học
Lập trình Hướng đối tượng tiếp nối những nội dung của môn học Cơ sở lập trình. Môn học này giúp sinh viên làm quen với kỹ thuật lập trình hướng đối tượng, một kỹ thuật lập trình hiện đại được sử dụng phổ biến để phân tích thiết kế và xây dựng các hệ thống thông tin hiện nay. Môn này sẽ cung cấp một cách hệ thống các khải niệm của lập trình hướng đối tượng như: lớp, đối tượng, thừa kế, đa hình,... dựa trên ngôn ngữ lập trình C#.
Nội dung môn học
Nội dung môn học được chia làm 8 chủ đề:
Chủ đề 1 - Tổng quan Lập trình Hướng đối tượng
Bài thực hành 1, Đáp án câu 4 - jpg, uml
Tham khảo:
- Phân tích thiết kế hướng đối tượng bằng UML (Đặng Văn Ngữ): Ch. 1, Ch. 2, Ch. 5
- Giáo trình Phân tích và thiết kế hệ thống hướng đối tượng sử dụng UML (Phạm Nguyễn Cương, Hồ Tường Vinh): Ch. 1, Ch. 2, Ch. 3, Ch. 7
- Case Study - Quản lý Container (để hiểu quy trình thiết kế hướng đối tượng sử dụng UML)
- Giới thiệu Quy trình xây dựng ứng dụng di động tại Công ty Tekciz chi nhánh Huế (đọc kỹ chương 2 và 3)
- UML Reference - Class diagram (kéo xuống dưới xem phần Static-Model (Class) Diagram)
- Giới thiệu Lập trình hướng đối tượng
Chủ đề 2 - Lớp và đối tượng
Tham khảo:
- Lập trình Visual C# thế nào? - Tập 1: C# Căn bản và Visual Studio .NET IDE (Dương Quang Thiện): Ch. 5 : Lớp và đối tượng
- Lập trình C# - Từ cơ bản đến nâng cao (Phạm Công Ngô): Ch. 5 : Lớp trong lập trình hướng đối tượng
- Pro C# 7: With .NET and .NET Core (Andrew Troelsen): Ch. 5 : Understanding Encapsulation
Chủ đề 3 - Quan hệ giữa các lớp
Bài thực hành 3, file Program.cs cho câu 3
Tham khảo:
- Lập trình Visual C# thế nào? - Tập 1: C# Căn bản và Visual Studio .NET IDE (Dương Quang Thiện): Ch. 6 : Thừa kế và đa hình
- Lập trình C# - Từ cơ bản đến nâng cao (Phạm Công Ngô): Ch. 6 : Thừa kế
- Pro C# 7: With .NET and .NET Core (Andrew Troelsen) : Ch. 6 : Understanding Inheritanced and Polymorphism
Chủ đề 4 - Đa hình
Bài thực hành 4, file List.cs cho câu 2
Tham khảo:
- Lập trình Visual C# thế nào? - Tập 1: C# Căn bản và Visual Studio .NET IDE (Dương Quang Thiện): Ch. 6 : Thừa kế và đa hình
- Lập trình C# - Từ cơ bản đến nâng cao (Phạm Công Ngô): Ch. 7 : Tính đa dạng
- Pro C# 7: With .NET and .NET Core (Andrew Troelsen) : Ch. 6 : Understanding Inheritanced and Polymorphism
Chủ đề 5 - Giao diện
Tham khảo:
- Lập trình Visual C# thế nào? - Tập 1: C# Căn bản và Visual Studio .NET IDE (Dương Quang Thiện): Ch. 9 : Giao diện
- Lập trình C# - Từ cơ bản đến nâng cao (Phạm Công Ngô): Ch. 7 : Tính đa dạng
- Pro C# 7: With .NET and .NET Core (Andrew Troelsen) : Ch. 8 : Working with Interfaces
Chủ đề 6 - Một số kỹ thuật khác
Tham khảo:
- Lập trình Visual C# thế nào? - Tập 1: C# Căn bản và Visual Studio .NET IDE (Dương Quang Thiện): Ch. 7 : Nạp chồng tác tử, Ch. 10, mục 2 : Bộ rảo chỉ mục
- Pro C# 7: With .NET and .NET Core (Andrew Troelsen) : Ch. 11 : Advanced C# Language Features
Chủ đề 7 - Uỷ thác và sự kiện
Tham khảo:
- Lập trình Visual C# thế nào? - Tập 1: C# Căn bản và Visual Studio .NET IDE (Dương Quang Thiện): Ch. 13 : Uỷ thác và Tình huống
- Pro C# 7: With .NET and .NET Core (Andrew Troelsen) : Ch. 10 : Delegates, Events and Lambda Expressions
Chủ đề 8 - Ứng dụng PhotoTool sử dụng Windows Form
Các video PhotoTool trong playlist LTNC
Nội dung sẽ học được:
- Video Ứng dụng HelloWorld, PhotoTool ep 1: Thừa kế lớp Form, Các lớp Control, Thuộc tính, Hàm thành phần, Sự kiện và xử lý sự kiện
- Video PhotoTool ep 2: Lớp, đối tượng, Quan hệ giữa các lớp, Nạp chồng các hàm thành phần của lớp Object, Giao diện và Generic, Chỉ mục, Cài đặt giao diện IDisposable
- Video PhotoTool ep 3: Thừa kế Form
- Video PhotoTool ep 5: Cài đặt giao diện IFormatable và ICustomFormatter
- Video PhotoTool ep 8: Tạo UserControl dựa trên thừa kế, Uỷ thác và Sự kiện
- Video PhotoTool ep 10: Uỷ thác và Sự kiện
Tham khảo:
- Windows Form in Action (Erik Brown) (PDF)
Tài liệu tham khảo
Các tài liệu tham khảo cho môn học này gồm:
- Sách về lập trình hướng đối tượng:
- Đặng Quế Vinh, Giáo trình Kỹ thuật lập trình 1, Nhà xuất bản Thống kê, năm 2005. (Thư viện)
- Dương Quang Thiện, Lập trình Visual C# thế nào? - Tập 1: C# Căn bản và Visual Studio .NET IDE, Nhà xuất bản Tổng hợp TP.HCM, năm 2005. (Thư viện) (PDF)
- Dương Quang Thiện, Lập trình Visual C# thế nào? - Tập 2: C# và .NET Framework, Nhà xuất bản Tổng hợp TP.HCM, năm 2005. (Thư viện)
- Phạm Công Ngô, Lập trình C# - Từ cơ bản đến nâng cao, Nhà xuất bản Giáo dục, năm 1999. (Thư viện)
- Nguyễn Ngọc Bình Phương & Thái Thanh Phong, Các giải pháp lập trình C#, Nhà xuất bản Giao thông Vận tải, năm 2006. (PDF)
- Andrew Troelsen & Philip Japikse, Pro C# 7: With .NET and .NET Core, Eighth edition, Apress, 2017. (PDF) (Source code)
- Sách về UML:
- Đặng Văn Đức, Phân tích thiết kế hướng đối tượng bằng UML, Nhà xuất bản giáo dục, năm 2002.
- Phạm Nguyễn Cương, Giáo trình Phân tích thiết kế hệ thống hướng đối tượng sử dụng UML. (PDF)
- Học trực tuyến:
- edX, Object Oriented Programming in C#
- SoloLearn, C# course
- learnCS.org
- Các playlist trên Youtube:
- Thầy Nguyễn Đình Hoa Cương: Lập trình hướng đối tượng với C#
- Trang blog, web:
- Bài tập:
- C# examples - các ví dụ được phân loại theo chủ đề
- Sanfoundry - 1000 ví dụ được phân loại theo chủ đề
- Codewars - cải thiện kỹ năng của bạn bằng cách giải quyết các vấn đề thực tế
Từ điển Thuật ngữ Lập trình Anh - Việt
Phần mềm
- Với ngôn ngữ lập trình C#, bạn có thể sử dụng phần mềm Microsoft Visual Studio Community 2017 để soạn thảo và biên dịch chương trình. Hướng dẫn cài đặt và sử dụng Visual Studio Community 2017.
- Với UML, bạn có thể sử dụng ứng dụng trực tuyến draw.io. Hướng dẫn sử dụng draw.io.
Phương pháp đánh giá
Kết quả học tập được đánh giá dựa vào các bài thực hành, bài kiểm tra, bài tập và bài thi cuối khoá với trọng số như sau:
- Kiểm tra vở ghi và bài thực hành: 5 %
- Kiểm tra: 10 %
- Bài tập 1: 5 %
- Bài tập 2: 20 %
- Thi kết thúc học phần: 60 %
Tất cả các bài thực hành và bài tập của môn học này đều là bài làm cá nhân và phải sử dụng ngôn ngữ lập trình C# và phần mềm Microsoft Visual Studio Community 2017 để biên dịch chương trình.
Hành vi sao chép là không được phép. 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 đó.
Điểm thưởng, điểm phạt sẽ được sử dụng để đánh giá chuyên cần, chuẩn bị bài và trả lời câu hỏi tại lớp. Cứ mỗi 10 điểm thưởng/phạt sẽ được quy đổi thành 1 điểm cộng/trừ trong điểm quá trình (40%).
Sinh viên còn có thể lấy thêm điểm thưởng thông qua việc hoàn thành các kata trong Codewars. Cách quy đổi: 1 kata = 1 điểm thưởng. Hãy xem Hướng dẫn sử dụng Codewars để biết cách kiếm điểm thưởng.
Bài tập
Bài tập (có thể gọi là Bài tập lớn) được sử dụng để giúp sinh viên làm quen với việc lập trình ứng dụng hoàn chỉnh. Trong bài tập này, sinh viên được khuyến khích vận dụng tất cả kiến thức đã được học để thiết kế, xây dựng một chương trình đơn giản, nhưng hoàn thiện cả đầu vào, đầu ra và xử lý như một ứng dụng thực tế.
Để hoàn thành và nộp bài đúng quy định, sinh viên nên đọc kỹ và tuân thủ Hướng dẫn làm và nộp bài tập.
Địa chỉ nộp bài tập: Assigment Bài tập (liên kết sẽ được cập nhật khi Bài tập 1 được công bố)
Sinh viên có thể tham khảo các bài tập và đáp án của các năm trước tại thư mục Bài tập trong github.com/manleviet/LTHDT. Hãy xem Hướng dẫn sử dụng GitHub để biết cách lấy các bài tập và đáp án.
Thảo luận
Hãy đăng ký vào Nhóm mail Lập trình Hướng đối tượng để nhận thông báo, trao đổi, thảo luận về nội dung môn học này.
Địa chỉ web: https://groups.google.com/d/forum/lthdt_hce
Địa chỉ email: lthdt_hce@googlegroups.com
Cách đăng ký và sử dụng, xem tại Hướng dẫn sử dụng Nhóm mail.
Nhóm mail Lập trình Hướng đối tượng
Bạn phải đăng ký thành viên, sử dụng tài khoản Google (tài khoản email của Google), để có thể nhận thông báo, trao đổi, thảo luận trong nhóm mail này.