[major=IA | course_id=APO201c | syllabus_id=13045 | semester=2 | combo=core | title=Advanced Python with OOP]
Course ID: APO201c
Title EN: Advanced Python with OOP
Title VI: Lập trình hướng đối tượng với Python
Credits: 3.0
Prerequisites: PFP191
Description: By the end of this course, students will have a understanding of object-oriented programming (OOP) and be able to apply these principles effectively using Python. This includes the ability to design and implement classes, utilize inheritance and polymorphism, and understand the benefits of encapsulation. Students will gain practical experience in building graphical user interfaces (GUIs) for their applications, enhancing user interaction and visualization. Furthermore, they will delve into the world of concurrent programming, learning how to write multi-process programs that leverage the power of modern processors for increased speed and efficiency. Students will explore the fundamentals of network systems and acquire the skills to develop networked applications, including client-server programs, using socket programming in Python.
Student tasks: Student must get the certification of all MOOCs from Coursera to be accepted to the final examination
Tools: 
Course type: coursera_only
Decision: 857/QĐ-ĐHFPT dated 08/05/2025
Approved date: 2025-08-05
CLO1: Understanding the fundamental concepts of object oriented programming
[1] category=Practical Exam (PE); type=practical exam; weight=50.0; duration=80'; question_type=CLO1, CLO2, CLO3, CLO4, CLO5, CLO6, CLO7, CLO8, CLO9; grading_guide=; completion_criteria=; clos=4
[2] category=Final Theoretical Exam (TE); type=Final exam; weight=50.0; duration=60'; question_type=CLO1, CLO2, CLO3, CLO4, CLO5, CLO6, CLO7, CLO8, CLO9; grading_guide=All studied courses.; completion_criteria=; clos=4
[1] desc=MOOC 1: Object-Oriented Programming and GUI with Python; author=Arizona State University; publisher=Coursera; edition=; isbn=; main=True; online=True; note=https://www.coursera.org/learn/object-oriented-programming-and-gui-with-python?specialization=python-a-guided-journey-from-introduction-to-application
[2] desc=MOOC 2: Concurrent and Parallel Programming in Python; author=Packt; publisher=Coursera; edition=; isbn=; main=True; online=True; note=https://www.coursera.org/learn/packt-concurrent-and-parallel-programming-in-python-um1n1
[3] desc=MOOC 3: Using Python to Access Web Data; author=University of Michigan; publisher=Coursera; edition=; isbn=; main=True; online=True; note=https://www.coursera.org/learn/python-network-data
[4] desc=MOOC 4: Basic Data Processing and Visualization; author=University of California San Diego; publisher=Coursera; edition=; isbn=; main=True; online=True; note=https://www.coursera.org/programs/fpt-faculty-learning-program-summer-2025-d88yo/learn/basic-data-processing-visualization-python
Session 1: Object-Oriented Programming and GUI with Python
- Introduction to object-oriented programming (OOP).
- Difference between OOP and procedural-oriented programming.
- Classes and objects.
Topic: Online; Teaching type: CLO1; LO: ITU
ITU: Associated Coursera links
Materials: Associated Coursera links
Download: Complete Module 1 of the course
Object-Oriented Programming and GUI with Python

Session 2: Object-Oriented Programming and GUI with Python (cont.)
- Implement inheritance and polymorphism into an application.
Topic: Online; Teaching type: CLO1; LO: TU
ITU: Associated Coursera links
Materials: Associated Coursera links
Download: Complete Module 2 of the course Object-Oriented Programming and GUI with Python

Session 3: Object-Oriented Programming and GUI with Python (cont.)
- Build a basic graphical user interface (GUI)
+ Tkinter
+ Widgets, Shapes
+ Handling Event
Topic: Online; Teaching type: CLO2; LO: T
ITU: Associated Coursera links
Materials: Associated Coursera links
Download: Complete Module 3 of the course Object-Oriented Programming and GUI with Python

Session 4: Concurrent and Parallel Programming in Python
- Introduction to threading, multiprocessing, and asynchronous programming concepts.
- Create practical applications using threading to enhance functionality and performance.
Topic: Online; Teaching type: CLO3, CLO4; LO: ITU
ITU: Associated Coursera links
Materials: Associated Coursera links
Download: Complete Module 1 of the course
Concurrent and Parallel Programming in Python
CLO2: Learning how to create a graphical user interface with Python.
Session 1: Concurrent and Parallel Programming in Python (cont.)
- Apply advanced multiprocessing techniques for handling multiple arguments and varying tasks.
- Implement multiprocessing queues for efficient inter-process communication.
Topic: Online; Teaching type: CLO4; LO: TU
ITU: Associated Coursera links
Materials: Associated Coursera links
Download: Complete Module 2 of the course
Concurrent and Parallel Programming in Python

Session 2: Concurrent and Parallel Programming in Python (cont.)
- Implement async gather methods and timeouts to handle multiple asynchronous operations.
- Develop and manage asynchronous tasks for efficient execution.
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: Associated Coursera links
Materials: Associated Coursera links
Download: Complete Module 3 of the course
Concurrent and Parallel Programming in Python

Session 3: Using Python to Access Web Data (cont.)
- Install Python and a text editor
- Use regular expressions to extract data from strings
- Apply AI to extract data
Topic: Online; Teaching type: CLO5, CLO6; LO: ITU
ITU: Associated Coursera links
Materials: Associated Coursera links
Download: Complete Module 1, 2 of the course Using Python to Access Web Data

Read additional documentation on applying AI to generate regular expressions for specific purposes

Session 4: Using Python to Access Web Data (cont.)
- Learn about the protocols that web browsers use to retrieve documents and web applications.
- Use Python to retrieve data from web sites and APIs over the Internet.
- Apply AI to extract data
Topic: Online; Teaching type: CLO6, CLO7; LO: TU
ITU: Associated Coursera links
Materials: Associated Coursera links
Download: Complete Module 3, 4 of the course Using Python to Access Web Data
CLO3: Understanding the fundamental concepts of concurrent and parallel programming in Python.
Session 1: Using Python to Access Web Data (cont.)
- Learn how to retrieve and parse XML (eXtensible Markup Language) data.
- Work with Application Program Interfaces / Web Services using the JavaScript Object Notation (JSON) data format.
- Apply AI to extract data
Topic: Online; Teaching type: CLO6, CLO7; LO: TU
ITU: Associated Coursera links
Materials: Associated Coursera links
Download: Complete Module 5, 6 of the course Using Python to Access Web Data

Session 2: Basic Data Processing and Visualization
- Understand what a data product consists of
- Know various examples of real world data products
- Load formatted datasets such as CSV and JSON.
- Extract simple statistics from datasets (mean, variance, etc.).
Topic: Online; Teaching type: CLO8; LO: ITU
ITU: Associated Coursera links
Materials: Associated Coursera links
Download: Complete Module 1, 2 of the course Basic Data Processing and Visualization

Session 3: Basic Data Processing and Visualization (cont.)
- Filter and “clean” datasets by removing outliers etc.
- Identify Python libraries and toolkits fundamental to modern data science
- Learn how to perform data ingestion with urllib, requests
Topic: Online; Teaching type: CLO8, CLO9; LO: TU
ITU: Associated Coursera links
Materials: Associated Coursera links
Download: Complete Module 3, 4 of the course Basic Data Processing and Visualization

Session 4: Basic Data Processing and Visualization (cont.)
Final Project
- Develop data strategy and processes for how data will be generated, collected, and consumed
Topic: Offline; Teaching type: CLO8, CLO9; LO: U
ITU: Associated Coursera links
Materials: Associated Coursera links
Download: https://flm.fpt.edu.vn/gui/role/student/- Complete Module 5 of the course Basic Data Processing and Visualization- Deadline of Coursera Completion: End of Friday of the week.All Students should participate in review slot (if any question)
CLO4: Implement threading, multiprocessing, and asynchronous programming techniques with Python
CLO5: Know how to use regular expressions to extract data from strings
CLO6: Understanding how to leverage AI to create code or regular expressions for data extraction
CLO7: Understanding the protocols web browsers use to retrieve documents and web apps and learning how to work with XML and JSON data format.
CLO8: Understanding the concept of Python Data Products and how to develop a Data Product Strategy
CLO9: Know how to clean up and process a dataset using Python Libraries and Toolkits