Xem Nhiều 12/2022 #️ Học Cách Suy Nghĩ Và Giải Quyết Vấn Đề Như Một Lập Trình Viên ! / 2023 # Top 19 Trend | Maiphuongus.net

Xem Nhiều 12/2022 # Học Cách Suy Nghĩ Và Giải Quyết Vấn Đề Như Một Lập Trình Viên ! / 2023 # Top 19 Trend

Cập nhật thông tin chi tiết về Học Cách Suy Nghĩ Và Giải Quyết Vấn Đề Như Một Lập Trình Viên ! / 2023 mới nhất trên website Maiphuongus.net. Hy vọng nội dung bài viết sẽ đáp ứng được nhu cầu của bạn, chúng tôi sẽ thường xuyên cập nhật mới nội dung để bạn nhận được thông tin nhanh chóng và chính xác nhất.

Mọi người đều nên học lập trình, bởi nó không chỉ dạy bạn code- nó dạy bạn cách tư duy -Steve Jobs

Bạn cũng có thể tự hỏi rằng làm cách nào để suy nghĩ như một lập trình viên. Về cơ bản, đó là một cách hiệu quả hơn để giải quyết vấn đề.

Trong bài viết này, mục tiêu của tôi là hướng dẫn cho bạn các bước chính xác để trở thành người giải quyết vấn đề tốt hơn.

Tại sao nó lại quan trọng?

Giải quyết vấn đề là kỹ năng rất quan trọng.

Trừ khi bạn có một hệ thống rõ ràng thì thường có lẽ đây sẽ là cách bạn “giải quyết” một vấn đề:

Thử một giải pháp

Nếu cách đó không hiệu quả, thì thử một cách khác.

Nếu điều đó không hiệu quả, lặp lại bước 2 cho đến khi gặp may mắn.

Nhưng đây là cách tồi tệ nhất để giải quyết vấn đề và lại vô cùng lãng phí thời gian.

Theo tôi, cách tốt nhất để giải quyết một vấn đề chính là phải

a) Có một khuôn khổ

b) Thực hành nó thật nhuần nhuyễn. Theo báo cáo Hacker Rank’s 2018 Developer Skill:

Các kỹ năng giải quyết vấn đề gần như là tiêu chuẩn quan trọng nhất mà các nhà tuyển dụng tìm kiếm … quan trọng hơn cả việc thông thạo các ngôn ngữ lập trình, khả năng fix bug hay thiết kế hệ thống. Nói cách khác, những kỹ năng mềm như giải quyết vấn đề luôn quan trọng không kém gì các kỹ năng kỹ thuật cơ bản cần thiết cho công việc.

Cần có một khuôn khổ

Để tìm được khuôn khổ phù hợp, tôi đã làm theo lời khuyên từ cuốn sách của Tim Ferriss, The 4-Hour Chef.

Tôi có cơ hội được trò chuyện với hai con người thực sự ấn tượng: C. Jordan Ball (xếp thứ nhất hoặc thứ hai trong số 65.000 người dùng trên Coderbyte) và V. Anton Spraul (tác giả của Think Like a Programmer: An Introduction to Creative Problem Solving).

Tôi đã hỏi họ những câu hỏi tương tự và đoán xem? Câu trả lời của họ đều khá giống nhau!

Sai lầm lớn nhất mà tôi thấy ở các lập trình viên là chỉ biết tập trung vào việc học cú pháp thay vì học cách giải quyết vấn đề -V. Anton Spraul

1. Hiểu rõ bản chất của nó

Biết chính xác những gì đang được hỏi. Hầu hết các vấn đề khó khăn là bởi vì bạn không hiểu chúng.

Làm thế nào bạn biết mình đã hiểu một vấn đề? Khi bạn có thể giải thích nó một cách đơn giản. Richard Feynman nói, “Nếu bạn không thể giải thích điều gì đó một cách đơn giản thì có nghĩa là bạn không hiểu nó.”

Khi bạn bắt đầu giải thích nó, và ngay lập tức nhìn thấy các lỗ hổng trong logic mà bạn chưa từng thấy trước đây. Hầu hết các lập trình viên đều biết cảm giác này. Và đó là lý do tại sao bạn nên viết ra vấn đề của mình, vẽ một sơ đồ, hoặc nói với ai đó về nó ( thậm chí là với một con vịt cao su cũng được).

2. Lập ra kế hoạch rõ ràng

Đừng đi sâu vào việc giải quyết mà không có một kế hoạch và chỉ biết dựa vào may rủi. Thay vào đó, hãy lên kế hoạch cho giải pháp của bạn và viết ra các bước chính xác.

Trong lập trình, điều này có nghĩa là không bắt đầu hack ngay lập tức. Thay vào đó, họ dành thời gian cho bộ não để phân tích vấn đề và xử lý thông tin.

Để có được một kế hoạch tốt, hãy trả lời câu hỏi này: Cho đầu vào X, các bước cần thiết để trả về Y đầu ra là gì?

3. Phân chia

Hãy chú ý vì đây là bước quan trọng nhất.

Đừng cố gắng giải quyết một vấn đề lớn vì bạn sẽ khóc thét lên đấy. Thay vào đó, hãy chia nhỏ thành các vấn đề phụ, dễ giải quyết hơn nhiều.

Sau đó, hãy giải quyết từng vấn đề một với từ cái đơn giản nhất. Trong đó, đơn giản nhất có nghĩa là bạn biết câu trả lời và không phải phụ thuộc vào những người khác để giải quyết.

Kỹ thuật này là nền tảng của quá trình giải quyết vấn đề, vì vậy hãy nhớ nó (đọc bước này một lần nữa nếu cần thiết). Spraul nói:

