Advanced Python with OOP (APO201c)
Vietnamese title: Lập trình hướng đối tượng với Python
Credits: 3
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.

Learning outcomes:
Understanding the fundamental concepts of object oriented programming
Learning how to create a graphical user interface with Python.
Understanding the fundamental concepts of concurrent and parallel programming in Python.
Implement threading, multiprocessing, and asynchronous programming techniques with Python
Know how to use regular expressions to extract data from strings
Understanding how to leverage AI to create code or regular expressions for data extraction
Understanding the protocols web browsers use to retrieve documents and web apps and learning how to work with XML and JSON data format.
Understanding the concept of Python Data Products and how to develop a Data Product Strategy
Know how to clean up and process a dataset using Python Libraries and Toolkits

Student tasks:
Student must get the certification of all MOOCs from Coursera to be accepted to the final examination

Tools:

Materials:
description: MOOC 1: Object-Oriented Programming and GUI with Python
author: Arizona State University
publisher: Coursera
note: https://www.coursera.org/learn/object-oriented-programming-and-gui-with-python?specialization=python-a-guided-journey-from-introduction-to-application
description: MOOC 2: Concurrent and Parallel Programming in Python
author: Packt
publisher: Coursera
note: https://www.coursera.org/learn/packt-concurrent-and-parallel-programming-in-python-um1n1
description: MOOC 3: Using Python to Access Web Data
author: University of Michigan
publisher: Coursera
note: https://www.coursera.org/learn/python-network-data
description: MOOC 4: Basic Data Processing and Visualization
author: University of California San Diego
publisher: Coursera
note: https://www.coursera.org/programs/fpt-faculty-learning-program-summer-2025-d88yo/learn/basic-data-processing-visualization-python

Assessments:
category: Practical Exam (PE)
type: practical exam
weight: 50.0
duration: 80'
question_type: CLO1, CLO2, CLO3, CLO4, CLO5, CLO6, CLO7, CLO8, CLO9
knowledge_and_skill: Manual evaluating
note: By exam board
category: Final Theoretical Exam (TE)
type: Final exam
weight: 50.0
duration: 60'
question_type: CLO1, CLO2, CLO3, CLO4, CLO5, CLO6, CLO7, CLO8, CLO9
no_question: Multiple choices
Marked by Computer
knowledge_and_skill: 50
grading_guide: All studied courses.
note: by exam board,
using computer

Schedule:
session: Object-Oriented Programming and GUI with Python
- Introduction to object-oriented programming (OOP).
- Difference between OOP and procedural-oriented programming.
- Classes and objects.
learning_outcomes: ITU
materials: Associated Coursera links
session: Object-Oriented Programming and GUI with Python (cont.)
- Implement inheritance and polymorphism into an application.
learning_outcomes: TU
materials: Associated Coursera links
session: Object-Oriented Programming and GUI with Python (cont.)
- Build a basic graphical user interface (GUI)
+ Tkinter
+ Widgets, Shapes
+ Handling Event
learning_outcomes: T
materials: Associated Coursera links
session: Concurrent and Parallel Programming in Python
- Introduction to threading, multiprocessing, and asynchronous programming concepts.
- Create practical applications using threading to enhance functionality and performance.
learning_outcomes: ITU
materials: Associated Coursera links
session: 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.
learning_outcomes: TU
materials: Associated Coursera links
session: 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.
learning_outcomes: TU
materials: Associated Coursera links
session: 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
learning_outcomes: ITU
materials: Associated Coursera links
session: 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
learning_outcomes: TU
materials: Associated Coursera links
session: 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
learning_outcomes: TU
materials: Associated Coursera links
session: 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.).
learning_outcomes: ITU
materials: Associated Coursera links
session: 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
learning_outcomes: TU
materials: Associated Coursera links
session: Basic Data Processing and Visualization (cont.)
Final Project
- Develop data strategy and processes for how data will be generated, collected, and consumed
learning_outcomes: U
materials: Associated Coursera links