Chuyên mục
Học kỳ Mùa thu 2021 Khám phá Khoá học Python Blog

Dự án: “Nhà thám hiểm và cánh cửa bí mật”

  1. Kiến thức lập trình 

Sau khi học về câu điều kiện và vòng lặp, chúng ta đã có thể tạo được một game nhập vai đơn giản giống như bạn Hoàng Long. Một số kiến thức cần thiết để áp dụng trong game mà các bạn học sinh cần nhớ: 

  • Sử dụng Thonny để tạo một game đơn giản bằng Python.
  • Câu lệnh input() để nhập dữ liệu trong Python.
  • Câu lệnh print() để in thông báo ra màn hình.
  • Câu điều kiện với if, elif, và else trong Python.
  • Kiểu dữ liệu boolean trong Python với so sánh ==.
  • Thư viện random để tạo số ngẫu nhiên.
  • Vòng lặp while trong Python.
  1. Hành trình đầy thử thách của nhân vật trong game

Cốt truyện game là hành trình hết sức khó khăn của một nhà thám hiểm vô tình đi lạc vào một tòa lâu đài cổ kính. Xung quanh là không gian tối tăm, tĩnh mịch không một tiếng động, bạn ấy vừa hoang mang, vừa lo sợ khi trên tay chỉ cầm một ngọn đuốc le lói ánh sáng. Liệu điều gì đang chờ nhà thám hiểm trong tòa lâu đài này đây? 

Bỗng nhiên, nhà thám hiểm tìm thấy 4 căn phòng bí ẩn. Mỗi căn phòng lại có một kết cục khác nhau cho số phận của nhà thám hiểm đó! Các bạn học sinh có thể trải nghiệm game bằng cách nhấn vào đường link sau trước khi bắt tay vào code nhé!: https://s4v.trinket.io/sites/adventure-game 

  1. Bắt tay viết code thôi nào!

Trước khi bắt đầu viết code, chúng ta sẽ xây dựng một sơ đồ để hình dung thuật toán của game. Điều này rất cần thiết để chúng ta có thể hình dung các bước giải quyết một bài toán và code dễ dàng hơn. 

Hãy bắt đầu với vị trí đầu tiên của nhà thám hiểm, đối diện với 4 cánh cửa trong tòa lâu đài tối tăm. 

Sơ đồ 1: Nhà thám hiểm chọn phòng

Căn phòng thứ nhất: nhà thám hiểm ngỡ ngàng trước vô số vàng bạc, kim cương lấp lánh. Nếu may mắn chọn đúng căn phòng này, nhà thám hiểm sẽ có thể thoát khỏi tòa lâu đài và trở nên giàu có với rương kho báu khổng lồ. 

Căn phòng thứ hai: một con yêu tinh xấu xí, đáng sợ đang ẩn náu trong căn phòng để chờ nhà thám hiểm đi đến. Nó xông ra với một cây chùy trên tay và khiến nhà thám hiểm phải bỏ mạng ngay tại căn phòng này.

Căn phòng thứ ba: một con rồng khổng lồ đang nằm ngủ ngay góc phòng. Nếu nhà thám hiểm hoảng hốt và hét lên, con rồng sẽ tỉnh giấc và phun lửa thiêu rụi nhà thám hiểm ngay lập tức. Còn khi nhà thám hiểm đứng im không nhúc nhích, con rồng vô tình thức dậy thì sẽ trông thấy và nuốt trọn nhà thám hiểm. Vậy phải làm thế nào đây? Cách an toàn nhất là nhẹ nhàng đi ra khỏi phòng. Thế nhưng không hiểu sao cánh cửa lại bị khóa. Khi đó, tay nắm cửa đột nhiên phát ra tiếng động, bẫy được kích hoạt và khiến cho nhà thám hiểm bị rơi ra khỏi tòa lâu đài. Nhà thám hiểm đã trở về thành phố mà không có kho báu. 

Sơ đồ 2: Các trường hợp trong căn phòng 3

