• Number of video
  • Category

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:  

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: 

  1. Paul J. Deitel (Author), Harvey Deitel (Author), Java How To Program, 11th Edition, Prentice Hall, 2017
  2. Matt Weisfeld, The Object-Oriented Thought Process, 5th Edition, Addison-Wesley, 2019
  3. Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley Professional, 1994
  4. 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.  

Course content

Course introduction
Giới thiệu môn học - Course overview Watch
Introduction to Object-Oriented Programming Course Watch
Introduce yourself Watch
Q&A - Questions and Answers Watch
Slides bài giảng Watch
Module 1. Introduction to Object-Oriented Programming
1. A review on Procedural Programming Watch
2. Solve access control and organization problems with OOP Watch
3. Entities Data, Behaviors and Encapsulation Watch
4. Class vs Objects Watch
Discussion - Lab - Creating a class and objects Watch
5. Working with class and objects Watch
6. Access Control Watch
7. Getters and Setters Watch
8. Value of the getter-setter template Watch
9. UML notion - class diagram Watch
Discussion - Draw UML diagram with draw.io Watch
10. Introduction to Interface notion Watch
11. Introduction to Inheritance notion Watch
12. Introduction to Composition notion Watch
13. Introduction to Polymorphism notion Watch
14. Conclusion Watch
Discussion Watch
Module 2. Introduction to JAVA
1. High-level languages Watch
2. Data types in Java Watch
3. Object types Watch
Discussion - Other Object-Oriented Programming Languages Watch
Test - Introduction to Java Watch
Discussion - Non-primitive type in Java Watch
Module 3. Classes and Objects
1. Defining classes and objects Watch
2. Access Modifiers Watch
3. Instance variables Watch
4. Constructor Watch
5. Counting created objects of a class - static keyword Watch
6. Singleton pattern Watch
Discussion - Implement a variation of Singleton pattern Watch
7. Implement a copy constructor in Java Watch
Discussion - Singleton pattern Watch
Test - Classes and Objects Watch
Module 4. Inheritance
1. Introduction Watch
2. Employee Superclass (Motivation Case Study) Watch
3. Implementing the Employee System with Inheritance Watch
4. Understanding Inheritance Declaration & The extends Keyword Watch
5. The Protected Access Modifier in Inheritance Watch
6. Implementing an Inheritance Hierarchy Watch
Discussion - Implement an inheritance hierarchy Watch
7. Constructor Chaining and super() in Java Watch
8. The Object Class and Built-in Methods in Java Watch
9. Cloning and Copying Objects in Java Watch
Discussion - Misuse and overuse of inheritance Watch
Test - Inheritance Watch
Module 5. Polymorphism
1. Introduction to Polymorphism Watch
2. Storing a Subclass Object in a Superclass Variable Watch
3. Downcasting – Converting a Superclass Variable to a Subclass Object Watch
4. Method Overloading vs Method Overriding Watch
5. Dynamic Method Dispatch – Dynamic Binding Watch
6. Implementing Dynamic Method Dispatch in a Payroll System Watch
7. Problems with Calling Overridden Methods from Constructors Watch
8. Required Setup for Polymorphism Watch
9. No-Dynamic Dispatch Scenarios – When Polymorphism Does Not Apply Watch
Discussion - Application of Polymorphism Watch
Test - Polymorphism Watch
Module 6. Design with abstract classes and interfaces
1. Introduction to Abstract Methods Watch
2. Understanding Abstract Classes Watch
3. Implementing Abstract Methods in Subclasses Watch
4. Introduction to Interfaces Watch
5. Abstract Thinking in Interface Design Watch
6. Defining and Implementing Interfaces Watch
7. Example – The Payable Interface Watch
8. Built-in Interfaces in the Java API Watch
9. Implementing Multiple Interfaces Watch
10. Default Implementation in Abstract Classes Watch
Discussion - Abstract class or Interface Watch
Test - Abstract class and interface Watch
Module 7. Building Objects - Objects Relationship
1. Introduction to different types of object relationships Watch
2. Association, Aggregation and Composition relationship Watch
3. Implement a has-a relationship Watch
4. Implement one-to-many has-a relationship Watch
5. Implement many-to-many has-a relationship Watch
6. Is-part-of relationship Watch
7. Is-part-of relationship: Implement one-to-one relationship Watch
8. Is-part-of relationship: Implement one-to-many relationship Watch
9. Is-part-of relationship: Implement a complex one-to-many relationship Watch
Discussion - Composition vs Inheritance Watch
Test - Object relationships Watch
Module 8. Exception handling
1. Introduction to exception handling Watch
2. Exception handling with try-catch block Watch
3. Deeper look at exception handling Watch
Discussion - Exceptions in a production environment Watch
Test - Exception handling Watch
Module 9. Generic classes and methods
1. Introduction to generic Watch
2. Implementing generic methods and classes Watch
3. Strong type checking with generic Watch
4. Constraints on input type in generic Watch
5. Working with inheritance relationship Watch
Discussion - Use of generic in Java Watch
Test - Generic classes and methods Watch
Module 10. SOLID Principles
1. Introduction - How good is your design Watch
2. Potential bad design - design smell Watch
3. Introduction to Single Responsibility Principle Watch
4. Design and Implement a solution with Single Responsibility Principle Watch
5. A Common Violation of Single Responsibility Principle Watch
6. Avoid needless complexity and Single Responsibility Principle Watch
7. Implementing Single Responsibility Principle with Dependency Injection Watch
8. Single Responsibility Principle in Business Application Watch
9. Introduction to Open and Closed Principle Watch
10. Design and Implement a solution with Open and Closed Principle Watch
11. Updating system without changing existing code with Open and Closed Principle Watch
12. Discussion on Open and Closed Principle Watch
13. Liskov Substitution Principle: a Square is not a Rectangle, isn't it? Watch
14. Introduction to Dependency Inversion Principle Watch
15. Implementing a design using Dependency Inversion Principle Watch
16. Common violation of Dependency Inversion Principle Watch
17. Introduction Interface Segregation Principle Watch
18. Design using Interface Segregation Principle Watch
19. Implementing a design using Interface Segregation Principle Watch
Discussion - common pitfalls and misconceptions about SOLID principles Watch
Test - SOLID principles Watch
Module 11. Design Patterns
1. Introduction to Design Patterns Watch
2. Observer Pattern Watch
3. Implementing Observer Pattern Watch
Discussion - Common Design Patterns Watch
Final test
Final Test Watch
Summary
Summary Watch

Lecturer profile

Trần Thanh Tùng

Lecturer has 1 courses

No profile information of

Study online proactively through available videos, content. Unlimited time. Register once, study forever. Study conveniently, anytime, anywhere with the Internet. Ask the lecturer with Discussion feature.
Hotline:
0888 678 028
Email tư vấn kỹ thuật:
info@vnuhcm.edu.vn