“Nếu tôi có thể dạy cho lập trình viên về kỹ năng giải quyết vấn đề, thì đó sẽ là “làm giảm tính phức tạp của vấn đề”. Giả sử bạn là một lập trình viên được yêu cầu viết một chương trình đọc 10 con số và chữ. Vậy con số nào sẽ cao thứ ba? Đối với một lập trình viên mới vào nghề, đó có thể là một nhiệm vụ khó, mặc dù nó chỉ yêu cầu cú pháp lập trình cơ bản.

Khi bạn gặp khó khăn, hãy giảm vấn đề xuống mức độ đơn giản hơn. Thay vì số thứ ba cao nhất, hãy tìm số cao nhất? Vẫn còn quá khó khăn? vậy kiếm số lớn nhất trong 3 số thì sao? Hãy giảm vấn đề xuống mức mà bạn biết cách giải quyết. Sau đó, mở rộng vấn đề một chút và viết lại giải pháp cho phù hợp. Tiếp tục cho đến khi bạn quay lại nơi bạn đã bắt đầu.

4. Khi bế tắc thì ta nên làm gì?

“Hey Richard, thật tuyệt vời và tất cả, nhưng nếu tôi bị kẹt và thậm chí không thể phân biệt được hướng giải quyết cho vấn đề thì sao?”

Trước hết, hít một hơi thật sâu. Thứ hai, đó là điều bình thường mà ai cũng sẽ mắc phải.

Vì thế đừng lo lắng. Điều này xảy ra với tất cả mọi người! Sự khác biệt là những người lập trình / giải quyết vấn đề tốt sẽ cảm thấy tò mò hơn về lỗi chứ không bị chùn bước.

Trong thực tế, đây là ba điều bạn cần sẽ thử qua:

Gỡ lỗi: Kiểm tra lại lần lượt các giải pháp của bạn để tìm ra nơi bạn đã đi sai. Các lập trình viên gọi đó là gỡ lỗi.

Đánh giá lại: Nhìn vào vấn đề từ góc nhìn khác. Có điều gì có thể được tóm tắt theo cách tiếp cận tổng quát hơn không? Một cách đánh giá lại khác là bắt đầu lại. Hãy xóa mọi thứ và bắt đầu lại với góc nhìn mới. Tôi nghiêm túc đấy! Bạn sẽ chết lặng khi thấy được mức độ hiệu quả của việc này.

Nghiên cứu: Đây chính là lúc Google tỏa sáng. Dù bạn có vấn đề gì đi nữa, ai đó có thể đã giải quyết nó, vì vậy hãy tìm người / giải pháp đó. Thực tế, hãy làm điều này ngay cả khi bạn đã giải quyết được vấn đề bởi vì bạn có thể học được rất nhiều từ các giải pháp của người khác.

Một lần nữa, đừng tìm một giải pháp cho vấn đề lớn. Chỉ tìm giải pháp cho các vấn đề phụ. Tại sao? Bởi vì trừ khi bạn gặp phải khó khăn (thậm chí một chút), bạn sẽ không học được gì cả. Nếu bạn không học được gì, thì bạn đang lãng phí thời gian của mình.

Thực hành

Đừng hy vọng rằng mọi thứ sẽ tuyệt vời chỉ sau một tuần. Nếu bạn muốn trở thành người giải quyết vấn đề tốt, hãy giải quyết rất nhiều vấn đề. Thực hành. Nó sẽ chỉ là vấn đề thời gian trước khi bạn nhận ra rằng “vấn đề này có thể dễ dàng được giải quyết với một cách vô cùng nhanh gọn”

Làm thế nào để thực hành? Cờ vua, các vấn đề toán học, sudoku, trò chơi điện tử, cryptokitties, v.v.

Trong thực tế, một mô hình chung giữa những người thành công là thói quen thực hành “giải quyết vấn đề vi mô”. Ví dụ, Peter Thiel chơi cờ vua, và Elon Musk chơi trò chơi điện tử.

Điều này có nghĩa là bạn chỉ nên chơi trò chơi điện tử? Không. Những gì bạn nên làm là tìm một lối thoát để thực hành giải quyết nhiều vấn đề vi mô, lý tưởng nhất là những hoạt động mà bạn thích. Ví dụ, tôi thích những thử thách code. Mỗi ngày, tôi cố gắng giải quyết ít nhất một thử thách (thường là trên Coderbyte).

Kết luận

Giờ đây, bạn đã biết rõ hơn ý nghĩa của việc “nghĩ như một lập trình viên.” Bạn cũng biết rằng giải quyết vấn đề là một kỹ năng đáng kinh ngạc cần được trau dồi. Và điều tuyệt vời hơn nữa đó là bạn cũng biết phải làm gì để thực hành kỹ năng giải quyết vấn đề của mình rồi.

Bài Học Về Kỹ Năng Giải Quyết Vấn Đề – Hãy Tư Duy Như Một Lập Trình Viên! / 2023

Nếu bạn là một người yêu thích lập trình thì không thể không biết đến câu nói sau về kỹ năng mềm lập trình viên:

“Mọi người đều nên học lập trình, bởi nó không chỉ dạy bạn code – nó dạy bạn cách tư duy – Steve Jobs”

Có bao giờ bạn tự hỏi rằng làm sao để có thể suy nghĩ như một lập trình viên?  Bất ngờ là, tất cả chỉ xoay quanh câu hỏi: Đâu là hướng giải quyết vấn đề hiệu quả hơn?

Mục đích của tôi khi thực hiện bài viết này là bật mí cho bạn các bí quyết để có thể suy nghĩ và giải quyết vấn đề một cách tốt hơn.