Căn phòng thứ tư: Bước vào căn phòng cuối cùng, nhà thám hiểm sẽ gặp con nhân sư với một câu đố hóc búa. Nhân sư rất thông minh và nó bắt nhà thám hiểm đoán đúng con số nó đang nghĩ trong đầu. Con số từ 1 đến 10. Nếu đoán đúng, nhân sư sẽ cho nhà thám hiểm đi khỏi lâu đài. Nếu đoán sai, nhà thám hiểm sẽ phải ở lại làm nô lệ cho nhân sư.

Sơ đồ 3: Các trường hợp trong căn phòng 4

Để hoàn thiện trò chơi, các bạn học sinh cần hỏi thêm người chơi có muốn tiếp tục chơi hay dừng lại sau khi đã mở cửa 1 căn phòng không nhé!

  1. Tiến hành code

Bước 1: Viết giới thiệu game

Chúng ta sẽ sử dụng chương trình Thonny để thực hiện game này. Trước tiên, chúng ta cần sử dụng câu lệnh print() để in ra màn hình vị trí bắt đầu của nhà thám hiểm. Để cho game sinh động, chúng ta sẽ thêm hình vẽ lâu đài bằng các ký tự ASCII (Nguồn: https://www.asciiart.eu/buildings-and-places/castles).

LAUDAI = """
   |>>>                                                      |>>>
    |                     |>>>          |>>>                  |
    *                     |             |                     *
   / \                    *             *                    / \
  /___\                 _/ \           / \_                 /___\
  [   ]                |/   \_________/   \|                [   ]
  [ I ]                /     \       /     \                [ I ]
  [   ]_ _ _          /       \     /       \          _ _ _[   ]
  [   ] U U |        {#########}   {#########}        | U U [   ]
  [   ]====/          \=======/     \=======/          \====[   ]
  [   ]    |           |   I |_ _ _ _| I   |           |    [   ]
  [___]    |_ _ _ _ _ _|     | U U U |     |_ _ _ _ _ _|    [___]
  \===/  I | U U U U U |     |=======|     | U U U U U | I  \===/
   \=/     |===========| I   | + W + |   I |===========|     \=/
    |  I   |           |     |_______|     |           |   I  |
    |      |           |     |||||||||     |           |      |
    |      |           |   I ||vvvvv|| I   |           |      |
_-_-|______|-----------|_____||     ||_____|-----------|______|-_-_
   /________\         /______||     ||______\         /________\
  |__________|-------|________\_____/________|-------|__________|
"""
print("Bạn đang ở trong một căn phòng tối tăm nằm trong một lâu đài bí hiểm.")
print(LAUDAI)
print("Có 4 cánh cửa trước mặt bạn, bạn hãy chọn một cánh cửa để thám hiểm.")

Để yêu cầu người chơi chọn cửa để khám phá, chúng ta sẽ sử dụng câu lệnh input():

a = input("Bạn chọn cánh cửa sổ: ")

Bước 2: Viết phần lựa chọn phòng

Câu lệnh input() chuyển dữ liệu người dùng nhập thành chuỗi nên a sẽ có kiểu dữ liệu chuỗi (string). Các bạn sẽ kiểm tra giá trị người chơi nhập vào từ bàn phím để xem người chơi chọn cửa số mấy để thám hiểm. Vì a có kiểu dữ liệu chuỗi nên chúng ta sẽ kiểm tra với “1”, “2”, “3”, “4”. Chúng ta lưu ý phải có dấu "". Để kiểm tra xem hai chuỗi có giống nhau không chúng ta có thể sử dụng ==. Khi kiểm tra, kết quả trả về sẽ có kiểu dữ liệu boolean True hoặc False. Vì có bốn phòng nên chúng ta sẽ sử dụng câu lệnh điều kiện rẽ nhánh để kiểm tra xem người chơi chọn thám hiểm phòng nào:

if a == "1":
    print("Bạn đang ở phòng 1.")
elif a == "2":
    print("Bạn đang ở phòng 2.")
elif a == "3":
    print("Bạn đang ở phòng 3.")
elif a == "4":
    print("Bạn đang ở phòng 4.")
else:
    print("Xin lỗi, bạn chỉ có thể nhập 1,2,3 hoặc 4")

Câu lệnh điều kiện rẽ nhánh sẽ kiểm tra điều kiện ở câu lệnh if trước, sau đó sẽ đến điều kiện ở các câu lệnh elif. Nếu tất cả điều kiện đó đều không thoả mãn thì sẽ thực hiện dòng lệnh ở else. Dòng lệnh ở else giúp nhắc nhở người chơi phải nhập các số 1, 2, 3, hoặc 4. Chúng ta lưu ý đi sau if và  elif là điều kiện nhưng ở else thì không. Có một cách rất hay để chúng ta có thể kiểm tra code mình viết (debug) đó là sử dụng câu lệnh print(). Khi chạy code, chúng ta hãy nhập vào bất kì phòng nào và xem chương trình in ra màn hình đúng phòng không.

Sau khi kiểm tra phần chọn phòng, chúng ta sẽ thêm vào một câu lệnh để hỏi người chơi muốn chơi tiếp hay dừng lại:

exit_choice = input("Ấn Enter để chơi lại, hoặc gõ thoát để đóng trò chơi.")

Sau khi người dùng nhập câu trả lời, chúng ta phải kiểm tra và nếu người chơi muốn chơi tiếp, chúng ta sẽ thực hiện lại toàn bộ các câu lệnh ở trên. Các bạn hãy sử dụng kiến thức vòng lặp while. Trong khi biến exit_choice không phải là “thoát” thì chúng ta sẽ quay lại thực hiện toàn bộ các câu lệnh. Để kiểm tra điều kiện không phải, chúng ta sử dụng !=:

while exit_choice != "thoát":

Tuy nhiên, chương trình chúng ta vẫn còn một lỗi nho nhỏ đấy. Đó chính là khi lần đầu tiên chơi, biến exit_choice chưa được gán bất kỳ giá trị nào. Chúng ta có thể gán biến đó với bất kỳ giá trị nào, ngoại trừ “thoát” để có thể bắt đầu trò chơi:

exit_choice = "c"

Chương trình hoàn chỉnh sẽ là:

exit_choice = "c"
while exit_choice != "thoát":
    if a == "1":
        print("Bạn đang ở phòng 1.")
    elif a == "2":
        print("Bạn đang ở phòng 2.")
    elif a == "3":
        print("Bạn đang ở phòng 3.")
    elif a == "4":
        print("Bạn đang ở phòng 4.")
    else:
        print("Xin lỗi, bạn chỉ có thể nhập 1,2,3 hoặc 4")
    exit_choice = input("Ấn Enter để chơi lại, hoặc gõ thoát để đóng trò chơi.")

Bước 3: Viết phần lựa chọn từng phòng:

  • Phòng 1:

Sau khi đã chia thành từng trường hợp, chúng ta sẽ đi theo sơ đồ đã vẽ ở sơ đồ 1. Với phòng 1, chúng ta sẽ in ra màn hình chúc mừng người chơi đã chọn đúng phòng có kho báu và hỏi người chơi muốn chơi tiếp hay dừng lại:

if a == "1":
    print("Bạn đã tìm thấy một căn phòng chứa kho báu, phát tài rồi!")
    print("Bạn đã thắng cuộc, trò chơi kết thúc.")
    print("(Khởi động lại để tiếp tục khám phá.)")
  • Phòng 2:

Với phòng 2 có con yêu tinh, chúng ta sẽ in ra màn hình chia buồn với người chơi và hỏi người chơi muốn chơi tiếp hay dừng lại:

elif a == "2":
    print("Cửa bật mở, một con yêu tinh xông ra và phang chuỳ vào đầu bạn.")
    print("Bạn đã chết, trò chơi kết thúc.")
    print("(Khởi động lại để tiếp tục khám phá.)")
  • Phòng 3:

Với phòng 3 có con rồng, chúng ta sẽ yêu cầu người chơi chọn làm gì sau khi thấy con rồng. Có ba lựa chọn tương ứng với ba số 1, 2, 3:

elif a == "3":
    print("Bạn bước vào căn phòng và thấy một con rồng đang ngủ say, bạn sẽ: ")
    print("1: Hét to lên để hăm doạ con rồng.")
    print("2: Từ từ đi ra khỏi phòng.")
    print("3: Chả làm gì cả.")
    b = input("Nhập lựa chọn của bạn vào đây: ")

Chúng ta sử dụng biến mới b để lưu câu trả lời của người chơi, tương tự như khi chúng ta hỏi người chơi chọn phòng nào. Và chúng ta cũng sẽ sử dụng câu lệnh điều kiện rẽ nhánh để chia thành các trường hợp lựa chọn:

if b == "1":
    print("Con rồng giật mình và phun lửa vào bạn.")
    print("Bạn đã bị thiêu rụi, trò chơi kết thúc.")
elif b == "2":
    print("Bạn định ra khỏi phòng thì nhận ra cánh cửa đã khóa, bạn chạm vào tay nắm cửa cũ kỹ và nó phát ra tiếng động!")
    print("Bẫy được kích hoạt, bạn rơi ra khỏi lâu đài và bạn thấy thành phố trước mắt mình.")
    print("Bạn đã thoát, trò chơi kết thúc.")
    print("(Khởi động lại để tiếp tục khám phá.)")
elif b == "3":
    print("Bạn đứng đó hồi lâu và con rồng thức dậy, vừa nhìn thấy bạn, con rồng lập tức nuốt chửng bạn ngay!")
    print("Bạn đã trở thành bữa ăn ngon cho rồng, bạn đã chết, trò chơi kết thúc.")
    print("(Khởi động lại để tiếp tục khám phá.)")
else:
    print("Xin lỗi, bạn chỉ có thể nhập 1,2,3.")
  • Phòng 4:

Ở căn phòng cuối cùng có một con nhân sư yêu cầu nhà thám hiểm phải đoán được số nó đang nghĩ. Chúng ta cũng bắt đầu nhánh ở phòng 4 bằng việc hỏi người chơi đoán số nhân sư đang nghĩ:

elif a == "4":
    print("Căn phòng bạn bước vào có một con nhân sư.")
    print("Nhân sư bắt bạn phải đoán được số mà nó đang nghĩ đến trong các số nguyên từ 1 đến 10.")
    print("Nếu bạn đoán đúng, nhân sư sẽ cho bạn đi.")
    print("Ngược lại bạn phải làm nô lệ cho nó!")
    number = int(input("Bạn chọn số nào: ")) 

Chúng ta cùng tìm hiểu cách để nhân sư nghĩ ra một số ngẫu nhiên. Để có thể tạo một số nguyên ngẫu nhiên từ 1 đến 10, chúng ta sẽ sử dụng thư viện (library) random trong Python. Thư viện random sẽ gồm rất nhiều câu lệnh nhỏ với những chức năng khác nhau. Ở đây chúng ta sẽ sử dụng random.randint() với hai input là 1 và 10. Tuy nhiên trước hết, chúng ta phải gọi thư viện đó trong Python bằng câu lệnh import.

Chúng ta sử dụng câu lệnh int() để chuyển kiểu dữ liệu từ chuỗi (string) sang số nguyên (int). Mục đích để kiểm tra số người dùng nhập và số nguyên tạo ngẫu nhiên bằng random.randint():

import random
if number == random.randint(1,10):
    print("Nhân sư gầm lên thất vọng. Bạn đã đoán đúng.")
    print("Nhân sư phải thả bạn đi.")
    print("Bạn đã chiến thắng. Trò chơi kết thúc.")
    print("(Khởi động lại để tiếp tục khám phá.)")
else:
    print("Nhân sư cười khoái trá. Bạn đã đoán sai!")
    print("Bạn đã trở thành nô lệ của nhân sư!")
    print("Bạn đã thua, trò chơi kết thúc.")
    print("(Khởi động lại để tiếp tục khám phá.)")
  1. Chương trình hoàn chỉnh của game

Chúng ta sẽ thêm câu lệnh # -*- coding: utf-8 -*- để hiển thị tiếng Việt. Đồng thời, các bạn học sinh lưu ý chương trình hoàn chỉnh phải lùi lề. Chương trình Python hoàn chỉnh của game sẽ là:

# -*- coding: utf-8 -*-
  
import random

LAUDAI = """
   |>>>                                                      |>>>
    |                     |>>>          |>>>                  |
    *                     |             |                     *
   / \                    *             *                    / \
  /___\                 _/ \           / \_                 /___\
  [   ]                |/   \_________/   \|                [   ]
  [ I ]                /     \       /     \                [ I ]
  [   ]_ _ _          /       \     /       \          _ _ _[   ]
  [   ] U U |        {#########}   {#########}        | U U [   ]
  [   ]====/          \=======/     \=======/          \====[   ]
  [   ]    |           |   I |_ _ _ _| I   |           |    [   ]
  [___]    |_ _ _ _ _ _|     | U U U |     |_ _ _ _ _ _|    [___]
  \===/  I | U U U U U |     |=======|     | U U U U U | I  \===/
   \=/     |===========| I   | + W + |   I |===========|     \=/
    |  I   |           |     |_______|     |           |   I  |
    |      |           |     |||||||||     |           |      |
    |      |           |   I ||vvvvv|| I   |           |      |
_-_-|______|-----------|_____||     ||_____|-----------|______|-_-_
   /________\         /______||     ||______\         /________\
  |__________|-------|________\_____/________|-------|__________|
"""

exit_choice = "c"
while exit_choice != "thoát":
   print("Bạn đang ở trong một căn phòng tối tăm nằm trong một lâu đài bí hiểm.")
   print(LAUDAI)
   print("Có 4 cánh cửa trước mặt bạn, bạn hãy chọn một cánh cửa để thám hiểm.")
 
   a = input("Bạn chọn cánh cửa số: ")
   if a == "1":
        print("Bạn đã tìm thấy một căn phòng chứa kho báu, phát tài rồi!")
        print("Bạn đã thắng cuộc, trò chơi kết thúc.")
        print("(Khởi động lại để tiếp tục khám phá.)")
   elif a == "2": 
        print("Cửa bật mở, một con yêu tinh xông ra và phang chuỳ vào đầu bạn.")
        print("Bạn đã chết, trò chơi kết thúc.")
        print("(Khởi động lại để tiếp tục khám phá.)")
   elif a == "3":
       print("Bạn bước vào căn phòng và thấy một con rồng đang ngủ say, bạn sẽ: ")
        print("1 : Hét to lên để hăm doạ con rồng.")
        print("2 : Từ từ ra khỏi phòng.")
        print("3 : Chả làm gì cả.")
        b = input("Nhập lựa chọn của bạn vào đây: ")
        if b == "1":
            print("Con rồng giật mình và phun lửa vào bạn.")
            print("Bạn đã bị thiêu rụi, trò chơi kết thúc.")
        elif b == "2":
            print("Bạn định ra khỏi phòng thì nhận ra cánh cửa đã khóa, bạn chạm vào tay nắm cửa cũ kỹ và nó phát ra tiếng động!")
            print("Bẫy được kích hoạt, bạn rơi ra khỏi lâu đài và bạn thấy thành phố trước mắt mình.")
            print("Bạn đã thoát, trò chơi kết thúc.")
            print("(Khởi động lại để tiếp tục khám phá.)")
        elif b == "3":
           print("Bạn đứng đó hồi lâu và con rồng thức dậy, vừa nhìn thấy bạn, con rồng lập tức nuốt chửng bạn ngay!")
           print("Bạn đã trở thành bữa ăn ngon cho rồng, bạn đã chết, trò chơi kết thúc.")
           print("(Khởi động lại để tiếp tục khám phá.)")
        else:
           print("Xin lỗi, bạn chỉ có thể nhập 1,2,3.")
    elif a == "4":
        print("Căn phòng bạn bước vào có một con nhân sư.")
        print("Nhân sư bắt bạn phải đoán được số mà nó đang nghĩ đến trong các số nguyên từ 1 đến 10.")
        print("Nếu bạn đoán đúng, nhân sư sẽ cho bạn đi.")
        print("Ngược lại bạn phải làm nô lệ cho nó!")
        number = int(input("Bạn chọn số nào: "))

        if number == random.randint(1,10):
            print("Nhân sư gầm lên thất vọng. Bạn đã đoán đúng.")
            print("Nhân sư phải thả bạn đi.")
            print("Bạn đã chiến thắng. Trò chơi kết thúc.")
            print("(Khởi động lại để tiếp tục khám phá.)")
        else:
            print("Nhân sư cười khoái trá. Bạn đã đoán sai!")
            print("Bạn đã trở thành nô lệ của nhân sư!")
            print("Bạn đã thua, trò chơi kết thúc.")
            print("(Khởi động lại để tiếp tục khám phá.)") 
    else:
        print("Xin lỗi, bạn chỉ có thể nhập 1,2,3 hoặc 4")
    exit_choice = input("Ấn Enter để chơi lại, hoặc gõ thoát để đóng trò chơi.")

STEAM for Vietnam khuyến khích các bạn học sinh hãy thử sáng tạo cốt truyện, tạo nhiều phòng và thử thách cho nhà thám hiểm hơn. Bên cạnh đó, các bạn cũng có thể cải tiến thêm cho game như thế này: khi người chơi nhập sai yêu cầu (Ví dụ: không phải các số từ 1 đến 4 cho số phòng), chương trình sẽ cho người chơi nhập lại đến khi đúng.  

Chỉ với những kiến thức từ hai bài đầu tiên của khoá CS101, bạn Hoàng Long đã tạo ra được một game đơn giản nhưng cũng không kém phần thú vị và gay cấn. STEAM for Vietnam tin rằng bạn học sinh nào cũng có thể sáng tạo dự án cá nhân đầy ấn tượng như vậy. Các bạn hãy thử bắt tay vào thực hiện dự án nhé! Sau khi hoàn thành game, các bạn có thể chia sẻ game của mình trên STEAMese Profile để khoe cùng mọi người.

— — —

STEAM for Vietnam Foundation là tổ chức phi lợi nhuận 501(c)(3) được thành lập tại Hoa Kỳ với sứ mệnh thúc đẩy các hoạt động liên quan tới giáo dục STEAM (Science — Khoa học, Technology — Công nghệ, Engineering — Kỹ thuật, Arts — Nghệ thuật, Mathematics — Toán học) tại Việt nam. STEAM for Vietnam được thành lập và vận hành bởi đội ngũ tình nguyện viên là du học sinh và chuyên gia người Việt trên khắp thế giới.

— — —

📧Email: hello@steamforvietnam.org

🌐Website: www.steamforvietnam.org

🌐Fanpage: STEAM for Vietnam

📺YouTube:  http://bit.ly/S4V_YT

🌐Zalo: Zalo Official

Chuyên mục
Học kỳ Mùa thu 2021

3 lợi ích của khóa học lập trình cho trẻ em tại STEAM for Vietnam

  • “Bài giảng chất lượng, gần gũi với trẻ nhỏ” 

STEAM for Vietnam đã đem đến cho các bạn nhỏ một hành trình thú vị để nắm được các thao tác lập trình căn bản, cũng như nâng cao tư duy máy tính. Theo mình, khóa học CS101 được thiết kế với nội dung và tài liệu rất phù hợp với các em nhỏ. Đặc biệt, bé nhà mình rất thích phần làm đồ họa nhảy theo nhạc. Trong quá trình học, các thầy cô luôn tận tình hướng dẫn dễ hiểu cho các bé. Nhờ vậy mà học sinh không chỉ học được cách “dịch từ “ngôn ngữ người” sang “ngôn ngữ máy” mà còn học được cách tư duy và làm ra sản phẩm cụ thể. Dự án cuối khóa chắc hẳn là cột mốc đặc biệt đối với các em học sinh. Bé nhà mình cũng học hỏi được nhiều khi phải phải chuẩn bị video giới thiệu về dự án cuối khóa, từ nội dung đến cách nói, cách trình bày. Con đóng cửa phòng viết, sửa, tìm hiểu… rất hăng say. Con đã học được rất nhiều sau khi hoàn thành dự án, đồng thời tạo ra một sản phẩm cụ thể mà con chưa bao giờ có.

(Mẹ của bé Quỳnh Mai – lập trình viên nhí đạt giải Demo Day CS 001 đã chia sẻ cho STEAM for Vietnam về những cảm xúc khi cho con theo học CS 001 & CS 101) 

  • “Chị muốn con học tư duy trước khi học kiến thức” 

Lúc đầu thì mình cũng chỉ muốn cho cháu làm quen với lập trình thôi vì đây cũng là một kỹ năng quan trọng như ngoại ngữ vậy.  Chị cảm thấy cháu tự tin hơn hẳn vì lập trình là một kỹ năng khá mới mẻ với các bạn nhỏ. Các bé được học cách tư duy, làm việc khoa học qua hình thức sắp xếp đoạn code và “Tách-Tìm-Nhìn-Viết”. Đồng thời, chị thấy rằng việc học lập trình sẽ giúp cho con tăng khả năng sáng tạo và giải quyết vấn đề. Cho nên, chị khuyến khích ba mẹ hãy cho con cái học lập trình từ sớm. Không hẳn học lập trình sẽ thành lập trình viên, dù rằng gia đình mình cũng rất mong muốn điều đó. May mắn là hiện tại cháu cũng rất yêu thích lập trình và muốn theo đuổi ngành này trong tương lai. Thế nhưng, chị tin rằng việc học lập trình sẽ trao cho các bé nhiều giá trị hữu ích hơn thế!

(Chia sẻ của phụ huynh bé Minh Đức – đạt giải Demo Day CS 101 khóa Spring Coding Bootcamp 2021)

  • “Con chưa bao giờ quen được nhiều bạn mới đến vậy” 

Mỗi bài học của các con mình đều theo dõi, mình thấy rằng học với STEAM các bé còn học được nhiều điều ngoài kiến thức. Chẳng hạn các con hay chấm bài cho bạn, rất chăm chỉ và cẩn thận. Đồng thời khi viết code cũng gọn gàng, ngay ngắn hơn trước nhiều. Nhờ học STEAM for Vietnam mà các con có thêm nhiều bạn mới ở khắp nơi. Hai anh em thường xuyên trao đổi với nhau và với các bạn trên STEAMese Profile. Cứ làm xong bài tập về nhà là lại đăng lên cho các bạn xem liền, háo hức lắm. Bình thường mỗi buổi học các con đều vào ngay LMS sớm để chat với các bạn nữa! 

(Anh Tuấn – phụ huynh của Trung Hiếu – có hai con đều đạt giải Weekly Challenge vui vẻ chia sẻ cảm nhận về khóa học)

STEAM for Vietnam rất vui vì phụ huynh và các em nhỏ đã cùng đồng hành trên hành trình thực hiện sứ mệnh lan tỏa công nghệ đến với hơn 20 triệu trẻ em Việt Nam trong 5 năm tới.  Những phản hồi tích cực từ cha mẹ là động lực giúp cho STEAM for Vietnam tiếp tục thực hiện sứ mệnh ý nghĩa này. 

— — —

STEAM for Vietnam Foundation là tổ chức phi lợi nhuận 501(c)(3) được thành lập tại Hoa Kỳ với sứ mệnh thúc đẩy các hoạt động liên quan tới giáo dục STEAM (Science — Khoa học, Technology — Công nghệ, Engineering — Kỹ thuật, Arts — Nghệ thuật, Mathematics — Toán học) tại Việt nam. STEAM for Vietnam được thành lập và vận hành bởi đội ngũ tình nguyện viên là du học sinh và chuyên gia người Việt trên khắp thế giới.

— — —

📧Email: hello@steamforvietnam.org

🌐Website: www.steamforvietnam.org

🌐Fanpage: STEAM for Vietnam

📺YouTube:  http://bit.ly/S4V_YT

🌐Zalo: Zalo Official

Chuyên mục
Nhật ký Lập trình Về Chúng tôi

“Mỗi đứa trẻ sinh ra đã là một thiên tài, chỉ có bản thân bố mẹ là giới hạn con thôi”

Là một người theo chủ nghĩa giáo dục sớm, chị rất tâm đắc câu nói này: “Mỗi đứa trẻ sinh ra đã là một thiên tài, chỉ có bản thân bố mẹ là giới hạn con thôi”. Vì vậy, chị luôn cố gắng động viên để con có thể phát huy hết khả năng của bản thân từ sớm. Cũng đã có rất nhiều người hỏi chị rằng dạy con học lập trình từ sớm như vậy (bé có tự học từ khi lên 4) có khó không? Câu trả lời là có, nhưng nếu mình chịu khó tìm cách, thì việc gì cũng có thể làm được cả thôi! 

Với con trẻ, việc dành cho con những lời động viên cùng với sự đồng hành của bố mẹ là điều vô cùng quan trọng. Mình hay áp dụng những biện pháp như khen con, nhảy múa hay tập thể dục mỗi khi con đang học mà buồn ngủ để tinh thần con phấn chấn hơn. Ngoài ra, mình còn tập cho con tính kỷ luật bằng cách đặt ra mục tiêu mỗi ngày về phần việc mà con cần làm. Khi con hoàn thành chỉ tiêu thì sẽ được tích điểm vào quyển sổ sao để nhận được phần thưởng từ mẹ. Phần thưởng cũng không cần phải to tát gì với các bạn bé đâu, đơn giản là chiếc cặp tóc xinh xinh, hay chiếc bút chì mới là đủ tạo động lực cho các con rồi! 

Bố mẹ thường nghĩ lập trình là cái gì rất cao siêu nhưng thật ra thì không phải vậy, vì bây giờ đã có những ngôn ngữ lập trình thân thiện với trẻ em như Scratch với giao diện tươi mới nhiều sắc màu, giúp các con có thể rèn luyện tư duy logic và tư duy sắp đặt không chỉ trong học tập mà còn trong cuộc sống nữa. Bố mẹ nào còn đang lăn tăn thì hãy cho con học thử lập trình tại STEAM for Vietnam ngay hôm nay để thấy được những lợi ích mà lập trình có thể mang lại cho con nhé! 

– Chia sẻ từ chị Trịnh Thùy Linh – phụ huynh bé Mật Ong (4 tuổi), đang theo học khóa CS 001 – Nhập môn Tư duy máy tính và Lập trình Scratch tại STEAM for Vietnam-

— — —

“Nhật ký Lập trình” là series thuật lại những câu chuyện mà phụ huynh, học sinh, và các thầy cô chia sẻ về chặng đường theo học các khoá lập trình cùng STEAM for Vietnam.

Đọc thêm về series Nhật ký Lập trình tại đây.

— — —

STEAM for Vietnam Foundation là tổ chức phi lợi nhuận 501(c)(3) được thành lập tại Hoa Kỳ với sứ mệnh thúc đẩy các hoạt động liên quan tới giáo dục STEAM (Science — Khoa học, Technology — Công nghệ, Engineering — Kỹ thuật, Arts — Nghệ thuật, Mathematics — Toán học) tại Việt nam. STEAM for Vietnam được thành lập và vận hành bởi đội ngũ tình nguyện viên là du học sinh và chuyên gia người Việt trên khắp thế giới.

— — —

📧Email: hello@steamforvietnam.org

🌐Website: www.steamforvietnam.org

🌐Fanpage: STEAM for Vietnam

📺YouTube:  http://bit.ly/S4V_YT

🌐Zalo: Zalo Official