--------------- <> -----------------
--- KHOA HỌC - CÔNG NGHỆ - GIÁO DỤC - VIỆC LÀM ---
--- Học để đi cùng bà con trên thế giới ---

Tìm kiếm trong Blog

Nhập môn lập trình


1         Mở đầu


Sau khi học xong môn Nhập Môn Công Nghệ Thông Tin, bạn đã có cái nhìn tổng quan về thông tin, biểu diễn và xử lý thông tin; đã có những kiến thức căn bản để có thể sử dụng máy tính, Internet một cách an toàn, hiệu quả; đã có thể sử dụng các phần mềm, email trong việc học, làm báo cáo và trình bày.

Môn học Nhập Môn Công Nghệ Thông Tin cũng đã giúp bạn có cái nhìn tổng quan về một số chuyên ngành, nghề nghiệp và vị trí công việc liên quan đến Công Nghệ Thông Tin. Bạn chưa nhất thiết phải chọn chuyên ngành cho mình mà hãy tập trung học tốt các môn thuộc phần Kiến Thức Đại Cương và Kiến Thức Cơ Sở Ngành. Lâu lâu ngó lại các chuyên ngành để chiêm nghiệm xem mình hợp với chuyên ngành nào hơn, điểm mạnh của mình là gì, chuyên ngành nào đang cần nhiều người làm, từ đó sẽ tự định hướng cho mình. Nếu lỡ chọn chưa đúng thì cứ chọn lại không sao hết, học cái gì cũng có lợi.

Nhập Môn Lập Trình là một học tiếp theo bạn cần học. Môn học này giúp bạn có những khái niệm, kiến thức cơ bản liên quan đến lập trình như: thuật toán, lưu đồ, mã giả, ngôn ngữ lập trình, chương trình, trình dịch; cung cấp cho bạn các kĩ năng lập trình căn bản để giải quyết các bài toán đơn giản; làm quen với các thuật ngữ tiếng Anh chuyên ngành.

Mục tiêu môn học:

– Hiểu các khái niệm: thuật toán, lưu đồ, mã giả, ngôn ngữ lập trình, chương trình, trình dịch

– Biết, hiểu và sử dụng được các kiểu dữ liệu, các cấu trúc điều khiển trong một ngôn ngữ lập trình

– Biết, hiểu và sử dụng được kiểu lập trình cấu trúc; tạo các hàm, thủ tục con để giải quyết các bài toán đơn giản

– Cài đặt được các chương trình bằng một ngôn ngữ lập trình cụ thể

– Nắm được các thuật ngữ chuyên ngành bằng tiếng Anh

Bạn nào còn yếu tiếng Anh thì theo dõi các bài giảng của các thầy, và đọc các tài liệu tiếng Việt. Bạn nào khá tiếng Anh hoặc có quyết tâm cao thì nên đọc, hiểu và làm theo cuốn sách tiếng Anh, đây là mục tiêu cao nhất của môn học.

Chúc các bạn kiên trì.
-------------------------
Cho các bạn khá tiếng Anh
 (Download ebook)
(Bản dịch tiếng Việt để đối chiếu, giúp học tiếng Anh chuyên ngành: Lập trình với C++ )

2         Introduction to C++ programming, input/output and Operators (p38)


In this chapter you’ll learn:

– To write simple computer programs in C++

– To write simple input and output statements

– To use fundamental types

– Basic computer memory concepts

– To use arithmetic operators

– The precedence of arithmetic operators

– To write simple decision making statements

2.1       Introduction (p39)

-------------------------

Cho các bạn tự học & chưa khá tiếng Anh
(Đọc ngược từ dưới lên)

Căn bản

Loạt bài giảng của thầy: Nguyễn Trần Thi Văn – Khoa CNTT – Đại học Sư phạm kĩ thuật – TP.HCM.

Clip 09: (Buổi 03_1) Tạo và chạy chương trình C++ đầu tiên với MS Visual Studio

Clip 08: Hướng dẫn nộp bài

Clip 07: Cách sửa lỗi biên dịch C++ cơ bản trong VS 2015
– Nên tạo mới project cho mỗi bài tập. Cách làm: vào menu File/New/Project, đặt tên mới cho project, trong mục Solution nhớ chọn là Add to solution.

– Để lựa chọn dự án sẽ được ưu tiên biên dịch: chuột phải vào dự án, chọn Set as Startup Project.