Vì sao điều này lại quan trọng?

Giải quyết vấn đề là một kỹ năng quan trọng.

Tất cả chúng ta đều có vấn đề, từ lớn cho đến nhỏ. Đôi khi cách mà chúng ta giải quyết vấn đề của chính mình khá là … ngẫu nhiên.

Trừ khi bạn đã có một hệ thống rõ ràng hơn thì có lẽ là cách mà bạn “giải quyết” một vấn đề (đây cũng là lộ trình tôi làm theo khi mới bắt đầu viết code ):

Thử một giải pháp nào đó.

Thử một cách khác nếu nó không hiệu quả.

Nếu vẫn không hiệu quả, lặp lại bước 2 cho đến khi may mắn mỉm cười với bạn.

Đôi khi may mắn sẽ đến nhưng thực tế đây  là một cách tồi tệ nhất khi giải quyết một vấn đề, nó khiến bạn lãng phí thời gian của mình.

Theo ý kiến cá nhân của mình, cách tốt nhất để giải quyết vấn đề chính là:

Có một phương pháp cụ thể

Thực hành nó thật nhuần nhuyễn liên tục

Báo cáo Hacker Rank’s 2018 Developer Skill có chỉ ra :

“Kỹ năng giải quyết vấn đề ở ứng viên gần như là một tiêu chuẩn không thể thiếu mà các nhà tuyển dụng tìm kiếm… Nó còn được săn đón hơn cả việc thông thạo các ngôn ngữ lập trình, khả năng fix bug hay thiết kế hệ thống.

Điều này cũng có nghĩa là những kỹ năng mềm như giải quyết vấn đề cũng quan trọng không kém các kỹ năng kỹ thuật cơ bản cho công việc.”

Có một khuôn khổ rõ ràng

Để có thể tìm được một khuôn phù hợp với bản thân, tôi đã tham khảo và làm theo lời khuyên từ quyển sách The 4-Hour Chef của Tim Ferriss.

Tôi thật may mắn khi có cơ hội được trò chuyện cùng với hai con người vô cùng đáng ngưỡng mộ  đó là C. Jordan Ball (xếp thứ nhất hoặc thứ hai trong số 65.000 người dùng trên Coderbyte) và V. Anton Spraul (tác giả của Think Like a Programmer: An Introduction to Creative Problem Solving).

Tôi đã l đặt cho cả hai các câu hỏi giống nhau, bạn thử đoán xem câu trả lời là gì? Surprise! Câu trả lời của họ đều khá giống nhau.

“Sai lầm lớn nhất mà tôi thấy ở các lập trình viên là chỉ biết tập trung vào việc học cú pháp (syntax) thay vì học cách giải quyết vấn đề – V. Anton Spraul”

1/ Hiểu rõ bản chất của sự việc

Bạn cần phải biết chính xác những việc mình đang gặp phải hay những gì được hỏi. Các vấn đề trở nên khó khăn là do bạn không hiểu rõ về chúng.

Vậy làm sao để biết rằng mình đã hiểu rõ một vấn đề? Chính là khi mà bạn có thể giải thích nó một cách đơn giản nhất.

Đa số các lập trình viên đều hiểu  cảm giác khi bản thân bắt đầu giải thích một thứ và ngay lập tức nhìn ra được các lỗ hổng trong logic mà mình chưa bắt gặp trước đây. Đó là lý do tại sao bạn nên viết ra vấn đề của mình, vẽ một sơ đồ, hoặc nói với ai đó về nó ( thậm chí là với một con vịt đồ chơi cũng được).

Richard Feynman từng nói, “Nếu bạn không thể giải thích điều gì đó một cách đơn giản thì có nghĩa là bạn không hiểu nó.”

2/ Lên kế hoạch rõ ràng

Đừng đâm đầu vào giải quyết một vấn đề nào nó một cách may rủi mà không có kế hoạch. Sẽ không ai có thể giúp bạn nếu bạn không lập kế hoạch rõ ràng cho các giải pháp và viết ra chính xác từng bước cần thực hiện.

Trong lập trình, điều có nghĩa là họ dành thời gian để não bộ phân tích vấn đề và xử lý thông tin thay vì bắt đầu hack ngay lập tức.

Để có một kế hoạch hoàn hảo hãy trả lời câu hỏi sau:

“Cho đầu vào X, các bước cần thiết để trả về Y đầu ra là gì?”

3/ Phân chia

Đừng cố giải quyết 1 vấn đề to bự! Bạn sẽ vã ra mất.

Bạn sẽ “khóc thét” khi cố gắng giải quyết một vấn đề lớn đấy. Thay vào đó hãy chia nhỏ nó ra thành các vấn đề phụ để có thể giải quyết một các dễ dàng hơn.

Sau đó hãy giải quyết từng vấn đề theo thứ tự ưu tiên từ đơn giản cho đến phức tạp. Đơn giản có nghĩa là bạn có thể giải quyết vấn đề này một mình mà không cần sự trợ giúp hay phụ thuộc vào những người khác.

Khi đã giải quyết các vấn đề phụ hãy kết nối chúng lại với nhau. Congratulations, bạn đã tìm ra cách giải quyết cho vấn đề ban đầu rồi đấy.

Hãy nhớ thật kỹ vì kỹ thuật này chính là nền tảng của quá trình giải quyết vấn đề (Có thể đọc bước này một lần nữa nếu cần thiết).

Theo V. Anton Spraul:

