-
-
Notifications
You must be signed in to change notification settings - Fork 99
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[v3] Roadmap to Launch #280
Comments
Some of my thoughts:
I think that in dart I also believe that with the introduction of So perhaps we could have concept progression like:
Dart doesn't have type conversion in the sense of a loosely typed language. We could call this concept var a = ''; // a is type casted to a String
if(a is Pattern) {
// Scoped type casting
// a now guaranteed to act as an object of type Pattern
} Due to the surrounding scope of variable
Other concepts from exercism/v3#3:
Note worthy concepts that we could discuss in future iterations:
|
This comment has been minimized.
This comment has been minimized.
@devkabiir I am fine with a lot of what you said. A lot of this was just to get a draft up and get the conversation started. |
This comment has been minimized.
This comment has been minimized.
@exercism/dart I created a first draft of a concept exercise for Futures. Please check it out and leave comments. I'm still trying to figure out what the tests can be, I haven't used mockito uch before and that was awhile ago. If there are any suggestions for different ways to develop tests for Futures, let me know. I also dropped concept exercises for numbers and strings. But I will likely reverse that. We want to showcase Dart's unique features/API for these, we do not try to teach CompSci to the students. I still struggle with thinking the targeted audience already knows what some of the concepts are. But they may not know Dart's unique approach to them. |
I've highlighted the important part in that sentence. With v3, you're not expected to teach people what strings or numbers are (one can expect people to know about that), but you should teach people how to work with those concepts in Dart. Does that make sense? |
@SleeplessByte yes, that's what I was getting at. I have to constantly remind myself of that. |
I tried to collect all the concepts of dart to a first draft. Concepts in Dart
Variables
Built-in types
Functions
Operators
Control flow statements
Exceptions @Stargator
Classes
Generics @Stargator
Libraries and visibility
Asynchrony support @Stargator
Generators @Stargator
Callable classesIsolates @StargatorTypeDefsMetaData
Comments
Type Safety
|
Thanks @md-weber. I did some minor edits (in bold) and fixed some typos, that's a good list. I think the stuff in the first section (before Variables) are too high level to test. We can definitely mention these things, but most junior programmers shouldn't need concept exercises specifically for them. Similarly for the Variables section, that may be too high level, but we sure do what to write out these concepts in our docs. I suggest each @exercism/dart Maintainer edit the post by @md-weber. We'll do a multiple choice vote on which things each of us think would make good concepts to bring a single exercise around. Let's have the goal of finishing voting by 12:01am EST March 14th. You would vote by tagging the concept with your username (ie: @Stargator). Concepts tagged that contain sub-bullets would include everything in the sub-bullets. |
This list looks nice! Some tiny nits:
|
Linking a conversion that was ongoing in the Dart track here. As many other concepts were brought up. |
* First * Add : config.json authors & editor * Add : exchange file exchange_test / exchange * Fix : typo Line 2 from .exchange import * -> from exchange import * * Fix : Forder Name * Fix : Folder Name * Added example and instructions. (#6) added : currency-exchange/.meta/example.py added : currency-exchange/.docs/instructions.md * Added design.md (#7) * added design.md added : currency-exchange/.meta/design.md * Added hint.md (#8) Added hint.md (#8) * Add : hint.md (#10) * Delete .DS_Store * Add : hint.md (#9) Add : hint.md Solving Conflict * Add introduction.md (#8) * Fix: typo (#11) fix exchangable to exchangeable fix "Chandler want" to "Chandler wants" in instructions.md * Change File_name & Prettier (#12) * Fix : Prettier (#13) * Add : slug to config.json (#14) * Fix config (#15) * Fix introduction.md (#16) * Fix instructions.md (#17) * Fixed instructions.md Fixed grammatical errors in instructions.md based on BethanyG's review. Co-authored-by: Limm-jk <201602057@cs-cnu.org> Co-authored-by: Junkyu Lim <57378834+Limm-jk@users.noreply.github.com> * add testcase * Added problem "6. Calculate unexchangeable value" (#19) * Added new problem "Calculate unexchangeable value" Added modular arithmetic problem Calculate unexchangeable value * Added new problem "Calculate unexchangeable value" (example.py, exchange.py) Modified example.py, exchange.py * Modified Calculated unexchangeable value Modified `unexchangeable_value()` function's expected return type to be `int` * added new lines at the end of file * applied prettier on instructions.md Co-authored-by: Limm-jk <201602057@cs-cnu.org> Co-authored-by: Junkyu Lim <57378834+Limm-jk@users.noreply.github.com> * Add : Problem Design (#20) * Update languages/python/config.json we changed the concept name, so needed to update file. * Update languages/python/exercises/concept/currency-exchange/.docs/introduction.md * Update languages/python/exercises/concept/currency-exchange/.docs/introduction.md * Update languages/python/exercises/concept/currency-exchange/.docs/introduction.md * Update languages/python/exercises/concept/currency-exchange/.docs/introduction.md * Update languages/python/exercises/concept/currency-exchange/.meta/config.json we've decided to name the stub and test files for the concept and not the story. * Update languages/python/exercises/concept/currency-exchange/.meta/design.md minor typo * Update languages/python/exercises/concept/currency-exchange/exchange_test.py * Update languages/python/exercises/concept/currency-exchange/exchange_test.py * Update languages/python/exercises/concept/currency-exchange/.docs/introduction.md Co-authored-by: Yunseon Choi <science_co@naver.com> * Update languages/python/config.json removed arithmetic as a concept until we get the about.md file made. * Update languages/python/exercises/concept/currency-exchange/.meta/config.json reverting file name change and deferring to different PR. This is currently breaking a CI test. Co-authored-by: Yoggy <wjdek88@naver.com> Co-authored-by: Seunghun Yang <Yabby1997@gmail.com> Co-authored-by: Ticktakto <50654571+Ticktakto@users.noreply.github.com> Co-authored-by: Yunseon Choi <science_co@naver.com> Co-authored-by: wnstj2007 <43427152+wnstj2007@users.noreply.github.com> Co-authored-by: BethanyG <BethanyG@users.noreply.github.com>
This issue is to track the Dart v3 roadmap. If you intend to help with this track, please read this entire document, and find the section about "How can you help".
@exercism/dart Please update and revise this as I pulled much of it from a template.
I have been working on the Dart v3 track by compiling a list of Dart specific concepts, transition documents from various languages and starting writing exercises. The concepts can be found here.
Folder structure
Specifics for Dart concepts can be found in the
/info
folder. There are other special folders such as/keywords
, which take the keyword, and explain what they do, as they are language-specific (mostly), and the/types
folder in many other languages: it lists the global objects available.Concept exercises
The concept exercises in the Dart track are a work-in-progress and can be found in
/concept-exercises
. Important types of concepts to target are things that only exist in object-oriented programming (for people coming from non-oop languages), functions as a first class citizen (for people coming from non-functional languages), and Dart specifics.It is important to understand we never explain a specific type or syntax as a concept, but teach the more "abstract" concept around it, using the type(s) or syntax(is).
A list of exercises that we must have is compiled below, and is not at all a complete list:
/numbers
:"basic-numbers"
,"type-conversion"
/strings
:"basic-strings"
/futures
:"futures"
"basic-iterables"
"basic-errors"
"recursion"
⚠ Note ⚠: The idea here is to use a
concept
name for the folder, but perhaps use some sort of "progression", so they will naturally become a sort of path to traverse. In this example, thenumbers
exercise only teaches basic number usage, and doesn't look into more advanced subjects. I would expect to seenumbers-advanced
for mathy usage that is non-basic,numbers-irrational
showing how to do irrational / complex / whatever numbers,numbers-precision
which would explore binary representation and floating points,numbers-arbitrary-precision
which would explorebigints
and/or how to do that with decimals.It's only important that it's reasonably easy to find the exercise. It's okay if the name isn't perfect. We will iterate on this.
Concept interpretation
Here is how I've interpreted the following concept-keywords. This should be synced across tracks.
basic-numbers
number
type and (for this language) see that it's whole numbers, and floating points. Know of basic operators such as multiplication. Know where it's documented, or at least how to search for it.basic-strings
string
type. Know of some basic functions (like looking up a character at a position, or slicing the string). Know where it's documented, or at least how to search for it.futures
future
construct (promise
orobservable
type in some other languages), chain-ability, and.then
. Know where it's documented/how to search.basic-iterables
Iterable
construct (array
type in some other languages). Know of some basic functions.basic-errors
callbacks
recursion
type-conversion
This also indicates that for example
basic-strings
does not include knowing that Dart strings aren't strings in the compsci sense as in, they are made up of UTF-16 codepoints, and therefore there are a lot of catches with this.How can you help?
This track
/info
,/keywords
and/types
folders. They need to be written. You can use the examples from other tracks to see what we're looking for.Globally
There are concepts missing.
Exercises
We need two types of exercises. The concept ones, as explained above -- you can chose to pick one from the list above or suggest, in this issue, one that's not listed. The other ones are the practice ones, which are like the v2 exercises.
Analyzers
TBD
The text was updated successfully, but these errors were encountered: