Trường Đại học Công nghệ
Đại học Quốc gia Hà Nội
Tetris
Sudoku
Oẳn tù tì
Cờ ca-rô
Ví dụ: Tetris, Sudoku, Oẳn tù tì, Cờ ca-rô
Vấn đề = Khó khăn / Khác biệt / Thách thức cần giải pháp
Tư duy bao gồm:
Chi tiêu hàng tháng
Bài toán: Bạn có X triệu VND/tháng để chi trả sinh hoạt phí ở Hà Nội.
Yếu tố: Chi phí bất ngờ, nhu cầu thiết yếu.
Thuật toán?
Bài toán: Tìm đường đi tối ưu từ A (Ngã Tư Sở) đến B (VNU-UET).
Yếu tố: Tắc đường, thời tiết, phương tiện di chuyển.
Thuật toán?
Quá trình hiểu vấn đề, khám phá các giải pháp khả thi và thiết kế thuật toán rõ ràng, từng bước để giải quyết.
Tình huống cần giải quyết.
Cách tiếp cận để đạt mục tiêu.
Các bước giải rõ ràng.
| Khía cạnh | Con người | Máy tính |
|---|---|---|
| Sáng tạo | Trực giác | Không sáng tạo |
| Quy mô | Vấn đề nhỏ | Dữ liệu lớn |
| Tốc độ | Chậm | Rất nhanh |
| Độ chính xác | Dễ sai | Luôn đúng |
Là cách tiếp cận giải quyết vấn đề bằng cách sử dụng các khái niệm trong Khoa học máy tính để thiết kế giải pháp .
Chia nhỏ vấn đề lớn thành các phần nhỏ, dễ quản lý.
Ví dụ: tính diện tích hình chữ nhật
1. Nhập chiều dài & chiều rộng
2. Tính diện tích = dài * rộng
3. Hiển thị kết quả
Tìm sự lặp lại hoặc điểm chung.
Ví dụ: viết các số chẵn trong khoảng 1 đến 10
for i in range(1, 11):
if i % 2 == 0:
print(i)
→ Quy luật: số chẵn
Tập trung vào chi tiết quan trọng, bỏ qua phần không cần.
Ví dụ: hàm cộng hai số
def add_numbers(a, b):
return a + b
print(add_numbers(5, 7))
→ Chỉ quan tâm đến kết quả: a+b
Tạo quy trình từng bước để giải quyết vấn đề.
Ví dụ: tìm số lớn nhất trong danh sách
def find_max(numbers):
max_num = numbers[0]
for n in numbers:
if n > max_num:
max_num = n
return max_num
→ Thuật toán = công thức chính xác để giải bài toán
Scratch tại code.org
Cho một tập lệnh và một nhiệm vụ → viết chuỗi lệnh để thực hiện.
Ví dụ: Scratch – công cụ lập trình cho trẻ em.
Ví dụ: chương trình Python tương ứng
Quy trình giống nhau: cùng nhiệm vụ, nhưng tập lệnh khác.
Python dùng câu lệnh văn bản thay cho khối lệnh kéo thả.
Đến lượt bạn thử code.org – Bài 1.
1, -2.5True, False"Hello", "Hôm nay trời đẹp"[1,2,3]('Toán', 8.4){'Toán':8.4, 'Lý':6.5}2.3, (3*7+2)*0.1Dữ liệu có thể là:
1, -2.5True, False"Hello", "Hôm nay trời đẹp"[1,2,3]('Toán', 8.4){'Toán':8.4, 'Lý':6.5}xBiến là tên để tham chiếu dữ liệu.
x = 5
x = 10 * 2
numbers = [1, 2, 3]
numbers giờ là tên của danh sách [1,2,3]
Sử dụng biến trước khi định nghĩa
Sau khi định nghĩa
Ví dụ: Python triển khai vòng lặp tương ứng
Có thể làm nhiều việc bên trong vòng for.
def move_forward():
print('tiến')
for i in range(3):
move_forward()
print(i)
→ Python cho phép lặp + thêm hành động.
Dùng ít khối nhất để ong lấy hết mật hoa.
Dùng ít khối nhất để zombie đến được hoa.
Chia nhỏ bài toán thành các nhiệm vụ con và tìm quy luật.
Bạn có thể luyện tập qua các trò chơi:
Kiểm tra từng đám mây → có hoa thì lấy mật.
Lấy hết mật từ hoa hoặc làm mật ong từ tổ → kiểm tra từng ô.
Lấy hết mật từ hoa hoặc làm mật ong từ tổ → kiểm tra từng ô.
x = 5
if x > 0:
print("x dương")
else:
print("x không dương")
Lập trình bằng khối lệnh (Scratch) vs. văn bản (Python).
Đừng lo! Hãy thử Scratch tại code.org.
Luyện tập dần dần, bạn sẽ thấy quen!
Happy coding! 🎉
python để vào chế độ tương tác.quit().File add.py:
x = 'Hello'
y = x + ' World'
Lệnh:
C:\> python add.py
→ Thực hiện lệnh nhưng chưa in ra kết quả.
Sửa add.py:
x = 'Hello'
y = x + ' World'
print("y = " + y)
Kết quả:
C:\> python add.py
y = Hello World
guess.py:
user_guess = input('Tôi đang nghĩ gì? ')
print('Sai rồi, tôi không nghĩ đến ' + user_guess)
Kết quả:
C:\> python guess.py
Tôi đang nghĩ gì? cat
Sai rồi, tôi không nghĩ đến cat
C:\> python
Python 3.10.0 ...
>>> x = 'Hello'
>>> y = x + ' World'
>>> y
'Hello World'
Dùng import add để chạy file add.py.
# add.py
x = 'Hello'
y = x + ' World'
print("y = " + y)
>>> import add
y = Hello World
→ Hãy cài Python và thử ngay 🎉
Dùng các IDE online:
Dùng Google Colab để chạy Jupyter Notebook trực tuyến.
Cứ bình tĩnh & vui vẻ khi lập trình!