“Nếu tôi có thể dạy cho lập trình viên một  kỹ năng giải quyết vấn đề, thì đó sẽ là làm giảm tính phức tạp của vấn đề”. Ví dụ như bạn là một lập trình viên nhận được yêu cầu viết một chương trình đọc 10 số và tìm ra đâu là con số lớn thứ ba. Đây là một nhiệm vụ khó khăn dành cho một lập trình viên mới vào nghề cho dù nó chỉ yêu cầu cú pháp lập trình cơ bản.

Nếu bạn gặp khó khăn hãy giải quyết vấn đề ở mức độ đơn giản hơn.  Thay vì số thứ ba cao nhất, hãy tìm số cao nhất? Vẫn còn quá khó khăn? vậy kiếm số lớn nhất trong 3 số thì sao? Hãy giảm vấn đề xuống mức mà bạn biết có thể giải quyết. Sau đó, mở rộng vấn đề một chút và viết lại giải pháp cho phù hợp. Tiếp tục cho đến khi bạn quay lại nơi bạn đã bắt đầu.”

Video: Google Update 2019 – Youtube Update 2019

4/ Khi bế tắc nên giải quyết như thế nào?

Đến giờ nếu bạn đang có suy nghĩ  “Hey Richard, nghe có vẻ cool đấy, nhưng nếu tôi vẫn bị bí và thậm chí còn không thể giải quyết được những vấn đề phụ đã chia thì sao ?”

Điều làm nên khác biệt giữa người lập trình viên và người giải quyết vấn đề giỏi nằm ở việc họ sẽ cảm thấy thắc mắc hơn về lỗi chứ không bị nản chí.

Thực tế, đây là 3 điều bạn cần phải thử qua:

Gỡ lỗi: Kiểm tra lại lần lượt các giải pháp của bạn để tìm ra nơi mình đã đi sai hướng. Các lập trình viên gọi đó là debug

“Nghệ thuật debug chính là tìm ra những gì bạn đã nói với chương trình của mình để hơn là những gì bạn đã nói nó làm” – Andrew Singer

Tiếp cận lại vấn đề: Nhìn vào vấn đề từ một khía cạnh khác. Bạn có thể tiếp cận điều gì một cách tổng quát hơn không? Một cách đánh giá lại khác là bắt đầu lại. Hãy xóa mọi thứ và bắt đầu lại ở khía cạnh mới. Tôi nghiêm túc đấy! Bạn sẽ bất ngờ khi thấy được mức độ hiệu quả của việc này.

“Đôi khi chúng ta chỉ tập trung vào các chi tiết của một vấn đề mà quên đi các nguyên tắc chung có thể giải quyết chúng ở cấp độ tổng quát hơn.

Một ví dụ cơ bản cho vấn đề này chính là tập hợp các số nguyên liên tiếp, 1 + 2 + 3 + … +n, mà Gauss từ rất trẻ đã nhận ra từ rất sớm đó chỉ đơn giản là n (n + 1) / 2, tránh được việc phải nỗ lực làm thêm.” —  C. Jordan Ball

Nghiên cứu: Đây chính là lúc tỏa sáng của Google. Dù bạn có vấn đề gì đi nữa, ai đó có thể đã giải quyết nó, vì vậy hãy tìm người / giải pháp đó. Thực tế, hãy làm điều này ngay cả khi bạn đã giải quyết được vấn đề bởi vì bạn có thể học được rất nhiều từ các giải pháp của người khác.

Đừng tìm giải pháp cho một vấn đề lớn hãy tìm kiếm giải pháp cho những vấn đề phụ. Vì sao nên làm như vậy? Bởi vì bạn sẽ gặp phải khó khăn mà không học được gì. Nếu bạn không học được gì, thì bạn đang lãng phí thời gian của mình.

Thực hành

Làm sao để thực hành? Cờ vua, các vấn đề toán học, sudoku, trò chơi điện tử, cryptokitties… có rất nhiều sự lựa chọn dành cho bạn.

Đơn giản là bạn chỉ việc ngồi chơi trò chơi điện tử? Dĩ nhiên là không. Những gì bạn nên làm là tìm một lối thoát để thực hành giải quyết nhiều vấn đề vi mô, lý tưởng nhất là những hoạt động mà bạn thích. Giống như tôi thích những thử thách code, mỗi ngày tôi cố gắng giải quyết ít nhất một thử thách (thường là trên Coderbyte).

Kết luận

Giờ đây, bạn đã biết rõ hơn ý nghĩa của việc “suy nghĩ và giải quyết vấn đề như một Lập Trình Viên.” Bạn cũng biết rằng giải quyết vấn đề là một kỹ năng đáng kinh ngạc cần được trau dồi. Và điều tuyệt vời hơn nữa đó là bạn cũng biết phải làm gì để thực hành kỹ năng giải quyết vấn đề của mình rồi.

“Ngay khi bạn nghĩ rằng bạn đã thành công vượt qua một chướng ngại vật, thì một điều khác lại xuất hiện. Nhưng điều đó lại mang đến điều thú vị cho cuộc sống.

Cuộc sống là một quá trình liên tục vượt khó vượt qua những trở ngại này – một loạt hàng rào kiên cố mà chúng ta phải vượt qua.

Mỗi lần, bạn sẽ học được điều gì đó.

Mỗi lần, bạn sẽ phát triển sức mạnh, trí tuệ và quan điểm.

Mỗi lần, một chút nữa của cuộc thi sẽ biến mất. Cho đến khi tất cả những gì còn lại là bạn: phiên bản tốt nhất của bạn.” – Ryan Holiday (The Obstacle is the Way)

Bây giờ hãy đi giải quyết vấn đề của mình đi nào!

TopDev via Medium

Học Cách Giải Quyết Vấn Đề Vấn Đề / 2023

Lớp học giải quyết vấn đề là một thay đổi thú vị so với lớp học thông thường Với lớp học này, giáo viên sẽ đưa ra một vấn đề chứ không phải là bài giảng, tiểu luận hay bài tập về nhà. Do không bao hàm nội dung nên việc học tập của bạn trở nên năng động hơn. Vì khi đó bạn phải tiến hành khám phá và làm việc để giải quyết vấn đề được nêu.

Trong lớp học giải quyết vấn đề, giáo viên sẽ đóng vai trò là người cố vấn chứ không phải là người giúp bạn giải quyết các vấn đề.

Lớp học giải quyết vấn đề sẽ tạo ra cho bạn cơ hội

Kiểm tra và vận dụng những gì bạn biết

Khám phá những gì bạn cần biết

Phát triển các kỹ năng để làm việc theo nhóm tốt hơn

Cải thiện kỹ năng giao tiếp

Đưa ra quan điểm và bảo vệ quan điểm bằng các bằng chứng và lý lẽ thuyết phục

Trở nên linh hoạt hơn trong việc xử lý thông tin và các tình huống giao tiếp

Thực hành các kỹ năng bạn cần sau này

Tóm tắt về khóa học giải quyết vấn đề: Đây là mô hình đã được rút gọn – các mô hình chi tiết hơn được đề cập ở dưới

Các bước có thể được lặp lại và quay vòng: Các bước từ 2 đến 5 có thể lặp lại và xem lại khi có thông tin mới bổ sung và khi phải xác định lại vấn đề. Bước 6 có thể xuất hiện hơn một lần – đặc biệt là khi giáo viên nhấn mạnh vào việc bạn vượt quá xa so với “bản phác thảo đầu tiên”

1. Khám phá vấn đề Giáo viên sẽ đưa ra một vấn đề “hóc búa”

2. Liệt kê xem ” Chúng ta biết gì” Bạn biết gì để giải quyết vấn đề?

Điều này bao gồm cả những thứ bạn thực sự biết và thế mạnh và khả năng của các thành viên trong nhóm Cân nhắc hoặc ghi chú các thế mạnh đó, bất kể chúng có kỳ lạ tới đâu bởi đó có thể là tạo cơ hội cũng nên.

3. Phát triển và viết ra cách hiểu vấn đề bằng cách hiểu của mình Bày tỏ vấn đề có thể bằng phân tích của bạn hoặc nhóm xem bạn biết gì và sẽ cần những gì để giải quyết nó. Bạn sẽ cần:

Một bản trình bày vấn đề

Sự thống nhất của cả nhóm về vấn đề

Phản hồi về diễn giải vấn đề của người hướng dẫn (Có thể lựa chọn, nhưng đây thực sự là một ý kiến hay)

Lưu ý: diễn giản vấn đề cần phải thường xuyên được xem lại và chỉnh đốn khi phát hiện được thông tin mới hoặc các thông tin cũ bị loại bỏ.

4. Liệt kê các giải pháp có thể Liệt kê chúng ra và sắp xếp theo mức độ mạnh nhất đến yếu nhất

Chọn phương án tốt nhất hoặc có khả năng thành công cao nhất

5. Liệt kê các hành động cùng thời gian thực hiện

Chúng ta cần biết những gì và làm gì để giải quyết vấn đề?

Làm thế nào để phân loại được các khả năng?

6. Liệt kê ra xem “Chúng ta cần biết gì?” Tìm hiểu về thông tin và các dữ liệu sẽ hỗ trợ quá trình đi tìm lời giải của bạn. Bạn sẽ cần đến thông tin để lấp vào lỗ hổng kiến thức

Thiết kế và lên lịch việc tìm kiếm, đặc biệt là thời gian cần hoàn thành.

Nếu các nghiên cứu của bạn hỗ trợ việc tìm giải pháp và nếu tất cả đều thống nhất, đi đến bước 7, nếu không quay trở lại bước 4.

7. Viết ra giải pháp cùng với các bằng chứng hỗ trợ và xác nhận chúng Bạn cần trình bày các tìm kiếm của mình và/ hoặc đưa ra góp ý với cả nhóm hoặc các bạn cùng lớp.

Công bố này nên bao gồm cả việc diễn giải vấn đề, các câu hỏi, thông tin thu thập được, bản phân tích thông tin và phần hỗ trợ các giải pháp và các lời khuyên dựa trên bản phân tích dữ liệu: nói tóm lại tiến trình và kết quả

Trình bày và bảo vệ luận điểm: Mục tiêu không chỉ là để trình bày các luận điểm của bạn mà còn cơ sở của chúng. Hãy chuẩn bị để

Chỉ ra một cách rõ ràng vấn đề và kết luận

Tổng kết tiến trình bạn đã đi qua, các lựa chọn được cân nhắc và những khó khăn vấp phải

Thuyết phục mà không ép buộc. Hãy kéo người khác về phía mình hoặc khiến người khác phải đắn đo mà không có các bằng chứng hỗ trợ quan điểm và lý do

Giúp đỡ người khác học tập, như bạn đã học vậy

Nếu đã gặp thử thách và bạn có câu trả lời, hãy trình bày nó thật rõ ràng và nếu không có câu trả lời, hãy thừa nhận điều đó và nói đến điều đó để được giải đáp

Hướng dẫn thuyết trình..

8. Xem lại phần thể hiện Bài tập này dùng cho cả thực hành nhóm và cả cá nhân riêng lẻ.

Hãy tự hào với những gì đã làm tốt, học hỏi từ những gì làm chưa tốt. Thomas Edison đã rất tự hào với những thí nghiệm thất bại của mình như hành trình đi đến thành công

