barbagroup / JITcode-MechE

Online learning modules to learn computing in a problem-based context within Mechanical Engineering
MIT License
7 stars 5 forks source link

New lesson style for Rover Notebooks #33

Closed gforsyth closed 10 years ago

gforsyth commented 10 years ago

@labarba @ahmadia @zwade

Hi all, I have an idea but I'd like to get some feedback before diving in.

The early rover notebooks suffered from way too much info, too quickly. @zwade has done a good job rewriting them (see http://nbviewer.ipython.org/github/barbagroup/JITcode-MechE/blob/dev/module00_Introduction_to_Python/03_Lesson03_Rover_Conditionals.ipynb and http://nbviewer.ipython.org/github/barbagroup/JITcode-MechE/blob/dev/module00_Introduction_to_Python/04_Lesson04_Rover_Loops.ipynb) but I think they're still going to be a little bumpy. (Mostly it's the difficulty in cleanly "showing" the rover's position so that the students have feedback from the commands they send)

Proposal: A notebook with a black-boxed "rover" library to allow students to send commands to the rover so that they can experiment with that.

Then, in the following notebooks, slowly unveil the black-boxed library and have them duplicate/improve (?) its functionality piece by piece.

If we did this, I think we could be up front about it, e.g. "Here's a library we've written to help you familiarize yourself with controlling the rover, you're welcome to take a look at the code driving the rover, but it's more complicated than what we've done before. But before long, we'll be showing you how to write your own rover driving code"

ahmadia commented 10 years ago

This is a great idea. I'm +1

labarba commented 10 years ago

As discussed on Google Hangout with Gilbert yesterday, this idea of using black boxes to hide code away does not appeal to me. Let's try to work on the presentation of the written content on the rover lessons now to improve the flow. The code has been nicely cleaned up by Zach. Now we just need a good write-up: General rule: explain what the code will do, then do it, then explain what you just did. Plus, add brief description of any built-in functions used, with a link to the Python documentation, and (since this will be the second lesson using function definitions) introduce docstrings. Also, we agreed to change "maze" for "terrain" everywhere.