bootstrapworld / curr Goto Github PK
View Code? Open in Web Editor NEWAll curricular materials for Bootstrap course modules
Home Page: http://www.BootstrapWorld.org
All curricular materials for Bootstrap course modules
Home Page: http://www.BootstrapWorld.org
The jump from the provided example to the finished solution is a bit too high, and should at least include one example that uses START or NEXT.
Right now they're using inline comments and type annotations, which contrasts with the DR from Bootstrap:1. We agreed that for BS:2, we would use the same structure as before. In other words....
fun paint-job(c :: Car, color :: String) -> Car:
...
end
should be.....
# paint-job : Car String -> Car
# Given a car and a color, return a car that has been painted
fun paint-job(c, color) -> Car:
...
end
ALSO: there seems to be an errant " at the end of the comment
Doesn't explicitly refer to "purpose statement" as a vocab term, but probably should
In the reminder to add the fun and end keywords, should you also remind about the : after the function header?
Rather than talk of functions returning "things" and and combining "things", why aren't you reinforcing the term/concept "values"?
The sentence "thankfully, pyret has a way ..." suggests that this is unique to Pyret, rather than a fundamental concept of programming (and math, which talks of coordinates as single entities!). Perhaps expand this out to a couple of sentences, something like "this problem arises frequently in both programming and math: we need to treat multiple values as a single, more complex value. We'll return to this throughout the course. For now, we simply show you how to create a that combines two numbers into a single ."
Open to other suggestions on the wording -- this is just a sense of what I'm thinking here.
I notice the presentation of questions in the DR review here differ from the questions in Step 1 in unit 1. Should we be making these more consistent?
"we care about a couple of things in our shop" -- we should be more precise than "things" (and "in our shop" doesn't suggest that those "things" are aspects of cars). How about "we care about a couple of details about each car, each of which we can describe with the types we already know"
Beginning of contracts section refers to "these functions" -- as opposed to which other functions? Not sure "these" is appropriate.
In the Autos file, the DON'T CHANGE ANYTHING BELOW THIS LINE! warning should have a lot of whitespace above it, so it's more clearly separated from the editable code.
(This may also be the case with other files - this is just the first place I noticed it)
"organizing many different values" -- the point is that there are multiple values, not different values. Replace "many different" with "multiple"
"Name" seems a generic term to be defining -- it stands out when I look at the glossary by itself. Suggests we don't use the word "name" anyplace other than as its definition. Is that accurate?
After the "unless we use a data structure!", I feel we should remind readers that we use functions to combine data into coords. Then we can ask "which function does that". The idea of using functions to make data is new here -- let's reinforce it gently through here.
Has a comma between the domain types. Typo, or standard for Pyret? Other contracts in unit lack the commas
Think we should avoid confusion and not mention the "value" of the car. Probably better to stick to "price"
Students are asked to write the constructor and dot-accessors for the Party struct in their contracts page, even though Party is not part of the language.
Proposal: come up with a single-page template for Data Definitions, and give students practice filling it out in Unit 3 for both Party and Car. This template should include the data definition, the contract for the constructor, a place for students to write an example that defines a variable of that type, and (possibly) a list of dot-accessors using that definition. See below:
_#_a Party is a location, theme, and number of guests
data Party:
| party(location::String, theme::String, guests::Number)
end
To make an example of this structure, I would write....
var party1 = ________________________________________
To access fields of the structure, I would write...
This template can be used over and over, for Cars, Worlds, etc.
Page 22 forces students to use four images in addition to their background. What about students who only have 3? Or 5? Let's simplify this by just giving students plenty of blank lines, and maybe start them with a single 'put-image(_____' line at the top.
Unit 4 asks students to go to do some work on Page 18. Unit 5 appears to start off by having them do the same work. One of these should be removed.
Testing
Why does this mention expressions over strings and images but omit numbers?
Do you usually refer to defined names as "shortcuts"? That phrase is being used in a semi-technical way a couple of points above the "contracts" lesson. I can understand an informal, intuitive description of a definition giving a shortcut, but is that the term we want to use in more definitional contexts?
"made pre-built data structures" is an odd phrase. I think of making a data structure as writing the define-struct, but that conflicts with "pre-built". Is "used" better than "made"?
Also, this one says "will generalize", but the other descriptions omit "will". Make tense consistent.
There's no room for it in the lesson plan, but I feel like we should least offer teachers a chance to introduce or practice using Ask:. How about re-writing red-shape?
We should be consistent with fonts and iconography across the workbooks. Why the italics? And isn't the URL logo different from the BS1 version?
The note shifts from the phrase "writing examples" to 'writing test cases". Should we pick one and be consistent about it? Al the surrounding text seems to refer to examples, which is the better description than test case anyway.
"y-position of the payer" (needs to be "player")
Unlike BS1, BS2 doesn't seem to have syntax coloring. Presume this is something we want, and that fixing this is a Kathi/Emmanuel issue?
A couple of points before the contracts lesson, the text says "however, there are also plenty of built-in functions". "however" doesn't contrast anything from the previous sentence, so wrong word choice.
Surprised that "syntax" isn't treated as a vocabulary term when first introduced. It certainly isn't an obvious term for math teachers.
Riffing on our thread with Ben, we should always insert a line-break after "then:" for any non-trivial expression. In other words...
| strings-equal(key, "up") then: world(w.dogX, w.coinX, w.catX, w.catY + 10)
should be
| strings-equal(key, "up") then:
world(w.dogX, w.coinX, w.catX, w.catY + 10)
This is also likely broken in future Ninja Worlds. Meanwhile, short things like "otherwise: w" can stay on the same line
The activity refers to the "other vars". "Other" in contrast to what? (wasn't sure what variable they should already know)
Is "get back" terminology we use consistently for the values of expressions? Seems bit informal, so checking that this is consistent with what's written elsewhere.
I'm uneasy with saying "learned a lot of syntax" -- does that create the impression that we threw too much at them too fast? It's the "a lot" I'm concerned about. Replacing that with something like "learned how to write BS1 material in the syntax of a new language". Acknowledge it without playing it up too much.
"Arithmatical" should be "arithmetic"
Our code should be a model of what's ideal. In the lesson, we ask kids to write test cases...but we don't do it ourselves in the provided code!!!
In unit 3, students are asked to turn to page 14 long before doing pages 12 and 13. The workbook should follow the flow of the lesson.
Concerned that we promote poor naming habits by using generic variable names like "S1", "S2", etc. Switch these to plausible var names for the data at hand.
Maybe I'm just old, but it took me a couple of readings to figure out that "trick them out" didn't mean "steal their money" (or otherwise be dishonest)
The coord contract seems to be in the same text line as the rest of the paragraph, rather than in its own paragraph. Is that a problem in the scribble file or in the backend/CSS?
In the activity under Step 1, a bullet asks for the name of the input. That question is premature, right?
I think you need to give more scaffolding for update-world. At least walk them through the contract, one example, and enough of the body to reach "what does the range tell me I need to make? A world!", so students can be reminded of how the contract tells them which constructor to use.
Same as the other Issue: comments should be written above/outside of data definitions, no?
I see "these , later" at the end of the Step 1 part -- extra space around comma
The text says "using" fall. Don't we have a more precise term than "using" that we consistently use for calling a function?
I strongly suspect kids will think their answers have to be multiple lines. If we can squeeze the whole recipe onto a single page, I think there's a big win here. Let's just give them one line for this, since we're using MS Word for the workbook anyway.
NOTE: if we can't fit it into one page at all, nevermind.
I don't see anything in the notes that explains how to read the data struct definition in the Pyret file. We're assuming that people will piece it together. Might need to be more explicit.
The last sentence says "represent all these things with a DS". The point is that you want to aggregate all these things into a single value. We can already represent each of them. The point is that we want a way to refer to them collectively so that we have one value describing one player, or one game element, or one coordinate, etc.
I raised this is an earlier comment, but we should be very careful to reinforce the idea of values throughout this. Here, we see that values can contain other values. But we still want one datum to capture something formed of other values.
We should provide specific exercises for teachers/students, rather than telling teachers to just make up their own.
The activity contains a reminder about examples: and end:. Great to have it there, but it shouldn't be a bullet (since the bullets are supposed to be questions)
The note urges teachers to use vocabulary regularly and carefully. Be more explicit and list the terms that you want them to use. You don't need to give the definitions, but something like "use vocabulary---contract, example, ---regularly and carefully". Otherwise, easy for teachers to skip this convincing themselves that of course they are consistent with vocab.
Someone is going to want to know whether this capitalization pattern is required or convention. Address that in the teacher note.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.