Cẩm nang chiến lược dành cho học tập

Dạy Học Đặt Vấn Đề Và Giải Quyết Vấn Đề / 2023

Dạy học đặt và giải quyết vấn đề không phải là một PPDH riêng biệt mà là một tập hợp nhiều PPDH liên kết chặt chẽ với nhau và tương tác với nhau, trong đó phương pháp xây dựng tình huống có vấn đề và dạy học giải quyết vấn đề giữ vai trò trung tâm, gắn bó các PPDH khác trong tập hợp. Dạy học đặt và giải quyết vấn đề có khả năng thâm nhập vào hầu hết các PPDH khác và làm cho tính chất của chúng trở nên tích cực hơn. Dạy học đặt và giải quyết vấn đề sẽ góp phần nâng cao tính tích cực tư duy của học sinh, gắn liền hai mặt kiến thức và tư duy, đồng thời hình thành ở học sinh nhân cách có khả năng sáng tạo thực sự, góp phần rèn luyện trí thông minh cho học sinh.

Mỗi một PPDH đều phải xem xét khả năng sử dụng các tình huống có vấn đề ở giai đoạn tương ứng của việc lĩnh hội kiến thức.

BẢN CHẤT CỦA DẠY HỌC ĐẶT VÀ GIẢI QUYẾT VẤN ĐỀ

Bản chất của dạy học đặt và giải quyết vấn đề là giáo viên đặt ra trước học sinh các vấn đề của khoa học (các bài toán nhận thức) và mở ra cho các em những con đường giải quyết các vấn đề đó; việc điều khiển quá trình tiếp thu kiến thức của học sinh ở đây được thực hiện theo phương pháp tạo ra một hệ thống những tình huống có vấn đề, những điều kiện bảo đảm việc giải quyết những tình huống đó và những chỉ dẫn cụ thể cho học sinh trong quá trình giải quyết các vấn đề.

Dạy học đặt và giải quyết vấn đề là sự tổng hợp những hoạt động nhằm tổ chức các tình huống có vấn đề, trình bày các vấn đề; giúp đỡ cần thiết cho học sinh trong việc giải quyết vấn đề và kiểm tra những cách giải quyết đó; cuối cùng là lãnh đạo việc vận dụng kiến thức.

Dạy học đặt và giải quyết vấn đề có ba đặc trưng cơ bản sau:

1. Giáo viên đặt ra trước học sinh một loạt những bài toán nhận thức có chứa đựng mâu thuẫn giữa cái đã biết và cái phải tìm, nhưng chúng được cấu trúc lại một cách sử phạm, gọi là những bài tập nêu vấn đề- ơrixtic (những bài toán nêu vấn đề nhận thức và yêu cầu phải tìm tòi- phát hiện).

2. Học sinh tiếp nhận mâu thuẫn của bài toán ơrixtic như mâu thuẫn của nội tâm mình và được đặt vào hình huống có vấn đề, tức là trạng thái có nhu cầu bên trong bức thiết muốn giải quyết bằng được bài toán đó.

3. Trong và bằng cách tổ chức giải bài toán ơrixtic mà học sinh lĩnh hội một cách tự giác và tích cực cả kiến thức, cả cách thức giải và do đó có được niềm vui sướng của sự nhận thức sáng tạo (“Ơrêka”- tôi tìm thấy).

Quá trình dạy học giải quyết vấn đề là quá trình giáo viên tổ chức, hướng dẫn sự nghiên cứu tự lực, tự phát hiện tích cực và sáng tạo các chân lí khoa học ở học sinh. Có thể nói đó là sự nghiên cứu khoa học thu hẹp trong khuôn khổ của sự dạy học. Tương tự như quá trình nghiên cứu khoa học, quá trình dạy học giải quyết vấn đề cũng bao gồm ba giai đoạn: 1) Quan sát và đề xuất vấn đề cần nghiên cứu học tập (xây dựng tình huống có vấn đề); 2) Giải quyết vấn đề (xây dựng và kiểm tra giả thuyết); và 3) Vận dụng độc lập kiến thức mới. Tuy nhiên mỗi yếu tố, mỗi giai đoạn đó đã có sự biến đổi do điều kiện của sự dạy học

a. Tình huống có vấn đề là tình huống mà khi có mâu thuẫn khách quan của bài toán nhận thức được học sinh chấp nhận như một vấn đề học tập mà họ cần có thể giải quyết được, kết quả là họ nắm được tri thức mới. Trong đó, vấn đề học tập là những tình huống về lí thuyết hay thực tiễn có chứa đựng mâu thuẫn biện chứng giữa cái (kiến thức, kĩ năng, kĩ xảo) đã biết với cái phải tìm và mâu thuẫn này đòi hỏi phải được giải quyết .

b. Tình huống có vấn đề, đó là trở ngại về trí tuệ của con người, xuất hiện khi anh ta chưa biết cách giải thích hiện tượng sự kiện, quá trình của thực tế, khi chưa thể đạt tới mục đích bằng cách thức hành động quen thuộc. Tình huống này kích thích con người tìm tòi cách giải thích hay hành động mới. Tình huống có vấn đề là quy luật của hoạt động nhận thức sáng tạo, có hiệu quả. Nó qui định sự khởi đầu của tư duy, hành động tư duy tích cực sẽ diễn ra trong quá trình nêu ra và giải quyết các vấn đề .

c. Tình huống có vấn đề là trạng thái tâm lí độc đáo của người gặp chướng ngại nhận thức, xuất hiện mâu thuẫn nội tâm, có nhu cầu giải quyết mâu thuẫn đó, không phải bằng tái hiện hay bắt bước mà bằng tìm tòi sáng tạo tích cực đầy hưng phấn, và khi tới đích thì lĩnh hội được kiến thức, phương pháp giành kiến thức và cả niềm vui sướng của phát hiện.

