Giter VIP home page Giter VIP logo

c4ejs-student-book's People

Contributors

anhquann avatar huynq-workk avatar phuongnam7899 avatar qhuydtvt avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

c4ejs-student-book's Issues

Lời giải bài tập chưa kĩ lưỡng

File: Biến

Line 62 (Đáp án bài tập cuối cùng mục II)

Description: Mục đích của bài tập là gây bối rối cho học sinh khi câu lệnh console.log(x) không nằm trong scope của let x = 20 (2 dấu ngoặc nhọn ở trong) mà chỉ nằm trong scope của let y = 30 (2 dấu ngoặc nhọn bao ngoài). Khi đưa ra lời giải cần nói rõ điểm này: câu lệnh console.log(x) sẽ báo lỗi nhưng câu lệnh console.log(y) sẽ cho ra kết quả là 30.

Suggestion: Bổ sung giải thích như trên, có thể đưa ra ví dụ câu lệnh phải được viết như thế nào để in ra được biến x (nằm trong scope của x)

Refer giữa các phần với nhau

File: Biến

Line 18-19 (Phần 3 mục I, bullet point 3.1)

Description: Khi đọc đến đây, học viên sẽ tự hỏi vì sao phải đặt tên biến có nghĩa, quy tắc đặt tên là gì.

Suggestion: Nếu mình cover nó ở mục 4 thì hãy ghi rõ là sẽ đề cập ở mục 4 để học sinh không mất thời gian liên tưởng (giống như bullet point 3.3 đã làm rất tốt khi refer đến phần II!)

Sử dụng let thay vì var làm ví dụ

File: Biến

Line: 68-74 (Phần 2 mục III)

Description: Chương này được thông báo là chỉ cover câu lệnh let, tuy nhiên ví dụ lại sử dụng câu lệnh var. Học viên sẽ thắc mắc ý nghĩa của câu lệnh var này.

Suggestion: Đổi ví dụ thành câu lệnh let, hoặc bổ sung giải thích ngắn gọn về câu lệnh var và const ở phần trên.

Lỗi logic giữa 2 câu liền nhau

File: Giới thiệu khoá học

Line: 11-12

Description: câu không có mối quan hệ nhân quả với nhau. Câu 1 “Cô gái…cử động” chỉ ra rằng Javascript (cử động) quan trọng hơn CSS tuyệt vời (không cần quá xinh đẹp). Tuy nhiên câu 2 lại nói về việc có HTML trước khi có JS.

Suggestion (If needed): Sửa câu 1 thành “Trước khi có 1 cô gái biết cử động, ta cần phải có cô gái đã” hoặc tương tự.

Hướng dẫn Inspect không bao gồm trình duyệt Safari

File: Giới thiệu khoá học

Line 40-41 (Mục III, bullet point số 10)

Description: Ở Safari nút Inspect sẽ là “Inspect elements” và tab Console nằm ở bên phải màn hình, không phải thứ 2 từ trái sang.

Suggestion: Cover tất cả các trình duyệt

The WHY: “Biến dùng để làm gì?”

File: Biến (Variable)

Line 10-13 (Phần 2 mục I)

Description: Trước khi tìm hiểu về biến, học sinh có thể muốn biết vì sao họ lại phải học về biến.

Lỗi logic giữa 2 câu liền nhau #2

File: Giới thiệu khoá học

Line: 13-15 (Mục II, bullet point 1)

Description: 2 câu không có mối quan hệ nhân quả dễ nhận thấy (too big a leap), cần có thêm 1 bước đệm giải thích. Việc các ngôn ngữ này phổ biến thì liên quan thế nào đến việc chỉ cần cài đặt code editor? Nếu như các ngôn ngữ này không phổ biến thì chuyện gì sẽ xảy ra?

Suggestion (If needed): Bổ sung 1 câu giải thích mối quan hệ giữa 2 câu đã viết.

Thiếu liên kết giữa ví dụ ở Mục 1 tới khái niệm về biến

File: Biến (Variable)

Line 10-13 (Phần 2 mục I)

Description: Ở phần 1, học sinh được biết biến là nhân tố khó chiều, hay thay đổi. Vậy có liên quan gì đến việc biến là cái hộp, mỗi lúc chỉ lưu trữ một value?