Clip 06: Cách tạo project mới để lập trình C++ trong VS 2015

Clip 05: Sử dụng Flowgorithm để vẽ lưu đồ thuật giải (tiếp)
Một cách làm tham khảo (flowchart để kiểm tra số nguyên tố):



Clip 04: Sử dụng Flowgorithm để vẽ lưu đồ thuật giải (tiếp)

Clip 03: Sử dụng Flowgorithm để vẽ lưu đồ thuật giải

Tải phần mềm Flowgorithm tại đây: http://www.flowgorithm.org/download/

Clip 02: Cách vẽ lưu đồ thuật giải


Clip 01: Giới thiệu môn học
Quan trọng nhất là nắm được ý tưởng của lập trình, việc lựa chọn ngôn ngữ C hay C++ là như nhau.

Với mỗi ngôn ngữ lập trình, khi nào cũng đặt ra câu hỏi: dùng chương trình gì để viết mã (Text Editor hay IDE) và dùng phần mềm nào để biên dịch (compile)/thông dịch (interpret) mã nguồn thành chương trình thực thi.
------

Cập nhật: 17/11/2019

Làm web (js02) - JS: Programming Basics

Bài trước: Làm web (js01) - JS: Hello, JavaScript
----------

2         Programming Basics


In the last chapter, we introduced JavaScript, then set up a programming environment. We even got our hands dirty with a few JavaScript programs. In this chapter, we’ll delve further and learn how JavaScript works, as well as write some more programs.

This chapter will cover the following topics:

– The importance of well-commented code

– JavaScript grammar ― expressions, statements, semicolons and whitespace

– Primitive data types

– Strings ― string literals, string properties and methods

– Declaring and assigning constants and variables

– Numbers ― decimal, hexadecimal, octal, binary and exponent form, Infinity,
and NaN

– Arithmetic operations such as +, -, *, /, and %

– Undefined and null

– Booleans ― truthy and falsy values

– Logical operators ― AND, OR, and NOT

– Our project ― we’ll set some question-and-answer variables and use alert boxes to display them


2.1       Comments (p32)

2.2       JavaScript Grammar (p33)

2.3       Reserved Word (p34)

2.4       Primitive data type (p35)


JavaScript has seven different data types. Six of them are primitive data types and are listed below:

– String

– Symbol

– Number

– Boolean

– Undefined

– Null

Any value that isn’t one of the primitive data types listed above is an object. These include arrays, functions and object literals.

JavaScript has a special operator called typeof for finding out the type of a value.

Here are some examples of the different value types:

typeof 'hello'
<< 'string'

typeof 10
<< 'number'

typeof true
<< 'boolean'

typeof { ninja: 'turtle' }
<< 'object'

typeof [ 1, 2, 3 ]
<< 'object'

2.5       Variables (p38)


Variables are used in programming languages to refer to a value stored in memory.

Variables have to be declared before they can be used. From ES6 onwards, JavaScript uses the keywords const and let to declare variables. The keyword const is used when the variable will not be reassigned to another value, whereas let is used if the variable might be reassigned later in the program.

What happened to var?

In versions of JavaScript previous to ES6, variables were declared using the keyword var. The following code shows how a variable called number would be declared and assigned the value of 2:
var number = 2;

This worked in much the same way as using let. The main difference was that variables declared using let and const have block scope, which is discussed in more detail below. They also prevent you from overwriting any built-in methods by assignment, which is generally frowned upon, whereas using var doesn’t.

So why was the new word let introduced into ES6? Why not just change the behavior of var?
Remember that a core tenet of the JavaScript language is that it has to remain backwardly compatible. This means that the behavior of var had to remain consistent, so couldn’t just be changed in ES6. For that reason, the new keyword let was introduced.

You should be aware of var though, as you will see it used frequently in older code examples around the web to declare variables.

2.6       Scope (p40)

2.7       Naming Constants & Variables (p43)

2.8       Direct Assignment and Assignment By Reference (p44)

2.9       String (p45)

2.10  Template Literals (p52)

2.11  Symbol (p53)

2.12  Numbers (p55)

2.13  Number Methods (p57)

2.14  Changing The Value of Variables (p60)

2.15  Type Coercion (p64)

2.16  Converting Between Strings and Numbers (p65)

2.17  Undefined and NULL (p69)

2.18  Booleans (p70)

2.19  Logical Operators (p71)

2.20  Bitwise Operators (p74)

2.21  Comparison (p78)

2.22  Labs:



Lab 4. Quiz Ninja Project (p84)

-----
Cập nhật: 17/10/2019
-----

Hệ điều hành (4) - Liên lạc và đồng bộ hóa giữa các tiến trình

Bài trước: Hệ điều hành (3) - Quản lý tiến trình
-----

5         Liên lạc và đồng bộ hóa giữa các tiến trình

5.1       Liên lạc giữa các tiến trình




Tiến trình độc lập và tiến trình hợp tác?

Một tiến trình không bị ảnh hưởng bởi một tiến trình khác gọi là tiến trình độc lập, ngược lại gọi là tiến trình hợp tác (cooperation process).

Các tiến trình cần phải hợp tác và liên lạc với nhau là để chia sẻ thông tin, như dùng chung tập tin, bộ nhớ, hoặc hợp tác hoàn thành công việc.

Cơ chế liên lạc giữa các tiến trình

Tuy nhiên, do mỗi tiến trình có một không gian địa chỉ riêng biệt nên chúng không thể dễ dàng trực tiếp liên hệ với nhau, vì vậy, hệ điều hành sẽ cung cấp các cơ chế để các tiền trình có thể liên lạc được với nhau. Khi đó, hệ điều hành cần phải giải quyết các vấn đề chính sau:

– Liên kết tường minh hay tiềm ẩn

– Liên lạc theo chế độ đồng bộ hay không đồng bộ

– Liên lạc giữa các tiến trình trong hệ thống tập trung và hệ thống phân tán

Ví dụ một số cơ chế để liên lạc giữa các tiến trình,

– Liên lạc bằng tín hiệu (signal)

– Liên lạc bằng đường ống (pipe)

– Liên lạc qua vùng nhớ chia sẻ (shared memory)

– Liên lạc bằng thông điệp (message)

– Liên lạc qua socket

5.1.1       Liên lạc bằng tín hiệu


Mỗi tiến trình sở hữu một bảng tín hiệu, mỗi tín hiệu được sử dụng để thông báo cho tiến trình về một sự kiện nào đó xảy ra. Với mỗi tín hiệu sẽ có một hàm xử lý tín hiệu (signal handler) do phần cứng hoặc hệ điều hành cung cấp.

5.1.2       Liên lạc bằng đường ống


Là một kênh liên lạc trực tiếp giữa hai tiến trình, dữ liệu xuất của tiến trình này được chuyển thành dữ liệu nhập của tiến trình kia dưới dạng một dòng các byte (theo một chiều duy nhất).


5.1.3       Liên lạc qua vùng nhớ chia sẻ


Có một vùng nhớ vật lý mà các tiến trình cần liên lạc nhau đều truy cập được.

5.1.4       Liên lạc bằng thông điệp


Các tiến trình không chia sẻ tài nguyên chung và liên lạc với nhau bằng cách gửi/nhận các thông điệp.

5.1.5       Liên lạc qua socket


Là thiết bị truyền thông hai chiều tương tự như tập tin, có thể đọc/ghi lên đó, các thao tác đọc/ghi chính là sự trao đổi dữ liệu (có thể trao đổi giữa các máy khác nhau).


5.2       Đồng bộ hóa giữa các tiến trình


Đồng bộ các tiến trình là gì ?

Đồng bộ các tiến trình là bảo đảm các tiến trình xử lý song song không tác động sai lệch đến nhau.

Tại sao phải đồng bộ giữa các tiến trình ?

– Yêu cầu độc quyền truy xuất (mutual exclusion) : tại một thời điểm, chỉ có một tiến trình được quyền truy xuất một tài nguyên không thể chia sẻ.

– Yêu cầu phối hợp (synchronization) :  các tiến trình cần hợp tác với nhau để hoàn thành công việc. Ví dụ chương trình in sẽ xuất kí tự vào buffer, chương trình điều khiển máy in (printer driver) sẽ lấy kí tự trong buffer ra để in. Hai tiến trình này phải phối hợp với nhau để làm sao chương trình in không được xuất kí tự vào buffer khi buffer đầy mà phải chờ printer driver lấy bớt dữ liệu trong buffer ra.

Từ hai yêu cầu trên, chúng ta có hai "bài toán đồng bộ" cần giải quyết là bài toán "độc quyền truy xuất" (bài toán miền găng) và bài toán "phối hợp thực hiện".


5.2.1       Miền găng


Miền găng (critical section) là một đoạn mã của tiến trình có khả năng xảy ra lỗi khi truy xuất tài nguyên dùng chung (ví dụ biến, tập tin).


Bốn điều kiện của bài toán miền găng :

(1) Tại một thời điểm không có hai tiến trình cùng ở trong miền găng

(2) Không có giả thiết về tốc độ của các tiến trình, cũng như về số lượng bộ xử lý

(3) Một tiến trình bên ngoài miền găng không được ngăn cản các tiến trình khác vào miền găng

(4) Không có tiến trình nào phải chơ vô hạn để được vào miền găng


5.2.2       Các giải pháp đồng bộ


Có năm nhóm giải pháp để giải quyết bài toán đồng bộ là :

– Busy waiting

– Sleep and wakeup

– Semaphore

– Monitor

– Message


5.2.3       Nhóm giải pháp Busy waiting (bận thì đợi)



Giải pháp này chia thành hai loại:

– Sử dụng phần mềm

– Sử dụng phần cứng

Giải pháp phần mềm :

– Thuật toán 1 :

– Thuật toán 2 :

– Thuật toán Peterson :

Giải pháp phần cứng (đọc thêm)

– Cấm ngắt :

– Sử dụng lệnh TSL (test and set lock) :

5.2.4       Nhóm giải pháp Sleep and wakeup (ngủ và đánh thức)



– Sử dụng lệnh Sleep và Wakeup :

– Sử dụng cấu trúc Semaphore :

5.2.5       Sử dụng cấu trúc monitor



Bài toán "năm nhà hiền triết ăn tối".

5.3       Tình trạng tắc nghẽn (deadlock)


Đọc thêm.

5.4       Thực hành


Lab 11. Lập trình bài toán Người sản xuất – Người tiêu thụ. Tham khảo: https://drive.google.com/open?id=0B4FOelgeetqJX1VuN1dBNkJQaHM


Lab 12. Lập trình bài toán “Dining philosophers”. Tham khảo (trang 94, 95): https://drive.google.com/file/d/1P_zsBstk_qvbf531CAV_-rV9GxSE7WwV/view

5.5       Câu hỏi ôn tập


1.      Có năm nhóm giải pháp để giải quyết bài toán đồng bộ là :

A. Busy waiting, Peterson, Semaphore, Monitor, Message

B. Semaphore, Busy waiting, Sleep and wakeup, Monitor, Message

C. Monitor, Busy waiting, Sleep and wakeup, TSL, Message

D. Sleep and wakeup, Busy waiting, Semaphore, Deadlock, Message

2.      Ví dụ một số cơ chế để liên lạc giữa các tiến trình :

A. Signal, pipe, Shared memory, Message, Socket

B. Pipe, Shared memory, Signal, Monitor, Socket

C. Shared memory, Signal, Pipe, Sleep and wakeup, Message,

D. Pipe, Signal, Message, Port, Shared memory


--------
Cập nhật: [09/10/2019]
-------
Bài tiếp theo: Hệ điều hành (5) - Quản lý bộ nhớ & bộ nhớ ảo
Danh sách các bài học

Facebook marketing (01) - Tổng quan


1         Tiềm năng của Facebook


– Facebook được thành lập 2004

– Công ty Facebook có 39.651 nhân viên (06/2019)[1]

– Sứ mệnh của Facebook: xây dựng cộng đồng, mang thế giới đến gần hơn với mọi người; mọi người sử dụng Facebook để kết nối với bạn bè và gia đình, để khám phá những gì đang diễn ra trên thế giới, chia sẻ và bày tỏ những gì quan trọng đối với họ.

Trên thế giới,

– Số người có đăng nhập Facebook hàng tháng (monthly active users): trên 2.41 tỉ (2019)

– Số người có đăng nhập Facebook hàng ngày: 1.59 tỉ

– 29.7% người dùng ở độ tuổi 25 > 34

Tại Việt Nam,

– Số người sử dụng Internet là 64 triệu, chiếm 67% dân số (2018)

– Vào mạng nhiều nhất vào lúc 18:00 > 22:00