d. Như vậy có thể coi tình huống có vấn đề trong dạy học là trạng thái tâm lí đặc biệt của học sinh khi họ gặp mâu thuẫn khách quan của bài toán nhận thức giữa cái đã biết và cái phải tìm, tự họ chấp nhận và có nhu cầu, có khả năng giải quyết mâu thuẫn đó bằng tìm tòi, tích cực, sáng tạo, kết quả là họ nắm được cả kiến thức và phương pháp giành kiến thức.

2. Các yếu tố của tình huống có vấn đề

Tình huống có vấn đề chỉ xuất hiện và tồn tại trong ý thức người học sinh chừng nào đang diễn ra sự chuyển hóa của mâu thuẫn khách quan bên ngoài của bài toán nhận thức thành mâu thuẫn chủ quan bên trong của học sinh. Yếu tố chủ yếu của tình huống có vấn đề là điều chưa biết, là điều phải được khám phá ra để hoàn thành đúng nhiệm vụ đặt ra. Điều chưa biết trong tình huống có vấn đề luôn được đặc trưng bởi một sự khái quát hóa ở mức độ nhất định. Tuy nhiên, điều chưa biết đó không được quá khó hoặc quá dễ đối với học sinh.

Như vậy có thể nêu ra ba yếu tố sau đây của một tình huống có vấn đề, đó cũng là ba điều kiện của một tình huống có vấn đề trong dạy học:

a. Có mâu thuẫn nhận thức, có điều chưa biết cần tìm. Có mâu thuẫn nhận thức giữa cái đã biết và cái phải tìm. Điều chưa biết có thể là mối liên hệ giữa cái đã biết và cái phải tìm. Điều chưa biết có thể là mối liên hệ chưa biết, hoặc cách thức hay điều kiện hành động. Đó chính là kiến thức mới sẽ được khám phá ra trong tình huống có vấn đề.

b. Gây ra nhu cầu muốn biết kiến thức mới. Thế năng tâm lí của nhu cầu nhận thức là động lực khởi động hoạt động nhận thức của học sinh; nó sẽ góp phần làm cho học sinh đầy hưng phấn tìm tòi phát hiện, sáng tạo giải quyết nhiệm vụ nhận thức đặt ra.

c. Phù hợp với khả năng của học sinh trong việc phân tích các điều kiện của nhiệm vụ đặt ra và trong việc đi tìm điều chưa biết, nghĩa là trong việc phát hiện kiến thức mới. Tình huống có vấn đề nên bắt đầu từ cái quen thuộc, bình thường, đã biết (từ vốn kiến thức cũ của học sinh, từ những hiện tượng thực tế…) mà đi đến cái bất thường (kiến thức mới) một cách bất ngờ nhưng logic.

3. Cách xây dựng tình huống có vấn đề trong dạy học Hóa học

Sự nghiên cứu lí luận và thực tiễn cho thấy có nhiều loại tình huống có vấn đề và nhiều cách tạo ra (làm xuất hiện) các tình huống có vấn đề trong dạy học.

Cần nêu ra nguyên tắc chung làm xuất hiện tình huống có vấn đề trong dạy học, sau đó sẽ phân loại các cách tạo tình huống có vấn đề trong dạy học.

Nguyên tắc chung: Dựa vào sự không phù hợp giữa kiến thức đã có của học sinh với yêu cầu đặt ra cho họ khi giải quyết nhiệm vụ mới.

Theo nguyên tắc chung này, có thể nêu ra ba cách tạo ra các tình huống có vấn đề, đó cũng là ba kiểu tình huống có vấn đề cơ bản trong dạy học Hóa học (1).

Có thể tạo ra tình huống có vấn đề khi kiến thức học sinh đã có không phù hợp (không đáp ứng được) với đòi hỏi của nhiệm vụ học tập hoặc với thực nghiệm.

Ở đây sẽ xuất hiện tình huống không phù hợp (cũng là tình huống khủng hoảng, bế tắc) hoặc tình huống bất ngờ (cũng là tình huống ngạc nhiên).

Có thể alogrit hóa quá trình tạo tình huống có vấn đề theo cách này thành ba bước như sau:

Bước 2: Đưa ra hiện tượng (có thể làm thí nghiệm, hoặc nêu ra một hiện tượng, một kinh nghiệm) mâu thuẫn hoặc trái hẳn với kết luận vừa được nhắc lại, điều đó sẽ gây ra sự ngạc nhiên.

Bước 3: Phát biểu vấn đề: đi tìm nguyên nhân của mâu thuẫn hoặc giải thích hiện tượng lạ đó.

Ví dụ: Tạo ra tình huống có vấn đề khi nghiên cứu tính oxi hóa của axit sunfuric đặc nóng.

Bước 2. Làm xuất hiện mâu thuẫn: làm thí nghiệm biểu diễn về tác dụng của axit sunfuric đặc nóng với đồng (là kim loại đứng sau hiđro). Vẫn thấy có phản ứng hóa học xảy ra. Khí tạo ra không phải là H 2 mà là SO 2.

Bước 3. Phát biểu vấn đề: H 2SO 4 đặc nóng có tác dụng cả với đồng là kim loại đứng sau hiđro trong dãy hoạt động hóa học của kim loại. Nguyên nhân sự không phù hợp với điều đã biết về tác dụng của axit với kim loại là ở đâu? Axit sunfuric đặc nóng còn có những tính chất của axit không hay có thêm những tính chất gì mới?

