-
Số lượng video
- Danh mục
Tổng quan về môn học:
- Môn học này giới thiệu đến người học kỹ thuật lập trình và thiết kế hướng đối tượng. Nội dung bao gồm các khái niệm và nguyên lý lập trình hướng đối tượng cơ bản như lớp, đối tượng, trừu tượng hóa, đóng gói, kế thừa, đa hình, nguyên lý thiết kế SOLID và các mẫu thiết kế.
- Môn học này dành cho các đối tượng người học như học sinh phổ thông, sinh viên học tập môn lập trình ở chương trình phổ thông và đại học, đồng thời hỗ trợ giảng viên và nghiên cứu viên trong công việc giảng dạy.
Thông tin giảng viên:
- TS. Trần Thanh Tùng [tttung@hcmiu.edu.vn]
- TS. Lê Hải Dương [lhduong@hcmiu.edu.vn]
- TS. Vi Chí Thành [vcthanh@hcmiu.edu.vn]
- Th.S. Lê Thanh Sơn [ltson@hcmiu.edu.vn]
Chuẩn đầu ra môn học:
Sau khi hoàn thành khóa học, người học có thể
- Giải thích và sử dụng các khái niệm cơ bản của lập trình hướng đối tượng như lớp, đối tượng, tính đóng gói, tính trừu tượng, tính thừa kế, tính đa hình.
- Hiện thực các thiết kế hướng đối tượng
- Phân tích các nguyên lý thiết kế, các mẫu thiết kế và các thiết kế trong lập trình hướng đối tượng
Thông tin về môn học:
- Tên tiếng Anh: Object-Oriented Programming
- Tên tiếng Việt: Lập trình hướng đối tượng
- Nội dung: gần 20 giờ videos
- Ngôn ngữ: Tiếng Anh
- Môn học trước: Không có
Cách thức đánh giá:
- Hoàn thành các nội dung và bài kiểm tra trực tuyến với tổng điểm >= 80%:
- Tổng điểm = Xem videos (35%) + Thảo luận (10%) + Làm bài tập (25%) + Làm bài kiểm tra (30%)
Tài liệu tham khảo:
- Paul J. Deitel (Author), Harvey Deitel (Author), Java How To Program, 11th Edition, Prentice Hall, 2017
- Matt Weisfeld, The Object-Oriented Thought Process, 5th Edition, Addison-Wesley, 2019
- Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley Professional, 1994
- Eric Freeman, Bert Bates, Kathy Sierra and Elisabeth Robson, Head First Design Patterns: A Brain-Friendly Guide, O'Reilly Media, 2004
Nội dung môn học:
- Introduction to Object-Oriented Programming
- Introduction to Java
- Classes and Objects
- Inheritance and composition
- Polymorphism
- Design with interfaces and abstract classes
- Building Objects - Objects relationships
- Exception handling
- Generic classes and methods
- Introduction to SOLID principles
- Single responsibility principle
- Open/closed principle
- Lisko substitution principle
- Interface segregation principle
- Dependency inversion principle
- Reusing Designs Through Design Patterns
Công nhận chứng chỉ môn học:
Để nhận chứng chỉ hoàn thành môn học, người học cần thực hiện các bước như sau:
- Các nội dung bao gồm đọc bài, xem video, thảo luận, làm bài tập và bài kiểm tra sẵn sàng trên hệ thống trong khoảng thời gian bắt đầu và kết thúc môn học. Người học, sau khi đăng kí và vào học, có thể truy cập đến tất cả các nội dung này.
- Người học tham gia đầy đủ các nội dung trong môn học để đạt được tổng điểm tích luỹ >= 80%.
- Người học có thể làm bài tập nhiều lần để cải thiện điểm tích luỹ. Các chủ đề thảo luận có thể có hạn nộp và có giảng viên phụ trách đánh giá.
- Người học phải đăng kí tham dự và vượt bài kiểm tra đánh giá trực tiếp và có phí do ĐHQGHCM tổ chức.
Nội dung học phần
Course introduction | ||
Giới thiệu môn học - Course overview | Xem | |
Introduction to Object-Oriented Programming Course | Xem | |
Introduce yourself | Xem | |
Q&A - Questions and Answers | Xem | |
Slides bài giảng | Xem | |
Module 1. Introduction to Object-Oriented Programming | ||
1. A review on Procedural Programming | Xem | |
2. Solve access control and organization problems with OOP | Xem | |
3. Entities Data, Behaviors and Encapsulation | Xem | |
4. Class vs Objects | Xem | |
Discussion - Lab - Creating a class and objects | Xem | |
5. Working with class and objects | Xem | |
6. Access Control | Xem | |
7. Getters and Setters | Xem | |
8. Value of the getter-setter template | Xem | |
9. UML notion - class diagram | Xem | |
Discussion - Draw UML diagram with draw.io | Xem | |
10. Introduction to Interface notion | Xem | |
11. Introduction to Inheritance notion | Xem | |
12. Introduction to Composition notion | Xem | |
13. Introduction to Polymorphism notion | Xem | |
14. Conclusion | Xem | |
Discussion | Xem | |
Module 2. Introduction to JAVA | ||
1. High-level languages | Xem | |
2. Data types in Java | Xem | |
3. Object types | Xem | |
Discussion - Other Object-Oriented Programming Languages | Xem | |
Test - Introduction to Java | Xem | |
Discussion - Non-primitive type in Java | Xem |
Module 3. Classes and Objects | ||
1. Defining classes and objects | Xem | |
2. Access Modifiers | Xem | |
3. Instance variables | Xem | |
4. Constructor | Xem | |
5. Counting created objects of a class - static keyword | Xem | |
6. Singleton pattern | Xem | |
Discussion - Implement a variation of Singleton pattern | Xem | |
7. Implement a copy constructor in Java | Xem | |
Discussion - Singleton pattern | Xem | |
Test - Classes and Objects | Xem | |
Module 4. Inheritance | ||
1. Introduction | Xem | |
2. Employee Superclass (Motivation Case Study) | Xem | |
3. Implementing the Employee System with Inheritance | Xem | |
4. Understanding Inheritance Declaration & The extends Keyword | Xem | |
5. The Protected Access Modifier in Inheritance | Xem | |
6. Implementing an Inheritance Hierarchy | Xem | |
Discussion - Implement an inheritance hierarchy | Xem | |
7. Constructor Chaining and super() in Java | Xem | |
8. The Object Class and Built-in Methods in Java | Xem | |
9. Cloning and Copying Objects in Java | Xem | |
Discussion - Misuse and overuse of inheritance | Xem | |
Test - Inheritance | Xem | |
Module 5. Polymorphism | ||
1. Introduction to Polymorphism | Xem | |
2. Storing a Subclass Object in a Superclass Variable | Xem | |
3. Downcasting – Converting a Superclass Variable to a Subclass Object | Xem | |
4. Method Overloading vs Method Overriding | Xem | |
5. Dynamic Method Dispatch – Dynamic Binding | Xem | |
6. Implementing Dynamic Method Dispatch in a Payroll System | Xem | |
7. Problems with Calling Overridden Methods from Constructors | Xem | |
8. Required Setup for Polymorphism | Xem | |
9. No-Dynamic Dispatch Scenarios – When Polymorphism Does Not Apply | Xem | |
Discussion - Application of Polymorphism | Xem | |
Test - Polymorphism | Xem | |
Module 6. Design with abstract classes and interfaces | ||
1. Introduction to Abstract Methods | Xem | |
2. Understanding Abstract Classes | Xem | |
3. Implementing Abstract Methods in Subclasses | Xem | |
4. Introduction to Interfaces | Xem | |
5. Abstract Thinking in Interface Design | Xem | |
6. Defining and Implementing Interfaces | Xem | |
7. Example – The Payable Interface | Xem | |
8. Built-in Interfaces in the Java API | Xem | |
9. Implementing Multiple Interfaces | Xem | |
10. Default Implementation in Abstract Classes | Xem | |
Discussion - Abstract class or Interface | Xem | |
Test - Abstract class and interface | Xem | |
Module 7. Building Objects - Objects Relationship | ||
1. Introduction to different types of object relationships | Xem | |
2. Association, Aggregation and Composition relationship | Xem | |
3. Implement a has-a relationship | Xem | |
4. Implement one-to-many has-a relationship | Xem | |
5. Implement many-to-many has-a relationship | Xem | |
6. Is-part-of relationship | Xem | |
7. Is-part-of relationship: Implement one-to-one relationship | Xem | |
8. Is-part-of relationship: Implement one-to-many relationship | Xem | |
9. Is-part-of relationship: Implement a complex one-to-many relationship | Xem | |
Discussion - Composition vs Inheritance | Xem | |
Test - Object relationships | Xem | |
Module 8. Exception handling | ||
1. Introduction to exception handling | Xem | |
2. Exception handling with try-catch block | Xem | |
3. Deeper look at exception handling | Xem | |
Discussion - Exceptions in a production environment | Xem | |
Test - Exception handling | Xem | |
Module 9. Generic classes and methods | ||
1. Introduction to generic | Xem | |
2. Implementing generic methods and classes | Xem | |
3. Strong type checking with generic | Xem | |
4. Constraints on input type in generic | Xem | |
5. Working with inheritance relationship | Xem | |
Discussion - Use of generic in Java | Xem | |
Test - Generic classes and methods | Xem | |
Module 10. SOLID Principles | ||
1. Introduction - How good is your design | Xem | |
2. Potential bad design - design smell | Xem | |
3. Introduction to Single Responsibility Principle | Xem | |
4. Design and Implement a solution with Single Responsibility Principle | Xem | |
5. A Common Violation of Single Responsibility Principle | Xem | |
6. Avoid needless complexity and Single Responsibility Principle | Xem | |
7. Implementing Single Responsibility Principle with Dependency Injection | Xem | |
8. Single Responsibility Principle in Business Application | Xem | |
9. Introduction to Open and Closed Principle | Xem | |
10. Design and Implement a solution with Open and Closed Principle | Xem | |
11. Updating system without changing existing code with Open and Closed Principle | Xem | |
12. Discussion on Open and Closed Principle | Xem | |
13. Liskov Substitution Principle: a Square is not a Rectangle, isn't it? | Xem | |
14. Introduction to Dependency Inversion Principle | Xem | |
15. Implementing a design using Dependency Inversion Principle | Xem | |
16. Common violation of Dependency Inversion Principle | Xem | |
17. Introduction Interface Segregation Principle | Xem | |
18. Design using Interface Segregation Principle | Xem | |
19. Implementing a design using Interface Segregation Principle | Xem | |
Discussion - common pitfalls and misconceptions about SOLID principles | Xem | |
Test - SOLID principles | Xem | |
Module 11. Design Patterns | ||
1. Introduction to Design Patterns | Xem | |
2. Observer Pattern | Xem | |
3. Implementing Observer Pattern | Xem | |
Discussion - Common Design Patterns | Xem | |
Final test | ||
Final Test | Xem | |
Summary | ||
Summary | Xem |
Hồ sơ giảng viên
Trần Thanh Tùng
Giảng viên có 1 khóa học
Chưa có thông tin hồ sơ của
Học trực tuyến chủ động qua các video, nội dung có sẵn.
Không giới hạn thời gian. Đăng ký một lần, học mãi mãi.
Học thuận tiện, bất cứ khi nào, bất cứ nơi đâu có Internet.
Đặt câu hỏi với Giảng viên với tính năng Thảo luận.
Hotline tư vấn kỹ thuật:
0888 678 028 Email tư vấn kỹ thuật:
info@vnuhcm.edu.vn
0888 678 028 Email tư vấn kỹ thuật:
info@vnuhcm.edu.vn