c4ejs-student-book's People
Forkers
qhuydtvt tambv6164 hoanghero125 minhduc9699 tuandat732 supporter09 phong1612 vuongtuankhanh emonno13 ducanh4531 hoanghiep2402 thaivu220802 kamisonnguyen minhdh-crypto ngxba buianptit tuan930929 shanele147 silvird tuan1412 xthuyttt c4ejs118 sptungc4ejs-student-book's Issues
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:
- 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
- Đưa ra code 2 trước + giải thích ý nghĩa từng dòng + kết quả sau khi thực thi.
- Đư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
- Kết luận về khái niệm hoisting.
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.
Không có hình minh hoạ cho box
File:
https://github.com/edtechkidsvn/c4ejs-student-book/edit/master/css/css-part2.md
Line:
6
Description:
Khải niệm box hay hộp cần có hình minh hoạ để người đọc dễ hình dung
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ự.
Chưa nói rõ mục đích của các loại selector, tại sao phải dùng ID, tại sao phải dùng class hoặc tag?
File:
https://github.com/edtechkidsvn/c4ejs-student-book/edit/master/css/css-part1.md
Line:
91
Description:
Cần đưa lý do cho việc tại sao phải dùng ID, Tag và Class Selector. Không những vậy mà nên đưa càng sớm càng tốt
Định nghĩa biến chưa rõ ràng
File: Biến (Variable)
Line 2-9 (Phần 1 mục I)
Description:
- 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?
- 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.
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.
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.
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.
Các box cần rời nhau ra ngay từ đầu để người đọc dễ phân biệt
File:
https://github.com/edtechkidsvn/c4ejs-student-book/edit/master/css/css-part2.md
Line:
37
Description:
Cần để các hộp rời nhau ngay từ đầu để người đọc phân biệt
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 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)
Liên hệ khái niệm Declaring và Evaluating variables với những ví dụ đã thấy ở phần trước
File: Biến
Line 63-67 (Phần 1 mục III)
Description: Ở phần trên, học sinh đã học về Declaring variables (let x = 5) và Evaluation variables (let x). Nên nhắc lại những ví dụ này để học sinh không cảm thấy họ đang gặp phải một khái niệm hoàn toàn mới.
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.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.