Chào mừng quý vị đến với website của ...
Quý vị chưa đăng nhập hoặc chưa đăng ký làm thành viên, vì vậy chưa thể tải được các tài liệu của Thư viện về máy tính của mình.
Nếu chưa đăng ký, hãy nhấn vào chữ ĐK thành viên ở phía bên trái, hoặc xem phim hướng dẫn tại đây
Nếu đã đăng ký rồi, quý vị có thể đăng nhập ở ngay phía bên trái.
Nếu chưa đăng ký, hãy nhấn vào chữ ĐK thành viên ở phía bên trái, hoặc xem phim hướng dẫn tại đây
Nếu đã đăng ký rồi, quý vị có thể đăng nhập ở ngay phía bên trái.
Lập trình căn bản

- 0 / 0
(Tài liệu chưa được thẩm định)
Nguồn:
Người gửi: Phạm Huy Lượng
Ngày gửi: 17h:40' 01-07-2025
Dung lượng: 3.2 MB
Số lượt tải: 0
Nguồn:
Người gửi: Phạm Huy Lượng
Ngày gửi: 17h:40' 01-07-2025
Dung lượng: 3.2 MB
Số lượt tải: 0
Số lượt thích:
0 người
Mục lục
Lời mở đầu ................................................................................................................ 1
Hướng dẫn sử dụng sách ........................................................................................ 2
Chương 1 - Nhập môn lập trình ............................................................................... 5
1. Mục tiêu .......................................................................................................................... 5
2. Giới thiệu........................................................................................................................ 5
3. Máy tính hoạt động như thế nào?................................................................................ 5
4. Phần mềm được tạo ra như thế nào? ......................................................................... 9
5. Quy trình tạo ra một phần mềm ................................................................................. 10
6. Các vai trò trong lập trình ........................................................................................... 11
7. Ngôn ngữ lập trình ...................................................................................................... 13
8. Thuật toán .................................................................................................................... 14
9. Mô tả thuật toán bằng mã giả ..................................................................................... 15
10. Mô tả thuật toán bằng lưu đồ ................................................................................... 16
11. Một số cấu trúc thường gặp trong thuật toán ........................................................ 17
12. Ngôn ngữ lập trình JavaScript ................................................................................. 22
13. Chương trình đầu tiên .............................................................................................. 22
14. Cài đặt công cụ lập trình........................................................................................... 23
15. Bài thực hành ............................................................................................................ 24
16. Bài tập......................................................................................................................... 25
17. Bài kiểm tra ................................................................................................................ 26
18. Tổng kết...................................................................................................................... 28
Chương 2 - Biến, kiểu dữ liệu và toán tử ............................................................. 30
1. Mục tiêu ........................................................................................................................ 30
2. Giới thiệu...................................................................................................................... 30
3. Biến ............................................................................................................................... 30
4. Kiểu dữ liệu .................................................................................................................. 34
5. Phép toán toán học ..................................................................................................... 36
6. Phép toán logic ............................................................................................................ 40
7. Phép toán so sánh....................................................................................................... 43
8. Đọc dữ liệu từ bên ngoài ............................................................................................ 44
9. Hiển thị dữ liệu ............................................................................................................ 46
10. Mã sạch ...................................................................................................................... 47
11. Các lỗi thường gặp ................................................................................................... 48
13. Bài thực hành ............................................................................................................ 49
14. Bài tập......................................................................................................................... 50
15. Bài kiểm tra ................................................................................................................ 50
16. Tổng kết...................................................................................................................... 52
Chương 3 - Câu lệnh điều kiện .............................................................................. 53
1. Mục tiêu ........................................................................................................................ 53
2. Giới thiệu...................................................................................................................... 53
3. Cấu trúc điều kiện ....................................................................................................... 54
4. Cấu trúc điều kiện if-else ............................................................................................ 54
5. Cấu trúc điều kiện if-else lồng nhau .......................................................................... 56
6. Cấu trúc điều kiện if-else bậc thang .......................................................................... 57
7. Cấu trúc điều kiện switch-case .................................................................................. 58
8. Mã sạch ........................................................................................................................ 61
9. Các lỗi thường gặp ..................................................................................................... 62
10. Bài thực hành ............................................................................................................ 66
11. Bài tập......................................................................................................................... 77
12. Bài kiểm tra ................................................................................................................ 77
13. Tổng kết...................................................................................................................... 79
Chương 4 - Câu lệnh lặp ........................................................................................ 80
1. Mục tiêu ........................................................................................................................ 80
2. Giới thiệu...................................................................................................................... 80
3. Câu lệnh lặp ................................................................................................................. 80
4. Câu lệnh lặp while ....................................................................................................... 81
5. Câu lệnh lặp do-while.................................................................................................. 82
6. Câu lệnh lặp for ........................................................................................................... 82
7. Câu lệnh lặp lồng nhau ............................................................................................... 84
8. Câu lệnh break ............................................................................................................. 85
9. Câu lệnh continue ....................................................................................................... 86
10. Mã sạch ...................................................................................................................... 86
11. Các lỗi thường gặp ................................................................................................... 87
12. Bài thực hành ............................................................................................................ 88
13. Bài tập......................................................................................................................... 93
14. Bài kiểm tra ................................................................................................................ 94
15. Tổng kết...................................................................................................................... 96
Chương 5 - Mảng .................................................................................................... 97
1. Mục tiêu ........................................................................................................................ 98
2. Giới thiệu...................................................................................................................... 98
3. Mảng ............................................................................................................................. 98
4. Duyệt qua các phần tử của mảng ............................................................................ 102
5. Mảng nhiều chiều ...................................................................................................... 103
6. Các thao tác thông dụng với mảng ......................................................................... 106
7. Mã sạch ...................................................................................................................... 108
8. Các lỗi thường gặp ................................................................................................... 109
9. Bài thực hành ............................................................................................................ 110
10. Bài tập....................................................................................................................... 115
11. Bài kiểm tra .............................................................................................................. 116
12. Tổng kết.................................................................................................................... 118
Chương 6 - Hàm .................................................................................................... 119
1. Mục tiêu ...................................................................................................................... 119
2. Giới thiệu.................................................................................................................... 119
3. Hàm ............................................................................................................................. 120
4. Giá trị trả về của hàm ................................................................................................ 124
5. Tham số của hàm ...................................................................................................... 125
6. Phạm vi của biến ....................................................................................................... 125
7. Hàm đệ quy ................................................................................................................ 126
8. Mã sạch ...................................................................................................................... 127
9. Các lỗi thường gặp ................................................................................................... 129
10. Bài thực hành .......................................................................................................... 130
11. Bài tập....................................................................................................................... 133
12. Bài kiểm tra .............................................................................................................. 134
13. Tổng kết.................................................................................................................... 136
Chương 7 - Thuật toán tìm kiếm .......................................................................... 137
1. Mục tiêu ...................................................................................................................... 137
2. Giới thiệu.................................................................................................................... 137
3. Tìm kiếm tuyến tính ................................................................................................... 137
4. Tìm kiếm nhị phân ..................................................................................................... 139
5. Độ phức tạp của thuật toán ...................................................................................... 142
6. Các lỗi thường gặp ................................................................................................... 144
7. Bài thực hành ............................................................................................................ 146
8. Bài tập......................................................................................................................... 150
9. Bài kiểm tra ................................................................................................................ 150
10. Tổng kết.................................................................................................................... 151
Chương 8 - Thuật toán sắp xếp ........................................................................... 152
1. Mục tiêu ...................................................................................................................... 152
2. Giới thiệu.................................................................................................................... 152
3. Thuật toán sắp xếp nổi bọt ....................................................................................... 152
4. Thuật toán sắp xếp chèn .......................................................................................... 155
5. Thuật toán sắp xếp chọn .......................................................................................... 157
6. Các lỗi thường gặp ................................................................................................... 159
8. Bài thực hành ............................................................................................................ 159
9. Bài tập......................................................................................................................... 161
10. Bài kiểm tra .............................................................................................................. 162
11. Tổng kết.................................................................................................................... 162
Tổng kết ................................................................................................................. 164
Đội ngũ tác giả ...................................................................................................... 167
Lời mở đầu
Với sự phát triển nhanh chóng của ngành Công nghệ Thông tin trong những năm gần
đây, nhu cầu nhân sự trong ngành này tăng mạnh ở cả quy mô thế giới lẫn Việt Nam.
Học lập trình không còn là một lựa chọn xa lạ với nhiều thanh niên Việt Nam nữa.
Càng ngày càng có nhiều bạn trẻ muốn tìm đến với công việc lập trình, bắt đầu bằng
việc tham gia vào các trường đào tạo chính quy, các trung tâm dạy lập trình, hoặc tự
học.
Với hàng chục năm làm việc trong ngành Công nghệ Thông tin và trực tiếp tham gia
vào công tác đào tạo lập trình viên, chúng tôi nhận ra rằng các bạn trẻ gặp rất nhiều
khó khăn trong những thời điểm đầu tiên tiếp xúc với công việc này. Có rất nhiều rào
cản khiến cho việc học lập trình trở nên khó khăn hơn, có thể kể đến như do chương
trình đào tạo được thiết kế không tốt, giáo trình khó hiểu, chương trình không sát với
thực tế, giáo trình không giúp người học xây dựng được kiến thức một cách bài bản
và vững vàng. Bên cạnh đó, mặc dù có rất nhiều sách dạy lập trình bằng tiếng Anh
rất tốt, nhưng nhiều người lại không sử dụng được tiếng Anh. Đó là những thiệt thòi
và khó khăn mà những bạn trẻ đang muốn tìm đến ngành nghề lập trình đang gặp
phải hiện nay.
Với mục tiêu giúp những người mới bắt đầu học lập trình được thuận lợi hơn, đội ngũ
Giảng viên của Hệ thống Đào tạo Lập trình Hiện đại CodeGym đã biên soạn nên cuốn
sách này và gửi đến các bạn. Cuốn sách này dành cho những người bắt đầu từ con
số 0 và mong muốn phát triển năng lực lập trình trong thời gian nhanh nhất. Cuốn
cẩm nang được thiết kế một cách khoa học để giúp người học tự xây dựng năng lực
của mình thông qua từng hoạt động một. Không có quá nhiều thuật toán phức tạp,
nhanh chóng làm ra được các sản phẩm để chứng minh sự tiến bộ của người học,
sử dụng ngôn ngữ lập trình Javascript với độ tương tác cao là những đặc điểm nổi
bật của cuốn cẩm nang này.
Mặc dù đội ngũ tác giả chúng tôi đã nỗ lực trong việc hoàn thiện cuốn sách này với
tiêu chí dễ hiểu, khoa học và hiệu quả dành cho người mới bắt đầu, tuy nhiên khó để
tránh khỏi các sai sót trong quá trình biên soạn. Vì vậy, chúng tôi rất mong nhận được
các ý kiến phản hồi và đóng góp của mọi người thông qua email info@codegym.vn.
Cảm ơn và chúc các bạn gặt hái được nhiều giá trị từ cuốn sách này.
Trân trọng!
Đội ngũ tác giả.
/codegym.vn/ - 1
Hướng dẫn sử dụng sách
Cuốn sách này hướng đến mục tiêu giúp người học phát triển cả kiến thức lẫn kỹ
năng. Cho nên, để khai thác cuốn sách một cách hiệu quả nhất, người học nên thực
hiện các công việc sau đây:
● Ghi chép: Cần có một cuốn sổ để ghi chép, hoặc sử dụng các công cụ số như
các trình soạn thảo hoặc Mind Map. Việc ghi chép sẽ giúp người học đảm bảo
được mức độ hiểu của mình đối với các khái niệm quan trọng. Ghi chép cũng
giúp cho người đọc ghi nhớ tốt hơn các khái niệm.
● Tìm kiếm thông tin ngoài cuốn sách: Có những khái niệm mà người đọc
không hiểu được, ngay cả khi đã đọc đi đọc lại nhiều lần. Người đọc nên tìm
kiếm thông tin về các khái niệm đó ở những nguồn khác ngoài cuốn sách, để
tìm cách hiểu chúng. Lí do là bởi vì có nhiều cách để trình bày một khái niệm
nào đó, các tác giả mặc dù đã cố gắng để trình bày chúng một cách dễ hiểu và
phù hợp với phần đông các độc giả, nhưng có thể ở một vài chỗ và đối với một
vài người thì vẫn bị khó hiểu. Đừng đầu hàng, mà nên tìm cách để hiểu chúng
ở phạm vi ngoài cuốn sách.
● Luyện tập: Thực hành là thao tác bắt buộc để có thể phát triển kỹ năng. Người
học không thể có được kỹ năng tốt nếu chỉ đọc cuốn sách từ đầu tới cuối mà
không thực hành trong thực tế. Việc thực hành nên tăng theo cấp độ từ dễ đến
khó. Đối với các bài thực hành có hướng dẫn, người học có thể làm theo các
hướng dẫn đó. Nhưng sau khi làm theo thì cần phải tiếp tục thực hành để mình
có thể tự làm được mà không cần làm theo hướng dẫn.
● Tổng kết sau mỗi chương: Sau khi hoàn thành mỗi chương, người học cần
xem lại phần ghi chép của mình, đối chiếu với các mục tiêu để xem thử mình
đã phát triển được những năng lực gì. Nếu có phần nào mình chưa hiểu hoặc
chưa làm được thì hãy cố gắng tìm thêm sự trợ giúp để có thể giải quyết đầy
đủ.
Cuốn sách này bao gồm 8 chương, lần lượt đề cập đến các khái niệm nền tảng trong
lập trình. Tuy nhiên, nội dung của các chương không hoàn toàn được trình bày một
cách tuyến tính, mà được tổ chức theo lối tích hợp. Nghĩa là một khái niệm có thể
được trình bày trải đều qua nhiều chương khác nhau, giúp cho người học có cơ hội
cọ xát nhiều lần, lặp đi lặp lại các thao tác thực hành, giúp xây dựng được một nền
tảng hiểu biết và kỹ năng bền vững. Sau đây là cấu trúc của mỗi chương, người đọc
nên hiểu cấu trúc này để có cách khai thác nội dung một cách hiệu quả nhất:
● Mục tiêu: Là nơi định nghĩa rõ ràng và ngắn gọn về những kiến thức và kỹ
năng mà người đọc sẽ xây dựng được khi hoàn thành mỗi chương. Người học
cần ghi chép lại mục tiêu của từng chương, để sau này tự đánh giá lại xem
mình đã đạt được các mục tiêu đó hay chưa. Nếu không nắm được các mục
/codegym.vn/ - 2
tiêu thì người học sẽ rơi vào trạng thái hoang mang, bởi vì không biết mình
đang hướng đến điều gì.
● Giới thiệu: Là nơi trình bày ngắn gọn về mục đích và nội dung của chương.
Phần này giúp người học trả lời được câu hỏi WHAT (tôi đang học cái gì?) và
WHY (thấy được sự liên quan giữa những khái niệm mình sẽ học với các ứng
dụng thực tế).
● Các mục nội dung: Phần chính của mỗi chương sẽ trình bày về các khái niệm
và ứng dụng của chúng. Mỗi khái niệm sẽ được trình bày đầy đủ định nghĩa,
diễn giải, các tình huống ứng dụng, các vị dụ cụ thể và những thông tin khác
xung quanh khái niệm đó.
● Mã sạch: Mã sạch là một phần đặc biệt của cuốn sách để định hướng người
đọc trở thành một lập trình viên tốt ngay từ đầu. Trong lập trình, có nhiều cách
để giải quyết một vấn đề, nhưng chỉ có một số cách thực sự gọn gàng và hiệu
quả. Mã sạch là cách để chúng ta tổ chức mã nguồn thực sự khoa học và
hướng đến sự hiệu quả nói chung.
● Các lỗi thường gặp: Phần này liệt kê các lỗi mà một lập trình viên non kinh
nghiệm thường mất nhiều thời gian để nhận ra và khắc phục. Chúng ta không
thể liệt kê hết tất cả các lỗi có thể xảy ra khi làm việc với một cấu trúc lập trình
nào đó, tuy nhiên việc nhận biết được các lỗi thường gặp sẽ giúp cho những
người mới học lập trình tiết kiệm được khá nhiều thời gian.
● Bài thực hành: Đây là nội dung được thiết kế theo hướng “cầm tay chỉ việc”,
có tác dụng giúp người đọc bắt đầu rèn luyện kỹ năng. Các bài thực hành được
thiết kế theo hướng tăng dần về độ khó và quy mô, tương ứng với sự kỳ vọng
tăng trưởng về kỹ năng của người đọc. Kết thúc phần Bài thực hành, người
đọc có thể bắt tay vào tự thực hiện các bài tập để nâng cao hơn nữa kỹ năng
của mình.
● Bài tập: Là cách thức để người học tự rèn luyện kỹ năng. Nếu nhìn vào lộ trình
tổng quan, chúng ta sẽ đi từ việc học lí thuyết (thông qua phần Mục tiêu, Giới
thiệu, Các khái niệm, Các ví dụ,…) rồi sau đó đến rèn luyện kỹ năng (thông
qua phần Thực hành và phần Bài tập). Khi hoàn thành phần Bài tập thì kỹ năng
của người đọc sẽ thành thạo hơn so với khi chỉ mới hoàn thành phần Bài thực
hành.
● Bài kiểm tra: Đây là mục giúp người đọc tự đánh giá lại được kiến thức và kỹ
năng của mình sau khi hoàn thành được một chương. Đáp án của các câu hỏi
được đặt ở phần cuối của bài kiểm tra, giúp người học tự chấm điểm được.
Nếu có những khái niệm nào mà mình chưa trả lời được thì người học nên
quay trở lại phần trước đó để đọc kỹ hơn.
/codegym.vn/ - 3
● Tổng kết: Là nơi giúp người học rà soát lại nhanh những kiến thức và kỹ năng
mình đã học được. Phần tổng kết này được viết sẵn với nội dung khá ngắn
gọn, nhưng chúng tôi vẫn khuyến khích người học nên tự viết lại phần tổng kết
của riêng mình với mức độ chi tiết hơn theo cách hiểu của mình. Người học
cũng tự đối chiếu lại với các mục tiêu được liệt kê ở đầu chương, để xem mình
đã đạt được các mục tiêu đó hay chưa.
/codegym.vn/ - 4
Chương 1 - Nhập môn lập trình
Các khái niệm căn bản về máy tính và lập trình
1. Mục tiêu
● Giải thích được tổng quan cách hoạt động của máy tính
● Phân biệt được phần cứng và phần mềm
● Liệt kê được một số phần cứng thông dụng
● Liệt kê được một số phần mềm thông dụng
● Biết được vai trò của phần cứng, phần mềm và người dùng
● Trình bày được tổng quan quá trình tạo ra một phần mềm
● Giải thích được vai trò và ý nghĩa của ngôn ngữ lập trình
● Biết được tổng quan quy trình sản xuất một phần mềm
● Phân biệt được các vai trò thông dụng trong một quy trình sản xuất phần mềm
● Giải thích được ý nghĩa của thuật toán
● Mô tả được thuật toán bằng mã giả
● Mô tả được thuật toán bằng lưu đồ
● Cài đặt được phần mềm để bắt đầu viết mã
● Tạo được ứng dụng phần mềm đầu tiên
2. Giới thiệu
Trong chương đầu tiên của cuốn sách, chúng ta sẽ tìm hiểu về những khái niệm căn
bản nhất về thế giới máy tính và lập trình. Đây là những khái niệm cơ bản nhất, cần
thiết nhất trước khi bắt đầu viết những dòng mã đầu tiên. Chúng ta sẽ tìm hiểu về
những khái niệm liên quan đến máy tính, phần mềm, người dùng, công việc sản xuất
phần mềm, các bước để làm ra phần mềm. Cuối cùng, chúng ta sẽ cài đặt môi trường
và chuẩn bị cho việc tạo ra một phần mềm đầu tiên.
Kết thúc chương này, chúng ta có thể bắt tay vào viết được những dòng mã đầu tiên
để tạo ra các phần mềm.
3. Máy tính hoạt động như thế nào?
3.1. Định nghĩa máy tính
Thuật ngữ máy tính thường được sử dụng để chỉ đến các thiết bị điện tử có khả năng
xử lý dữ liệu và chuyển đổi dữ liệu thành những thông tin hữu ích. Máy tính có được
các khả năng này là nhờ sự kết hợp giữa các vi mạch điện tử và các tập lệnh do các
lập trình viên tạo nên.
/codegym.vn/ - 5
Có thể phân loại máy tính theo nhiều tiêu chí khác nhau, chẳng hạn như về mục đích
sử dụng, kích thước, cấu tạo hoặc công nghệ. Một số loại máy tính thường được nhắc
đến là: Máy tính tính lớn (mainframe), máy tính nhỏ (minicomputer), siêu máy tính
(supercomputer), máy vi tính (microcomputer) hoặc máy tính cá nhân (personal
computer), máy tính xách tay (laptop). Các thiết bị như điện thoại thông minh (smart
phone) hoặc đồng hồ thông minh (smart watch) cũng là một dạng máy tính.
Thông thường, khi người ta nói đến một hệ thống máy tính thì bao gồm 3 thành phần
là: Phần cứng, Phần mềm và Người dùng.
3.2. Phần cứng
Các thành phần vật lý kiến tạo lên máy tính được gọi là phần cứng. Phần cứng là bất
cứ bộ phận nào của máy tính mà bạn có thể chạm tay vào được. Phần cứng máy tính
bao gồm các thiết bị điện tử tích hợp với nhau được sử dụng để điều khiển các hoạt
động nhập xuất và xử lí của máy tính. Một số phần cứng cơ bản bao gồm bộ nguồn
điện, CPU (Central Processing Unit - Bộ xử lý trung tâm), RAM (Random Access
Memory – Bộ nhớ Truy xuất Ngẫu nhiên), Motherboard (Bảng mạch chính, còn gọi là
Mainboard), một số card mở rộng, thiết bị ngoại vi và các thành phần khác.
Hình 1.1: Các thành phần cấu tạo của máy tính
● Bảng mạch chính (Motherboard): Là bảng mạch quan trọng nhất, có nhiệm vụ
kết nối các thành phần khác lại với nhau để hoạt động trong một thể thống nhất
● CPU – Bộ xử lý trung tâm: Có thể coi như bộ não của máy tính; thiết bị này tổ
chức và thực hiện các chỉ thị của người dùng hoặc phần mềm
/codegym.vn/ - 6
● Bộ nhớ: Là một bảng mạch điện tử nhỏ bên trong máy tính. Chương trình chạy
trên máy tính sẽ được nạp vào bộ nhớ và chạy từ đó. Bộ nhớ được phân thành
hai loại là bộ nhớ sơ cấp và bộ nhớ thứ cấp. Bộ nhớ sơ cấp còn được gọi là
bộ nhớ chính. Chúng bao gồm RAM (Random Access Memory – Bộ nhớ Truy
xuất Ngẫu nhiên) hoặc ROM (Read-Only Memory – Bộ nhớ Chỉ đọc). Bộ nhớ
thứ cấp đề cập tới các bộ lưu trữ trong hoặc ngoài được sử dụng cho các dữ
liệu bền vững như đĩa mềm, ổ băng từ, đĩa quang (CD) hoặc ổ USB, v.v.
● Thiết bị đầu vào: Cho phép nhận dữ liệu và các chỉ thị từ người dùng hoặc từ
hệ thống máy tính khác. Chẳng hạn như: bàn phím, chuột, đầu đọc đĩa CD,
camera, màn hình cảm ứng, v.v.
● Thiết bị đầu ra: Cho phép hiển thị kết quả thực thi các mệnh lệnh. Chẳng hạn
như: màn hình, máy in, loa, máy chiếu, v.v.
3.3. Phần mềm
Phần mềm máy tính là tập hợp các chương trình máy tính và các dữ liệu có liên quan
để cung cấp cho máy tính các chỉ dẫn cần thiết về những gì mà nó phải thực hiện.
Trái ngược hẳn với phần cứng, phần mềm là một thứ vô hình, chúng ta không thể
chạm được vào nó. Bạn có thể liên tưởng rằng máy tính như một thực thể sống với
phần xác (đó là phần cứng) và phần hồn (đó là phần mềm). Với phần cứng, bạn có
thể lắp ráp thành một máy tính. Tuy nhiên, máy tính cần phải có phần mềm để thực
hiện các nhiệm vụ của mình.
Phần mềm máy tính có thể phân ra thành một số loại chính như phần mềm hệ thống,
phần mềm ứng dụng và phần mềm lập trình.
● Phần mềm hệ thống: là những phần mềm máy tính được thiết kế để vận hành
các thiết bị phần cứng và cung cấp, duy trì một nền tảng để chạy các phần
mềm ứng dụng. Chẳng hạn như: Hệ điều hành, phần mềm diệt vi-rút, phần
mềm quản lý mạng cho máy tính, v.v.
● Phần mềm ứng dụng (hoặc còn gọi tắt là ứng dụng): được thiết kế để giúp
người dùng thực hiện một hay nhiều các công việc cụ thể nào đó. Ví dụ như
các phần mềm doanh nghiệp, phần mềm kế toán, bộ phần mềm văn phòng,
phần mềm xử lý ảnh và các phần mềm nghe nhạc, xem video, v.v.
● Phần mềm lập trình, những phần mềm này giúp các lập trình viên máy tính tạo
ra các phần mềm khác. Ví dụ như phần mềm để viết mã nguồn, phần mềm để
biên dịch, phần mềm để cài đặt, v.v.
3.4. Hệ điều hành
Hệ điều hành là một dạng phần mềm đặc biệt, trực tiếp được cài đặt lên các phần
cứng để điều khiển chúng, cung cấp môi trường để các phần mềm khác có thể hoạt
động, và đồng thời cũng cung cấp môi trường để người dùng tương tác với máy tính.
/codegym.vn/ - 7
Hình 1.2: Mối liên quan giữa Người dùng - Ứng dụng – Hệ điều hành – Phần cứng
Có rất nhiều các hệ điều hành khác nhau được sử dụng cho các hệ thống máy tính,
có thể kể đến như: Microsoft Windows, MacOS, các dòng Linux khác nhau (như
Ubuntu, Debian, CentOS, Fedora…). Ngoài ra, còn có các hệ điều hành dành riêng
cho các thiết bị di động, chẳng hạn như: Android, iOS, KaiOS,… Thậm chí, ngày nay,
một số đơn vị đã nghĩ đến việc hợp nhất các hệ điều hành cho máy tính cá nhân với
các hệ điều hành dành cho các thiết bị di động để gia tăng tính tương thích.
3.5. Người dùng
Những người sử dụng máy tính để làm các công việc cụ thể nào đó được gọi là Người
dùng (User). Do máy tính chỉ là các công cụ, cho nên chúng cần phải có người điều
khiển thì mới đem lại các lợi ích cụ thể. Người dùng có thể được phân loại là power
user (Người dùng quyền lực), đó là những người dùng hiểu biết về hệ thống máy tính,
hoặc end user (Người dùng cuối), đó là những người dùng không cần có quá nhiều
hiểu biết về máy tính, mà chỉ cần học cách sử dụng các phần mềm đã được tạo sẵn
để xử lý các nghiệp vụ hằng ngày.
3.6. Dữ liệu
Dữ liệu bao gồm các sự việc độc lập hoặc các mẩu thông tin, bản thân chúng thường
không mang lại ý nghĩa cho con người. Máy tính đọc và lưu trữ dữ liệu ở dạng như
văn bản, số liệu, hình ảnh hoặc âm than...
Lời mở đầu ................................................................................................................ 1
Hướng dẫn sử dụng sách ........................................................................................ 2
Chương 1 - Nhập môn lập trình ............................................................................... 5
1. Mục tiêu .......................................................................................................................... 5
2. Giới thiệu........................................................................................................................ 5
3. Máy tính hoạt động như thế nào?................................................................................ 5
4. Phần mềm được tạo ra như thế nào? ......................................................................... 9
5. Quy trình tạo ra một phần mềm ................................................................................. 10
6. Các vai trò trong lập trình ........................................................................................... 11
7. Ngôn ngữ lập trình ...................................................................................................... 13
8. Thuật toán .................................................................................................................... 14
9. Mô tả thuật toán bằng mã giả ..................................................................................... 15
10. Mô tả thuật toán bằng lưu đồ ................................................................................... 16
11. Một số cấu trúc thường gặp trong thuật toán ........................................................ 17
12. Ngôn ngữ lập trình JavaScript ................................................................................. 22
13. Chương trình đầu tiên .............................................................................................. 22
14. Cài đặt công cụ lập trình........................................................................................... 23
15. Bài thực hành ............................................................................................................ 24
16. Bài tập......................................................................................................................... 25
17. Bài kiểm tra ................................................................................................................ 26
18. Tổng kết...................................................................................................................... 28
Chương 2 - Biến, kiểu dữ liệu và toán tử ............................................................. 30
1. Mục tiêu ........................................................................................................................ 30
2. Giới thiệu...................................................................................................................... 30
3. Biến ............................................................................................................................... 30
4. Kiểu dữ liệu .................................................................................................................. 34
5. Phép toán toán học ..................................................................................................... 36
6. Phép toán logic ............................................................................................................ 40
7. Phép toán so sánh....................................................................................................... 43
8. Đọc dữ liệu từ bên ngoài ............................................................................................ 44
9. Hiển thị dữ liệu ............................................................................................................ 46
10. Mã sạch ...................................................................................................................... 47
11. Các lỗi thường gặp ................................................................................................... 48
13. Bài thực hành ............................................................................................................ 49
14. Bài tập......................................................................................................................... 50
15. Bài kiểm tra ................................................................................................................ 50
16. Tổng kết...................................................................................................................... 52
Chương 3 - Câu lệnh điều kiện .............................................................................. 53
1. Mục tiêu ........................................................................................................................ 53
2. Giới thiệu...................................................................................................................... 53
3. Cấu trúc điều kiện ....................................................................................................... 54
4. Cấu trúc điều kiện if-else ............................................................................................ 54
5. Cấu trúc điều kiện if-else lồng nhau .......................................................................... 56
6. Cấu trúc điều kiện if-else bậc thang .......................................................................... 57
7. Cấu trúc điều kiện switch-case .................................................................................. 58
8. Mã sạch ........................................................................................................................ 61
9. Các lỗi thường gặp ..................................................................................................... 62
10. Bài thực hành ............................................................................................................ 66
11. Bài tập......................................................................................................................... 77
12. Bài kiểm tra ................................................................................................................ 77
13. Tổng kết...................................................................................................................... 79
Chương 4 - Câu lệnh lặp ........................................................................................ 80
1. Mục tiêu ........................................................................................................................ 80
2. Giới thiệu...................................................................................................................... 80
3. Câu lệnh lặp ................................................................................................................. 80
4. Câu lệnh lặp while ....................................................................................................... 81
5. Câu lệnh lặp do-while.................................................................................................. 82
6. Câu lệnh lặp for ........................................................................................................... 82
7. Câu lệnh lặp lồng nhau ............................................................................................... 84
8. Câu lệnh break ............................................................................................................. 85
9. Câu lệnh continue ....................................................................................................... 86
10. Mã sạch ...................................................................................................................... 86
11. Các lỗi thường gặp ................................................................................................... 87
12. Bài thực hành ............................................................................................................ 88
13. Bài tập......................................................................................................................... 93
14. Bài kiểm tra ................................................................................................................ 94
15. Tổng kết...................................................................................................................... 96
Chương 5 - Mảng .................................................................................................... 97
1. Mục tiêu ........................................................................................................................ 98
2. Giới thiệu...................................................................................................................... 98
3. Mảng ............................................................................................................................. 98
4. Duyệt qua các phần tử của mảng ............................................................................ 102
5. Mảng nhiều chiều ...................................................................................................... 103
6. Các thao tác thông dụng với mảng ......................................................................... 106
7. Mã sạch ...................................................................................................................... 108
8. Các lỗi thường gặp ................................................................................................... 109
9. Bài thực hành ............................................................................................................ 110
10. Bài tập....................................................................................................................... 115
11. Bài kiểm tra .............................................................................................................. 116
12. Tổng kết.................................................................................................................... 118
Chương 6 - Hàm .................................................................................................... 119
1. Mục tiêu ...................................................................................................................... 119
2. Giới thiệu.................................................................................................................... 119
3. Hàm ............................................................................................................................. 120
4. Giá trị trả về của hàm ................................................................................................ 124
5. Tham số của hàm ...................................................................................................... 125
6. Phạm vi của biến ....................................................................................................... 125
7. Hàm đệ quy ................................................................................................................ 126
8. Mã sạch ...................................................................................................................... 127
9. Các lỗi thường gặp ................................................................................................... 129
10. Bài thực hành .......................................................................................................... 130
11. Bài tập....................................................................................................................... 133
12. Bài kiểm tra .............................................................................................................. 134
13. Tổng kết.................................................................................................................... 136
Chương 7 - Thuật toán tìm kiếm .......................................................................... 137
1. Mục tiêu ...................................................................................................................... 137
2. Giới thiệu.................................................................................................................... 137
3. Tìm kiếm tuyến tính ................................................................................................... 137
4. Tìm kiếm nhị phân ..................................................................................................... 139
5. Độ phức tạp của thuật toán ...................................................................................... 142
6. Các lỗi thường gặp ................................................................................................... 144
7. Bài thực hành ............................................................................................................ 146
8. Bài tập......................................................................................................................... 150
9. Bài kiểm tra ................................................................................................................ 150
10. Tổng kết.................................................................................................................... 151
Chương 8 - Thuật toán sắp xếp ........................................................................... 152
1. Mục tiêu ...................................................................................................................... 152
2. Giới thiệu.................................................................................................................... 152
3. Thuật toán sắp xếp nổi bọt ....................................................................................... 152
4. Thuật toán sắp xếp chèn .......................................................................................... 155
5. Thuật toán sắp xếp chọn .......................................................................................... 157
6. Các lỗi thường gặp ................................................................................................... 159
8. Bài thực hành ............................................................................................................ 159
9. Bài tập......................................................................................................................... 161
10. Bài kiểm tra .............................................................................................................. 162
11. Tổng kết.................................................................................................................... 162
Tổng kết ................................................................................................................. 164
Đội ngũ tác giả ...................................................................................................... 167
Lời mở đầu
Với sự phát triển nhanh chóng của ngành Công nghệ Thông tin trong những năm gần
đây, nhu cầu nhân sự trong ngành này tăng mạnh ở cả quy mô thế giới lẫn Việt Nam.
Học lập trình không còn là một lựa chọn xa lạ với nhiều thanh niên Việt Nam nữa.
Càng ngày càng có nhiều bạn trẻ muốn tìm đến với công việc lập trình, bắt đầu bằng
việc tham gia vào các trường đào tạo chính quy, các trung tâm dạy lập trình, hoặc tự
học.
Với hàng chục năm làm việc trong ngành Công nghệ Thông tin và trực tiếp tham gia
vào công tác đào tạo lập trình viên, chúng tôi nhận ra rằng các bạn trẻ gặp rất nhiều
khó khăn trong những thời điểm đầu tiên tiếp xúc với công việc này. Có rất nhiều rào
cản khiến cho việc học lập trình trở nên khó khăn hơn, có thể kể đến như do chương
trình đào tạo được thiết kế không tốt, giáo trình khó hiểu, chương trình không sát với
thực tế, giáo trình không giúp người học xây dựng được kiến thức một cách bài bản
và vững vàng. Bên cạnh đó, mặc dù có rất nhiều sách dạy lập trình bằng tiếng Anh
rất tốt, nhưng nhiều người lại không sử dụng được tiếng Anh. Đó là những thiệt thòi
và khó khăn mà những bạn trẻ đang muốn tìm đến ngành nghề lập trình đang gặp
phải hiện nay.
Với mục tiêu giúp những người mới bắt đầu học lập trình được thuận lợi hơn, đội ngũ
Giảng viên của Hệ thống Đào tạo Lập trình Hiện đại CodeGym đã biên soạn nên cuốn
sách này và gửi đến các bạn. Cuốn sách này dành cho những người bắt đầu từ con
số 0 và mong muốn phát triển năng lực lập trình trong thời gian nhanh nhất. Cuốn
cẩm nang được thiết kế một cách khoa học để giúp người học tự xây dựng năng lực
của mình thông qua từng hoạt động một. Không có quá nhiều thuật toán phức tạp,
nhanh chóng làm ra được các sản phẩm để chứng minh sự tiến bộ của người học,
sử dụng ngôn ngữ lập trình Javascript với độ tương tác cao là những đặc điểm nổi
bật của cuốn cẩm nang này.
Mặc dù đội ngũ tác giả chúng tôi đã nỗ lực trong việc hoàn thiện cuốn sách này với
tiêu chí dễ hiểu, khoa học và hiệu quả dành cho người mới bắt đầu, tuy nhiên khó để
tránh khỏi các sai sót trong quá trình biên soạn. Vì vậy, chúng tôi rất mong nhận được
các ý kiến phản hồi và đóng góp của mọi người thông qua email info@codegym.vn.
Cảm ơn và chúc các bạn gặt hái được nhiều giá trị từ cuốn sách này.
Trân trọng!
Đội ngũ tác giả.
/codegym.vn/ - 1
Hướng dẫn sử dụng sách
Cuốn sách này hướng đến mục tiêu giúp người học phát triển cả kiến thức lẫn kỹ
năng. Cho nên, để khai thác cuốn sách một cách hiệu quả nhất, người học nên thực
hiện các công việc sau đây:
● Ghi chép: Cần có một cuốn sổ để ghi chép, hoặc sử dụng các công cụ số như
các trình soạn thảo hoặc Mind Map. Việc ghi chép sẽ giúp người học đảm bảo
được mức độ hiểu của mình đối với các khái niệm quan trọng. Ghi chép cũng
giúp cho người đọc ghi nhớ tốt hơn các khái niệm.
● Tìm kiếm thông tin ngoài cuốn sách: Có những khái niệm mà người đọc
không hiểu được, ngay cả khi đã đọc đi đọc lại nhiều lần. Người đọc nên tìm
kiếm thông tin về các khái niệm đó ở những nguồn khác ngoài cuốn sách, để
tìm cách hiểu chúng. Lí do là bởi vì có nhiều cách để trình bày một khái niệm
nào đó, các tác giả mặc dù đã cố gắng để trình bày chúng một cách dễ hiểu và
phù hợp với phần đông các độc giả, nhưng có thể ở một vài chỗ và đối với một
vài người thì vẫn bị khó hiểu. Đừng đầu hàng, mà nên tìm cách để hiểu chúng
ở phạm vi ngoài cuốn sách.
● Luyện tập: Thực hành là thao tác bắt buộc để có thể phát triển kỹ năng. Người
học không thể có được kỹ năng tốt nếu chỉ đọc cuốn sách từ đầu tới cuối mà
không thực hành trong thực tế. Việc thực hành nên tăng theo cấp độ từ dễ đến
khó. Đối với các bài thực hành có hướng dẫn, người học có thể làm theo các
hướng dẫn đó. Nhưng sau khi làm theo thì cần phải tiếp tục thực hành để mình
có thể tự làm được mà không cần làm theo hướng dẫn.
● Tổng kết sau mỗi chương: Sau khi hoàn thành mỗi chương, người học cần
xem lại phần ghi chép của mình, đối chiếu với các mục tiêu để xem thử mình
đã phát triển được những năng lực gì. Nếu có phần nào mình chưa hiểu hoặc
chưa làm được thì hãy cố gắng tìm thêm sự trợ giúp để có thể giải quyết đầy
đủ.
Cuốn sách này bao gồm 8 chương, lần lượt đề cập đến các khái niệm nền tảng trong
lập trình. Tuy nhiên, nội dung của các chương không hoàn toàn được trình bày một
cách tuyến tính, mà được tổ chức theo lối tích hợp. Nghĩa là một khái niệm có thể
được trình bày trải đều qua nhiều chương khác nhau, giúp cho người học có cơ hội
cọ xát nhiều lần, lặp đi lặp lại các thao tác thực hành, giúp xây dựng được một nền
tảng hiểu biết và kỹ năng bền vững. Sau đây là cấu trúc của mỗi chương, người đọc
nên hiểu cấu trúc này để có cách khai thác nội dung một cách hiệu quả nhất:
● Mục tiêu: Là nơi định nghĩa rõ ràng và ngắn gọn về những kiến thức và kỹ
năng mà người đọc sẽ xây dựng được khi hoàn thành mỗi chương. Người học
cần ghi chép lại mục tiêu của từng chương, để sau này tự đánh giá lại xem
mình đã đạt được các mục tiêu đó hay chưa. Nếu không nắm được các mục
/codegym.vn/ - 2
tiêu thì người học sẽ rơi vào trạng thái hoang mang, bởi vì không biết mình
đang hướng đến điều gì.
● Giới thiệu: Là nơi trình bày ngắn gọn về mục đích và nội dung của chương.
Phần này giúp người học trả lời được câu hỏi WHAT (tôi đang học cái gì?) và
WHY (thấy được sự liên quan giữa những khái niệm mình sẽ học với các ứng
dụng thực tế).
● Các mục nội dung: Phần chính của mỗi chương sẽ trình bày về các khái niệm
và ứng dụng của chúng. Mỗi khái niệm sẽ được trình bày đầy đủ định nghĩa,
diễn giải, các tình huống ứng dụng, các vị dụ cụ thể và những thông tin khác
xung quanh khái niệm đó.
● Mã sạch: Mã sạch là một phần đặc biệt của cuốn sách để định hướng người
đọc trở thành một lập trình viên tốt ngay từ đầu. Trong lập trình, có nhiều cách
để giải quyết một vấn đề, nhưng chỉ có một số cách thực sự gọn gàng và hiệu
quả. Mã sạch là cách để chúng ta tổ chức mã nguồn thực sự khoa học và
hướng đến sự hiệu quả nói chung.
● Các lỗi thường gặp: Phần này liệt kê các lỗi mà một lập trình viên non kinh
nghiệm thường mất nhiều thời gian để nhận ra và khắc phục. Chúng ta không
thể liệt kê hết tất cả các lỗi có thể xảy ra khi làm việc với một cấu trúc lập trình
nào đó, tuy nhiên việc nhận biết được các lỗi thường gặp sẽ giúp cho những
người mới học lập trình tiết kiệm được khá nhiều thời gian.
● Bài thực hành: Đây là nội dung được thiết kế theo hướng “cầm tay chỉ việc”,
có tác dụng giúp người đọc bắt đầu rèn luyện kỹ năng. Các bài thực hành được
thiết kế theo hướng tăng dần về độ khó và quy mô, tương ứng với sự kỳ vọng
tăng trưởng về kỹ năng của người đọc. Kết thúc phần Bài thực hành, người
đọc có thể bắt tay vào tự thực hiện các bài tập để nâng cao hơn nữa kỹ năng
của mình.
● Bài tập: Là cách thức để người học tự rèn luyện kỹ năng. Nếu nhìn vào lộ trình
tổng quan, chúng ta sẽ đi từ việc học lí thuyết (thông qua phần Mục tiêu, Giới
thiệu, Các khái niệm, Các ví dụ,…) rồi sau đó đến rèn luyện kỹ năng (thông
qua phần Thực hành và phần Bài tập). Khi hoàn thành phần Bài tập thì kỹ năng
của người đọc sẽ thành thạo hơn so với khi chỉ mới hoàn thành phần Bài thực
hành.
● Bài kiểm tra: Đây là mục giúp người đọc tự đánh giá lại được kiến thức và kỹ
năng của mình sau khi hoàn thành được một chương. Đáp án của các câu hỏi
được đặt ở phần cuối của bài kiểm tra, giúp người học tự chấm điểm được.
Nếu có những khái niệm nào mà mình chưa trả lời được thì người học nên
quay trở lại phần trước đó để đọc kỹ hơn.
/codegym.vn/ - 3
● Tổng kết: Là nơi giúp người học rà soát lại nhanh những kiến thức và kỹ năng
mình đã học được. Phần tổng kết này được viết sẵn với nội dung khá ngắn
gọn, nhưng chúng tôi vẫn khuyến khích người học nên tự viết lại phần tổng kết
của riêng mình với mức độ chi tiết hơn theo cách hiểu của mình. Người học
cũng tự đối chiếu lại với các mục tiêu được liệt kê ở đầu chương, để xem mình
đã đạt được các mục tiêu đó hay chưa.
/codegym.vn/ - 4
Chương 1 - Nhập môn lập trình
Các khái niệm căn bản về máy tính và lập trình
1. Mục tiêu
● Giải thích được tổng quan cách hoạt động của máy tính
● Phân biệt được phần cứng và phần mềm
● Liệt kê được một số phần cứng thông dụng
● Liệt kê được một số phần mềm thông dụng
● Biết được vai trò của phần cứng, phần mềm và người dùng
● Trình bày được tổng quan quá trình tạo ra một phần mềm
● Giải thích được vai trò và ý nghĩa của ngôn ngữ lập trình
● Biết được tổng quan quy trình sản xuất một phần mềm
● Phân biệt được các vai trò thông dụng trong một quy trình sản xuất phần mềm
● Giải thích được ý nghĩa của thuật toán
● Mô tả được thuật toán bằng mã giả
● Mô tả được thuật toán bằng lưu đồ
● Cài đặt được phần mềm để bắt đầu viết mã
● Tạo được ứng dụng phần mềm đầu tiên
2. Giới thiệu
Trong chương đầu tiên của cuốn sách, chúng ta sẽ tìm hiểu về những khái niệm căn
bản nhất về thế giới máy tính và lập trình. Đây là những khái niệm cơ bản nhất, cần
thiết nhất trước khi bắt đầu viết những dòng mã đầu tiên. Chúng ta sẽ tìm hiểu về
những khái niệm liên quan đến máy tính, phần mềm, người dùng, công việc sản xuất
phần mềm, các bước để làm ra phần mềm. Cuối cùng, chúng ta sẽ cài đặt môi trường
và chuẩn bị cho việc tạo ra một phần mềm đầu tiên.
Kết thúc chương này, chúng ta có thể bắt tay vào viết được những dòng mã đầu tiên
để tạo ra các phần mềm.
3. Máy tính hoạt động như thế nào?
3.1. Định nghĩa máy tính
Thuật ngữ máy tính thường được sử dụng để chỉ đến các thiết bị điện tử có khả năng
xử lý dữ liệu và chuyển đổi dữ liệu thành những thông tin hữu ích. Máy tính có được
các khả năng này là nhờ sự kết hợp giữa các vi mạch điện tử và các tập lệnh do các
lập trình viên tạo nên.
/codegym.vn/ - 5
Có thể phân loại máy tính theo nhiều tiêu chí khác nhau, chẳng hạn như về mục đích
sử dụng, kích thước, cấu tạo hoặc công nghệ. Một số loại máy tính thường được nhắc
đến là: Máy tính tính lớn (mainframe), máy tính nhỏ (minicomputer), siêu máy tính
(supercomputer), máy vi tính (microcomputer) hoặc máy tính cá nhân (personal
computer), máy tính xách tay (laptop). Các thiết bị như điện thoại thông minh (smart
phone) hoặc đồng hồ thông minh (smart watch) cũng là một dạng máy tính.
Thông thường, khi người ta nói đến một hệ thống máy tính thì bao gồm 3 thành phần
là: Phần cứng, Phần mềm và Người dùng.
3.2. Phần cứng
Các thành phần vật lý kiến tạo lên máy tính được gọi là phần cứng. Phần cứng là bất
cứ bộ phận nào của máy tính mà bạn có thể chạm tay vào được. Phần cứng máy tính
bao gồm các thiết bị điện tử tích hợp với nhau được sử dụng để điều khiển các hoạt
động nhập xuất và xử lí của máy tính. Một số phần cứng cơ bản bao gồm bộ nguồn
điện, CPU (Central Processing Unit - Bộ xử lý trung tâm), RAM (Random Access
Memory – Bộ nhớ Truy xuất Ngẫu nhiên), Motherboard (Bảng mạch chính, còn gọi là
Mainboard), một số card mở rộng, thiết bị ngoại vi và các thành phần khác.
Hình 1.1: Các thành phần cấu tạo của máy tính
● Bảng mạch chính (Motherboard): Là bảng mạch quan trọng nhất, có nhiệm vụ
kết nối các thành phần khác lại với nhau để hoạt động trong một thể thống nhất
● CPU – Bộ xử lý trung tâm: Có thể coi như bộ não của máy tính; thiết bị này tổ
chức và thực hiện các chỉ thị của người dùng hoặc phần mềm
/codegym.vn/ - 6
● Bộ nhớ: Là một bảng mạch điện tử nhỏ bên trong máy tính. Chương trình chạy
trên máy tính sẽ được nạp vào bộ nhớ và chạy từ đó. Bộ nhớ được phân thành
hai loại là bộ nhớ sơ cấp và bộ nhớ thứ cấp. Bộ nhớ sơ cấp còn được gọi là
bộ nhớ chính. Chúng bao gồm RAM (Random Access Memory – Bộ nhớ Truy
xuất Ngẫu nhiên) hoặc ROM (Read-Only Memory – Bộ nhớ Chỉ đọc). Bộ nhớ
thứ cấp đề cập tới các bộ lưu trữ trong hoặc ngoài được sử dụng cho các dữ
liệu bền vững như đĩa mềm, ổ băng từ, đĩa quang (CD) hoặc ổ USB, v.v.
● Thiết bị đầu vào: Cho phép nhận dữ liệu và các chỉ thị từ người dùng hoặc từ
hệ thống máy tính khác. Chẳng hạn như: bàn phím, chuột, đầu đọc đĩa CD,
camera, màn hình cảm ứng, v.v.
● Thiết bị đầu ra: Cho phép hiển thị kết quả thực thi các mệnh lệnh. Chẳng hạn
như: màn hình, máy in, loa, máy chiếu, v.v.
3.3. Phần mềm
Phần mềm máy tính là tập hợp các chương trình máy tính và các dữ liệu có liên quan
để cung cấp cho máy tính các chỉ dẫn cần thiết về những gì mà nó phải thực hiện.
Trái ngược hẳn với phần cứng, phần mềm là một thứ vô hình, chúng ta không thể
chạm được vào nó. Bạn có thể liên tưởng rằng máy tính như một thực thể sống với
phần xác (đó là phần cứng) và phần hồn (đó là phần mềm). Với phần cứng, bạn có
thể lắp ráp thành một máy tính. Tuy nhiên, máy tính cần phải có phần mềm để thực
hiện các nhiệm vụ của mình.
Phần mềm máy tính có thể phân ra thành một số loại chính như phần mềm hệ thống,
phần mềm ứng dụng và phần mềm lập trình.
● Phần mềm hệ thống: là những phần mềm máy tính được thiết kế để vận hành
các thiết bị phần cứng và cung cấp, duy trì một nền tảng để chạy các phần
mềm ứng dụng. Chẳng hạn như: Hệ điều hành, phần mềm diệt vi-rút, phần
mềm quản lý mạng cho máy tính, v.v.
● Phần mềm ứng dụng (hoặc còn gọi tắt là ứng dụng): được thiết kế để giúp
người dùng thực hiện một hay nhiều các công việc cụ thể nào đó. Ví dụ như
các phần mềm doanh nghiệp, phần mềm kế toán, bộ phần mềm văn phòng,
phần mềm xử lý ảnh và các phần mềm nghe nhạc, xem video, v.v.
● Phần mềm lập trình, những phần mềm này giúp các lập trình viên máy tính tạo
ra các phần mềm khác. Ví dụ như phần mềm để viết mã nguồn, phần mềm để
biên dịch, phần mềm để cài đặt, v.v.
3.4. Hệ điều hành
Hệ điều hành là một dạng phần mềm đặc biệt, trực tiếp được cài đặt lên các phần
cứng để điều khiển chúng, cung cấp môi trường để các phần mềm khác có thể hoạt
động, và đồng thời cũng cung cấp môi trường để người dùng tương tác với máy tính.
/codegym.vn/ - 7
Hình 1.2: Mối liên quan giữa Người dùng - Ứng dụng – Hệ điều hành – Phần cứng
Có rất nhiều các hệ điều hành khác nhau được sử dụng cho các hệ thống máy tính,
có thể kể đến như: Microsoft Windows, MacOS, các dòng Linux khác nhau (như
Ubuntu, Debian, CentOS, Fedora…). Ngoài ra, còn có các hệ điều hành dành riêng
cho các thiết bị di động, chẳng hạn như: Android, iOS, KaiOS,… Thậm chí, ngày nay,
một số đơn vị đã nghĩ đến việc hợp nhất các hệ điều hành cho máy tính cá nhân với
các hệ điều hành dành cho các thiết bị di động để gia tăng tính tương thích.
3.5. Người dùng
Những người sử dụng máy tính để làm các công việc cụ thể nào đó được gọi là Người
dùng (User). Do máy tính chỉ là các công cụ, cho nên chúng cần phải có người điều
khiển thì mới đem lại các lợi ích cụ thể. Người dùng có thể được phân loại là power
user (Người dùng quyền lực), đó là những người dùng hiểu biết về hệ thống máy tính,
hoặc end user (Người dùng cuối), đó là những người dùng không cần có quá nhiều
hiểu biết về máy tính, mà chỉ cần học cách sử dụng các phần mềm đã được tạo sẵn
để xử lý các nghiệp vụ hằng ngày.
3.6. Dữ liệu
Dữ liệu bao gồm các sự việc độc lập hoặc các mẩu thông tin, bản thân chúng thường
không mang lại ý nghĩa cho con người. Máy tính đọc và lưu trữ dữ liệu ở dạng như
văn bản, số liệu, hình ảnh hoặc âm than...
 





