resonance
resonance copied to clipboard
Use library as a ramp to develop "full scientific programming chops."
In our last meeting, we talked about re-organizing aspects of the curriculum to help students who come in with little or no programming experience to develop "full scientific programming chops."
- We noted that in this offering, the programming expectations for students started low and ramped up which was good. Perhaps we could make that transition even easier, for example by distributing @ixjlyons 's python 101 lessons over several lectures and homeworks.
- We also talked about how we could use this ramp method to include more analysis earlier. For example, we could try introducing SymPy earlier and doing some of the classical analysis in notebooks. This might let us include some of the "chalkboard" lectures more naturally here.
- We may also want to think about how to help students be active learners with computation. Some lessons in how to do things the hard way may be helpful, for example drawing a Bode plot by hand once or twice helps develop the connection between the order and the shape of the plot. This will also help them appreciate the ability of doing things computationally and possibly help them understand how and why a code snippet gives the result it does.
- We talked earlier about explicitly teaching debugging techniques, both with basic programming (interpreting errors, basic google-fu) and with a more scientific/analytic approach (try small problems first, report intermediate values, etc).
Comments from https://github.com/moorepants/resonance/issues/166#issuecomment-363327024:
- Introduction to Python section should include an exercise on writing loops and should define the difference between the types of objects: integer, float, and strings.
- Introduction to Python section should give some advice on troubleshooting and understanding the error messages (i.e. syntax error, runtime error, and semantic error). I found the Think Python resource helpful.
See #77 also.