Add prerequisites to Practice Exercises
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 25/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- vim
- Lĩnh vực
- content
Hướng nghiên cứu
Bắt đầu bằng cách xem xét config.json của từng track và các đặc tả Practice Exercises và Concepts được liên kết. Cập nhật mọi mục exercises.practice với practices và prerequisites, xóa topics sau khi các trường đó được định nghĩa, đồng thời đảm bảo mọi concept được tham chiếu đều tồn tại trong mảng concepts cấp cao nhất. Được xem là hoàn tất khi cấu hình tuân theo ví dụ và đặc tả v3 trên tất cả Practice Exercises.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
This issue is part of the migration to v3. You can read full details about the various changes here.
Exercism v3 introduces a new type of exercise: Concept Exercises. All existing (V2) exercises will become Practice Exercises.
Concept Exercises and Practice Exercises are linked to each other via Concepts. Concepts are taught by Concept Exercises and practiced in Practice Exercises. Each Exercise (Concept or Practice) has prerequisites, which must be met to unlock an Exercise - once all the prerequisite Concepts have been "taught" by a Concept Exercise, the exercise itself becomes unlocked.
For example, in some languages completing the Concept Exercises that teach the "String Interpolation" and "Optional Parameters" concepts might then unlock the two-fer Practice Exercise.
Each Practice Exercise has two fields containing concepts: a practices field and a prerequisites field.
Practices
The practices key should list the slugs of Concepts that this Practice Exercise actively allows a student to practice.
- These show up in the UI as "Practice this Concept in: TwoFer, Leap, etc"
- Try and choose 3 - 8 Exercises that practice each Concept.
- Try and choose at least two Exercises that allow someone to practice the basics of a Concept.
- Some Concepts are very common (for example
strings). In those cases we recommend choosing a few good exercises that make people think about those Concepts in interesting ways. For example, exercises that require UTF-8, string concatenation, char enumeration, etc, would all be good examples. - There should be one or more Concepts to practice per exercise.
Prerequisites
The prerequisites key lists the Concept Exercises that a student must have completed in order to access this Practice Exercise.
- These show up in the UI as "Learn Strings to unlock TwoFer"
- It should include all Concepts that a student needs to have covered to be able to complete the exercise in at least one idiomatic way. For example, for the TwoFer exercise in Ruby, prerequisites might include
strings,optional-params,implicit-return. - For Exercises that can be completed using alternative Concepts (e.g. an Exercise solvable by
loopsorrecursion), the maintainer should choose the one approach that they would like to unlock the Exercise, considering the student's journey through the track. For example, the loops/recursion example, they might think this exercise is a good early practice ofloopsor that they might like to leave it later to teach recursion. They can also make use of an analyzer to prompt the student to try an alternative approach: "Nice work on solving this via loops. You might also like to try solving this using Recursion." - There should be one or more prerequisites Concepts per exercise.
Although ideally all Concepts should be taught by Concept Exercises, we recognise that it will take time for tracks to achieve that. Any Practice Exercises that have prerequisites which are not taught by Concept Exercises, will become unlocked once the final Concept Exercise has been completed.
Goal
Practices
The "practices" field of each element in the "exercises.practice" field in the config.json file should be updated to contain the practice concepts. See the spec.
To help with identifying the practice concepts, the "topics" field can be used (if it has any contents). Once prerequisites have been defined for a Practice Exercise, the "topics" field should be removed.
Each practice concept should have its own entry in the top-level "concepts" array. See the spec.
Prerequisites
The "prerequisites" field of each element in the "exercises.practice" field in the config.json file should be updated to contain the prerequisite concepts. See the spec.
To help with identifying the prerequisites, the "topics" field can be used (if it has any contents). Once prerequisites have been defined for a Practice Exercise, the "topics" field should be removed.
Each prerequisite concept should have its own entry in the top-level "concepts" array. See the spec.
Example
{
"exercises": {
"practice": [
{
"uuid": "8ba15933-29a2-49b1-a9ce-70474bad3007",
"slug": "leap",
"name": "Leap",
"practices": ["if-statements", "numbers", "operator-precedence"],
"prerequisites": ["if-statements", "numbers"],
"difficulty": 1
}
]
}
}
Tracking
- Ngôn ngữ chính
- Vim Script
- Star
- 22
- Fork
- 27
- Merge trung bình
- 8 phút
- Pull request đã merge (30 ngày)
- 1
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của exercism/vimscript
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
-
🚨 configlet sync --test found unsynced testsCó thể làm lại được @BNAndras đã nhận 119 ngày trước và không có pull request nào đang mở. Đang mở
-
Build representerĐang mởx:action/create x:knowledge/advanced x:module/representer x:size/massive x:type/coding
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
-
Build analyzerĐang mởx:action/create x:knowledge/advanced x:module/analyzer x:size/massive x:type/coding
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
-
Pass linting checksĐang mởx:action/fix x:knowledge/elementary x:size/medium x:type/content
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 25/100
Tất cả issue của exercism/vimscript
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
1c7/chinese-independent-developer#1449 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Xtream Codes Link BuilderĐang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 70/100
iptv-org/awesome-iptv#823 ·
-
www.vlast.isĐang mởN: AdGuard for Windows P4: Low T: Annoyance
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
AdguardTeam/AdguardFilters#243266 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Sign the pledgeĐang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 95/100
input-output-hk/devx-updates#163 ·
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 95/100
lingdojo/kana-dojo#31515 · 1 bình luận · 5 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày