engineerscode / engcomp4_landlinear Goto Github PK
View Code? Open in Web Editor NEWUsing computational thinking to get deep insights on the foundations of linear algebra
Home Page: http://go.gwu.edu/engcomp4
Using computational thinking to get deep insights on the foundations of linear algebra
Home Page: http://go.gwu.edu/engcomp4
@tingyu66 and @labarba here are my comments on the lessons so far.
General comments:
The students will have to download the helpers that Tingyu wrote. There
should be instructions on how to download and import this module, where to
locate it and explain the sys path append.
Do we want students to do from plot_helper import *
, why not
import plot_helper as ph
and access the functions by doing for example
ph.plotvector()
? This way aligns more with what they are used to
module.function()
In all the 2d plots, the grid is plotted on top of the arrows, that doesn't
look good. You cna pick an alpha or plotted on the back.
I think that all the Try it! should be exercises, otherwise sound like it's
optional.
"This is the first lesson in the learning module titled "Land on Vectors
Spaces", teaching practical linear algebra with Python"
The part that says "teaching practical linear..." puts the attention on the
teaching, shouldn't be on the learning? Specially for those self-learners that
will find the material online. I would re-write that sentence:
"This is the first lesson in the module titled "Land on Vectors Spaces",
learning practical linear algebra with Python"
Try it! before fundamental vectors operations, it says "create a list of
vectors (either as tuples of coordinates, or as NumPy arrays" we haven't
defined what is a tuple, and if they use a NumPy array it's not clear what
should be the syntax.
You can recommend them to use ?plot_vector
for guidance, although those
docstrings should be improved, specially the description of tails, it's not
clear if it's a list or what data structure.
tails: tail's coordinates of each vector
"Two operations are the foundation of everything:" of everything? I'd say
something like:
"A vector space (or linear space) is a group of vectors with two operations:"
#When plotting vector addition we do:
a = numpy.array((-2,1))
b = numpy.array((1,-3))
origin = numpy.array((0,0))
Why are we using tuples inside the numpy.array()
I believe it makes since we
are no changing its values, but we haven't explained this. Until now students
have always seen the square brackets syntax numpy.array([a,b])
The grey of the grids in the 2d plots is a bit dark, and in this case looks
like the scaled vector is a vector that starts at the head of the original. I'd
put an alpha on that grey, or a less dark grey.
The end of the first sentences sounds weird.
Possible small exercise:
After "For any vector, its components are the scalars we need to multiply the basis vectors by to generate it. For example:"
You can add an exercise that ask to write in the same way the vector [a, b] so they generalize the idea.
basis vectors plot: The arrows plot over the axis are really hard to see. I
think it is because the grid is plotted on top of the arrows.
Linear combination and span
# span
vectors = []
i = numpy.array((1,0))
j = numpy.array((0,1))
for _ in range(30): --> using _ for the iterator, you should explain this!!!
We haven't defined what is linearly independent (in a set of vectors if no
vector in the set can be defined as a linear combination of others)
"We can use the NumPy dot()
method to multiply the matrix A and the vector
c :" why don't we use @
since the beginning, I think that dot()
can be
confused with dot product concept.
In the Try it says: "Create a 2ร2 matrix of your choosing (as a NumPy array
of the row list)," I don't understand the parenthesis, what are we trying to
say?
Add "What we've learned" section can be useful.
i and j are green and red ... need colors friendly to color-blind people
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.