Suggestion: Bổ sung vào bullet point 1: “Giá trị (value) nằm trong hộp không cố định mà có thể thay đổi tuỳ theo những yếu tố khác hoặc theo sự sắp đặt của bạn. Hôm nay trong hộp chứa giá trị a, ngày mai có thể chứa giá trị b, cũng giống như tiền tips của Đức lúc 8h-9h là 200k, nhưng lúc 9h-10 lại chỉ có 10k vậy.”

Nhìn chung, luôn có những câu “cầu nối” để người học dễ liên tưởng từ ví dụ đến khái niệm.

Ví dụ Hoisting thiếu phần thực thi lệnh

File: Biến

Line: 68-74 (Phần 2 mục III)

Description: Mục tiêu của phần này là chỉ ra 2 đoạn code 1 và 2 khi thực thi đều cho kết quả như nhau là x = 5. Tuy nhiên, ví dụ lại không có phần thực thi lệnh và kết quả, học sinh sẽ thấy khó hình dung.

Suggestion: Viết lại Theo trình tự sau:

  1. Giải thích ngắn gọn: Hoisting là khi trong 1 số trường hợp, JS tự động thay đổi code trước khi thực thi
  2. Đưa ra code 2 trước + giải thích ý nghĩa từng dòng + kết quả sau khi thực thi.
  3. Đưa ra code 1, phân tích sự bất thường khi câu lệnh in console.log(x) được đưa ra khi biến x chưa được khai báo. Sau đó chạy code, cho học sinh thấy kết quả vẫn y như Code 2
  4. Kết luận về khái niệm hoisting.

Định nghĩa biến chưa rõ ràng

File: Biến (Variable)

Line 2-9 (Phần 1 mục I)

Description:

  1. Việc định nghĩa biến (variable) - tips trong tương quan với hằng (constant) - 100k là tốt, tuy nhiên cũng có thể gây rối cho học sinh. Trong trường hợp không tồn tại hằng số thì biến trông như thế nào, hay bắt buộc phải có hằng số thì biến số mới tồn tại?
  2. Việc kết luận vì sao tips lại là biến (variable) chưa được giải thích rõ ràng ở line 9.

Suggestion: Viết kết luận rõ ràng hơn ở line 9. Ví dụ: Trong ví dụ trên, tips được gọi là biến, vì nó không có giá trị cố định; giá trị của nó thay đổi theo những yếu tố khác. Trái lại, số tiền 100k được gọi là hằng số vì giá trị của nó không thay đổi. Một số ví dụ khác về biến số trong thực tế: thái độ của người yêu bạn ngày hôm nay (phụ thuộc vào độ quan tâm của bạn cho người ta trong vài ngày vừa rồi), hay số lượng hoa đào nở Tết này (phụ thuộc vào thời tiết ấm hay lạnh).
Nhìn chung, cố gắng viết những câu kết luận rõ ràng.

Guideline thiếu dấu chấm phẩy ";"

File: Giới thiệu khoá học

Line 32-33 (Mục III, bullet point 9)

Description: Học viên rất có thể quên dấu chấm phẩy, vì guideline không có dấu chấm phẩy (chỉ có trên ảnh, không có trên text).

Suggestion: Bổ sung bullet point số 10: Sau khi chạy code, nếu bạn không thấy dòng chữ Hello world hiện lên trên trình duyệt, có thể bạn đã quên dấu “;” ở cuối câu. Dấu “;” là một phần quan trọng của cú pháp JS.

Bài tập không có lời giải

File: Giới thiệu khoá học

Line 42-44 (Bài tập)

Description: Không có lời giải cho bài tập. Học sinh có thể thắc mắc kết quả hiện lên thế nào là đúng, có phải xuống dòng không, xuống dòng thế nào? Có phải tạo nhiều dòng console.log khi xuống dòng không?

Suggestion: Bổ sung lời giải và gợi ý cách xuống dòng (có thể làm riêng 1 mục lời giải ở cuối sách)

Giải thích việc gán giá trị cho biến

File: Biến

Line 40 (Bài tập 1 mục III)

Description: Việc khai báo let x = 5 là gán giá trị cho biến. Ở phần trên, học sinh mới chỉ học cách khai báo một biến undefined (let firstVariable;) nên có thể sẽ thắc mắc tại sao ở đây khi khai báo là khai là let x=5. Có thể gán giá trị bằng chữ được không hay chỉ có số mới được?

Suggestion: Bổ sung khái niệm gán giá trị cho biến trước khi đưa ra bài tập này. Tương tự, ở bài tập 2, cũng cần có lời giải thích về việc gán một giá trị khác cho biến sau khi đã khai báo và gán giá trị ban đầu cho biến.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.