Coder Social home page Coder Social logo

bootstrapworld / curr Goto Github PK

View Code? Open in Web Editor NEW
13.0 17.0 23.0 584.01 MB

All curricular materials for Bootstrap course modules

Home Page: http://www.BootstrapWorld.org

Racket 87.84% Shell 0.03% TeX 0.30% CSS 2.16% JavaScript 9.67% HTML 0.01%
algebra education computer-science physics-based data-science teachers students

curr's Introduction

This is the repository for Bootstrap curriculum and the software infrastructure that generates notes, handouts, workbooks, and other educational materials from the curriculum.


Licenses

The curriculum is licensed under a Creative Commons 4.0 Unported License (type CC BY-NC-ND). Based on a work at www.BootstrapWorld.org.

The software infrastructure is licensed under a Creative Commons 4.0 Unported license (type CC BY-NC-SA)

Permissions beyond the scope of these licenses may be available by contacting [email protected].


Installation

  1. You'll need to install DrRacket v6.10 or later and wkhtmltopdf, version 0.12.3 first, before cloning the curr repository. (Note: the current release of wkhtmltopdf, version 0.12.4 as of this writing, contains a regression that prevents the workbook from printing properly)

  2. Then set up curr as a Racket collection.

    Go to the parent directory of curr, and do the following:

    $ raco link curr

  3. Generate the curriculum.

    $ ./build-distrib

By default, this will build every course in every available language in the /distribution directory. Note: this can take some time!

If you wish to build only the lesson plans (not the workbook and solutions), you can also use $ ./build-notes. Similarly, $ ./build-workbook will create the workbook without also building the lesson plans.

All three of these scripts accept the following arguments: --language [en-us|es-mx|etc] and --course [algebra|reactive|data-science|physics]


Contributors

Bootstrap builds on the Scribble infrastructure developed by Matthew Flatt and Eli Barzilay as part of the PLT project.

Current Maintainers:

  • Kathi Fisler
  • Emmanuel Schanzer
  • Emma Youndtsmith
  • Joe Politz
  • Shriram Krishnamurthi

Major past contributers:

  • Danny Yoo
  • Rosanna Sobota
  • Sam Dooman

Other contributers:

  • Vicki Crosson
  • Miles Eldon
  • Daniel Kocoj
  • Katherine Ng
  • Mike Rowland
  • Jonah Stanley
  • Andrew Tian
  • Winnie Wang
  • Eric Allatta
  • CoriAnne Burgess

curr's People

Contributors

benjaminmurphy avatar bootstrapjen avatar cleoqc avatar dankocoj4 avatar doshiro avatar ds26gte avatar dyoo avatar emmay avatar jjackson12 avatar jonahstanley avatar jpolitz avatar kfisler avatar mileseldon avatar schanzer avatar sdooman avatar shriram avatar sorawee avatar taps3 avatar viccro avatar ww15 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

curr's Issues

BS2 syntax coloring

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?

BS2 Unit 1 : Closing text about syntax

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.

BS2 Unit 2 : Cars lesson - stuff we care about

"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"

BS2 Unit 1: activity after "review file"

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.

BS2 Unit 1 : teacher note on DR step 2

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.

BS2 Unit 1 : "however" in pre-defined functions

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.

[Unit 5] Flesh out update-world

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.

[Unit 3] Students are asked to write struct-specific info in the contracts page?

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.

  1. This is not the right place for it. Shouldn't it be page 14, where students fill out the data definition?
  2. What is the contract for a dot-accessor? I thought we weren't calling them functions, so they shouldn't have a contract.

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.

BS 2 Unit 2 : last teacher note in Intro Structures lesson - representation

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.

BS2 Unit1 : shortcut

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?

BS2 Unit 1 : teacher note at start of DR lesson

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.

BS2 Unit 2 : activity to write fall

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.

BS2 Unit 2 : Review Step 2

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)

[Workbook] Unecessary extra lines for red-shape

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.

More space separating editable code from non-editable code

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)

BS2 Workbook Lesson 1 page 1

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.

BS2 Unit 2 glossary : name

"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?

BS2 Unit 2 : Review Step 3

In the reminder to add the fun and end keywords, should you also remind about the : after the function header?

BS2: Unit 3 description

"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.

BS2 Unit 2 : Cars lesson

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)

[Workbook]

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.

BS2 Unit 2 : Introducing Structures

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.

BS2 Unit 2 : contract for coord constructor

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?

[Units 2-3] Functions in the CPO Car file do not match the DR Format

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:

Given a car and a color, return a car that has been painted

...
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

BS2 Unit 2 Review

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?

[Unit 6] Workbook pages 25-26 are not mentioned

  1. You tell kids to fill out page 24, and then jump to 27!
  2. In the interests of time, pages 25-26 should be pre-filled to show the DR for keypress in NinjaWorld
  3. Then kids can fill out the DR pages for their own games
  4. And since they don't do page 24 until after they've done 25-26, you need to re-order these pages

[Ninja-World 3] indenting

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

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.