• 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:  

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.  

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