Có thể tạo ra tình huống có vấn đề khi học sinh lựa chọn trong những con đường có thể có một con đường duy nhất bảo đảm việc giải quyết được nhiệm vụ đặt ra.

Khi đó xuất hiện tình huống lựa chọn hoặc tình huống bác bỏ (phản bác).

Ví dụ: Quá trình tạo ra tình huống lựa chọn hoặc tình huống bác bỏ công thức cấu tạo của rượu etylic cũng gồm ba bước sau:

Bước 1. Tái hiện kiến thức cũ, nêu nhiệm vụ mới cần giải quyết: rượu etylic có công thức phân tử C 2H 6 O phải có công thức cấu tạo như thế nào?

Bước 2. Làm xuất hiện mâu thuẫn, nêu các giả thuyết: ứng với công thức phân tử C 2H 6 O có thể có 2 công thức cấu tạo:

(1) (2)

Bước 3. Phát biểu vấn đề: Giả thuyết nào là đúng, các giả thuyết khác vì sao không đúng? Làm thí nghiệm và lập luận xem công thức (1) hoặc (2) phù hợp với tính chất của rượu etylic.

Có thể tạo ra tình huống có vấn đề khi học sinh phải tìm đường ứng dụng kiến thức trong học tập, trong thực tiễn hoặc tìm lời giải đáp cho câu hỏi “tại sao”.

Lúc đó xuất hiện tình huống vận dụng hoặc tình huống tại sao.

Ví dụ: Tạo ra tình huống có vấn đề khi nghiên cứu tính chất lưỡng tính của nhôm hiđroxit (Hóa học lớp 12).

Bước 2. Đưa ra hiện tượng có chứa mâu thuẫn với kiến thức cũ gây ra lúng túng bế tắc khi giải quyết vấn đề trong học tập hay trong thực tiễn: đổ một lượng nhỏ dung dịch nhôm clorua (AlCl 3) vào lượng lớn dung dịch NaOH thì không thu được kết tủa tuy lúc đầu có xuất hiện nhưng lại tan đi ngay.

Bước 3: Tìm nguyên nhân của bế tắc, lúng túng và tìm những con đường khác nhằm vận dụng kiến thức đã học để có thể giải quyết được nhiệm vụ đặt ra: tìm nguyên nhân của việc không thu được kết tủa nhôm hiđroxit và tìm cách khắc phục.

4. Câu hỏi có tính chất nêu vấn đê

“Câu hỏi nêu vấn đề” là mắt xích cuối cùng nhưng quyết định sự thành bại của toàn bộ việc tổ chức tình huống có vấn đề. Việc xây dựng tình huống có vân đề kết thúc ở chỗ vấn đề được nêu lên dưới hình thức “câu hỏi nêu vấn đề”

Câu hỏi nêu vấn đề là câu hỏi về cái chưa biết, thường xuất phát từ phía học sinh hơn là phía giáo viên. Câu hỏi nêu vấn đề bao giờ cũng nhằm kích thích sự suy nghĩ tìm tòi của học sinh, buộc các em phải vận dụng những thao tác tư duy khác nhau, phải giải thích, chứng minh, tự kết luận. Để trả lời những câu hỏi nêu vấn đề, học sinh cũng phải tái hiện kiến thức cũ, nhưng không phải dưới dạng “kiến thức cũ nguyên xi” mà học sinh phải gia công thêm, kết hợp các kiến thức đó với nhau…

Câu hỏi nêu vấn đề khác với “câu hỏi thông báo”. Những câu hỏi có tính chất thông báo chỉ đòi hỏi sự nhớ lại (tái hiện) kiến thức cũ đã biết, yêu cầu chủ yếu trí nhớ của học sinh mà không động viên sự tìm tòi của các em. Chẳng hạn, học sinh đã học định nghĩa của oxit, giáo viên chỉ hỏi “oxit là gì?”.

Câu hỏi nêu vấn đề phải có những đặc điểm sau:

a. Phải chứa đựng một mâu thuẫn nhận thức. Điều đó chỉ đạt được khi câu hỏi phản ánh được mối liên hệ bên trong giữa điều đã biết và điều phải tìm.

b. Phải chứa đựng phương hướng giải quyết vấn đề, thu hẹp phạm vi tìm kiếm câu trả lời. Nghĩa là phải tạo điều kiện làm xuất hiện giả thuyết, tạo điều kiện tìm ra con đường đúng đắn nhất để giải quyết vấn đề.

C. Phải phản ánh được tâm trạng ngạc nhiên của học sinh khi nhận ra mâu thuẫn nhận thức, khi đụng chạm tới vấn đề.

Chẳng hạn, sau khi học về các oxit, giáo viên nêu câu hỏi: “Tại sao trong tự nhiên không tồn tại canxi oxit (hoặc anhiđrit photphoric) ở dạng tự do?”. Câu hỏi này khác với câu hỏi chỉ có tính chất thông báo như: “Canxi oxit có tan trong nước không?” hoặc (Canxi oxit có tác dụng với nước không?”.

Dương Xuân Thành

Nguồn: giáo trình phương pháp giảng dạy của thầy Nguyễn Cương

Bạn đang xem bài viết Học Cách Suy Nghĩ Và Giải Quyết Vấn Đề Như Một Lập Trình Viên ! / 2023 trên website Maiphuongus.net. Hy vọng những thông tin mà chúng tôi đã chia sẻ là hữu ích với bạn. Nếu nội dung hay, ý nghĩa bạn hãy chia sẻ với bạn bè của mình và luôn theo dõi, ủng hộ chúng tôi để cập nhật những thông tin mới nhất. Chúc bạn một ngày tốt lành!