– Số người dùng Facebook là hơn 60 triệu, thời gian sử dụng 3,55 giờ/ngày[2]; cao hơn so với số người dùng Youtube là 50 triệu, thời gian sử dụng 2,65 giờ/ngày; và số người dùng Zalo là 47 triệu, thời gian sử dụng 2,12 giờ/ngày

– Độ tuổi sử dụng:

(1) 18 – 24: 18 triệu người

(2) 25 – 34: 21 triệu người

(3) 35 – 44: 9 triệu người

(4) 45 – 60+: hơn 6 triệu người


2         Tổng quan về Facebook marketing


Facebook marketing là gì?

Facebook marketing là việc bạn có sản phẩm, dịch vụ; bạn tìm ra nhu cầu của người dùng, khách hàng đối với sản phẩm, dịch vụ của bạn là gì, họ thực sự cần điều gì hoặc có thể nhận được gì từ sản phẩm dịch vụ đó; và đáp ứng nhu cầu của họ; nhằm tăng lợi nhuận hoặc tăng lợi ích; thông qua mạng xã hội Facebook.

Facebook marketing chia người dùng facebook thành hai đối tượng:

– Một là facebook marketer, là những người có nhu cầu làm marketing

– Hai là facebook user, là nhóm người dùng

Công việc mà một người làm facebook marketing cần thực hiện là biến những người dùng facebook xa lạ, vãng lai trở thành người like fanpage của mình, thành người follow mình, thành member trong cộng đồng của mình, tham gia vào sự kiện hay cuộc thi của mình.

Làm sao làm được việc trên:

– Dùng ứng dụng (Application, Apps): tạo ra các ứng dụng chạy trên nền facebook để thu hút mọi người

– Sử dụng dịch vụ quảng cáo của facebook

– Tạo ra nội dung (content): cập nhật sản phẩm/dịch vụ, nội dung ưu đãi, câu hỏi để người dùng có hành động trả lời, cuộc thi, sự kiện, thông tin về thương hiệu, …


Đọc thêm về cách dùng Apps: https://icreate.vn/tu-van/facebook-apps-la-gi.d144/


3         Quy trình tìm kiếm và tiếp cận khách hàng


– Ai là khách hàng?

– Làm sao để bạn tìm được khách hàng?

– Khách hàng là ai?

– Làm sao để khách hàng tìm được bạn?

– Khách hàng sử dụng sản phẩm/dịch vụ của bạn

4         Profile, Group và Fanpage

4.1        Profile


Để có thể sử dụng Facebook, bạn cần phải đăng kí một tài khoản (account), bằng cách cung cấp cho Facebook số điện thoại hoặc email riêng của bạn, đặt mật khẩu cho tài khoản. Bạn cần nhớ số điện thoại (hoặc email) đã đăng ký và mật khẩu để thực hiện việc đăng nhập sử dụng sau này.

Facebook profile là gì?

Sau khi đăng kí một tài khoản trên Facebook, bạn sẽ được Facebook tạo cho mỗi cá nhân một Facebook profile, hiểu nôm na là một trang riêng, hay một hồ sơ cá nhân.

Khi đã có tài khoản (cũng là có profile), bạn có thể thực hiện đăng (post) các thông tin, hình ảnh, video, kết bạn, tham gia/tạo nhóm, theo dõi/tạo trang (fanpage), gửi tin nhắn, và cập nhật các thông tin cá nhân.

Các thông tin cá nhân bạn có thể cập nhật trong profile gồm: nơi làm việc (workplace), trường đã/đang học, nghề nghiệp, nơi đã/đang ở, các thông tin về ngày tháng năm sinh, giới tính, số điện thoại, thông tin về người thân, gia đình, sở thích, và các thông tin khác. Bạn có thể cập nhật các thông tin này bằng cách đăng nhập vào tài khoản và chỉnh sửa ở các mục sau:

– Work and Education

– Places You've Lived

– Contact and Basic Info

– Family and Relationships

– Details About You

– Life Events


Một profile có thể kết bạn (add friend) được với 5000 người, và không giới hạn số người theo dõi (follow).

4.1        Group


Facebook group hay gọi tắt là group là một tính năng do Facebook cung cấp, nó cho phép tạo ra các nhóm của những người dùng facebook, nhằm cùng nhau thảo luận, thông báo hoặc đánh giá về một chủ đề/câu chuyện cùng quan tâm.

Một người dùng đã có tài khoản (account/profile) là họ có thể tạo ra các nhóm hoặc tham gia vào các nhóm có sẵn trên Facebook.

Trên Facebook có hai loại nhóm[1]:

– Công khai (public): mọi người đều có thể biết các thành viên của nhóm và những nội dung đã đăng (post)/thảo luận.

– Riêng tư (private): chỉ có thành viên trong nhóm mới biết được các thành viên trong nhóm và những nội dung đã đăng/thảo luận.

Người dùng sẽ lựa chọn kiểu của nhóm (public hay private) khi tạo ra nhóm, và có thể thay đổi về sau. Việc thay đổi kiểu của nhóm chỉ được thực hiện sau 28 ngày kể từ lần đổi gần đây nhất, ví dụ bữa nay thực hiện thay đổi từ public sang private thì phải sau 28 ngày nữa mới có thể đổi ngược lại. Với nhóm kiểu private, khi thành viên của nhóm vượt quá 5000, Facebook sẽ không cho chuyển nhóm từ private sang public. Với các nhóm có số thành viên nhỏ hơn 5000 thì có thể chuyển đổi qua lại giữa public và private.

Mọi thành viên trong nhóm đều nhận được nội dung do một thành viên trong nhóm đăng lên.

Để tạo nhóm:

– Đăng nhập vào trang Facebook

– Bấm vào mục Create (ở thanh menu, phía trên, bên phải), chọn mục Group

– Đặt tên cho group (Name your group), mời ai đó tham gia group (Add some people), chọn kiểu group (Select privacy), chọn chế độ công khai hoặc bí mật (Hide group)

– Bấm nút Create để hoàn thành việc tạo nhóm

Để tham gia các nhóm có sẵn:

– Đăng nhập vào trang Facebook

– Nhập tên nhóm vào ô tìm kiếm (Search) (ở thanh menu, phía trên, bên trái), gõ phím Enter

– Nếu nhóm có tồn tại, nó sẽ xuất hiện trên màn hình, bấm vào nút Join bên cạch tên nhóm để tham gia


– Cũng có thể bấm vào mục Explore\Groups tại menu dọc, bên trái màn hình để quản lý, khám phá, tham gia các nhóm



[2] Nguồn: didongvietnam.net
-----
Cập nhật: 22/10/2019
-----

Thương mại điện tử (01) - Tổng quan

1         Tổng quan

1.1       Thương mại điện tử là gì?

Thương mại (trade) là gì?

Theo wiki: thương mại là hoạt động trao đổi của cải, hàng hóa, dịch vụ, kiến thức, tiền tệ v.v giữa hai hay nhiều đối tác, và có thể nhận lại một giá trị nào đó (bằng tiền thông qua giá cả) hay bằng hàng hóa, dịch vụ khác như trong hình thức thương mại hàng đổi hàng (barter). Trong quá trình này, người bán là người cung cấp của cải, hàng hóa, dịch vụ... cho người mua, đổi lại người mua sẽ phải trả cho người bán một giá trị tương đương nào đó.

Thuật ngữ “thương mại” cần được diễn giải theo nghĩa rộng để bao quát các vấn đề phát sinh từ mọi quan hệ mang tính chất thương mại dù có hay không có hợp đồng. Các quan hệ mang tính thương mại bao gồm các giao dịch sau đây: bất cứ giao dịch nào về thương mại nào về cung cấp hoặc trao đổi hàng hóa hoặc dịch vụ; thỏa thuận phân phối; đại diện hoặc đại lý thương mại, ủy thác hoa hồng; cho thuê dài hạn; xây dựng các công trình; tư vấn; kỹ thuật công trình; đầu tư; cấp vốn; ngân hàng; bảo hiểm; thỏa thuận khai thác hoặc tô nhượng; liên doanh các hình thức khác về hợp tác công nghiệp hoặc kinh doanh; chuyên chở hàng hóa hay hành khách bằng đường biển, đường không, đường sắt hoặc đường bộ.

Đọc thêm về “thương mại” ở đây: 



Thương mại điện tử là gì?

--------
Cập nhật: [04/10/2019]
-------
Bài tiếp theo: Thương mại điện tử (2) -
Danh sách các bài học