Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Comments on lesson 1 and 2 #3

Open
3 of 4 tasks
ncclementi opened this issue Feb 28, 2019 · 2 comments
Open
3 of 4 tasks

Comments on lesson 1 and 2 #3

ncclementi opened this issue Feb 28, 2019 · 2 comments

Comments

@ncclementi
Copy link
Member

ncclementi commented Feb 28, 2019

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

01 Transform all the vectors (it is quite long)

  • "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
  • Fundamental vector operations:

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

  • Scaling vector plot

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.

  • Basis vectors
    "With the ideas of vector addition and multiplication by a scalar fresh in
    your mind, now imagine this." Any horizontal vector

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!!!
  • Definition: A basis for a vector space is a set of linearly independent
    vectors that span that space.

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)

  • What's a matrix?

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

No comments on lesson 2 in particular.

@tingyu66
Copy link
Member

tingyu66 commented Mar 22, 2019

Comments on 03/22:

  • explain / add a link to "linearly independent"
  • should discuss the choice between reshape+@ and dot for mat-vec
  • correct the usage of "system of coordinates" in "What's a matrix" section

Homework ideas Lesson 1:

  • write a function that takes in a pair of vectors and a pair of coefficient, return the linear combination of the two
  • write a function to normalize a vector
  • A transformation transforms [1,0] to [-1,2] and [0,1] to [3,4], calculate the coordinates of transformed vector of [10,20]
  • 3d version of the above exercise
  • special transformations
  • with two other transformations, swap the order of mat-mat multiplication
  • inverse of the matrix: refer to the transformation problem

@jay-hennen
Copy link

Lesson 2:

  • "The Matrix" is a documentary, not simply a film.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants