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

feedback from dry run #9

Open
17 of 27 tasks
rkurchin opened this issue Oct 15, 2024 · 1 comment
Open
17 of 27 tasks

feedback from dry run #9

rkurchin opened this issue Oct 15, 2024 · 1 comment

Comments

@rkurchin
Copy link
Contributor

rkurchin commented Oct 15, 2024

Rachel's notes and feedback on "Intro to Julia" dry run

General Notes/Feedback/Todos

Overall:

  • make sure to pause periodically for questions!
  • also add pauses for people to try things out along with suggestions for what to try, especially in the early-on content e.g. syntax so they can try defining a function, etc.
  • let's add number prefixes to notebook filenames
  • make sure README has everything up to date and in correct order
  • add some more links to relevant docs pages, etc. for people to refer to
  • look over each other's stuff and make sure we're not being redundant
  • think about ways to emphasize the things that are really important concepts vs. just demonstrations of syntax (maybe some emoji code?)

Leticia's intro stuff

  • we need to write some clear "pre-requisite" instructions for what to install before we start and how to clone repo and put it on a slide so people can get set up beforehand, including activating environment etc.
  • make sure you know where startup.jl is on Windows machines if you're going to talk about that level of customization
  • make sure to write up a list of what exactly you're going to say/do so that Ethan knows and maybe just put it in a markdown file in here
  • related to above: reminder togo over REPL and REPL modes

Ethan: syntax

  • let's make sure we know how to get set up in the notebook...probably just the Pkg.activate(); Pkg.instantiate() cell will do it? Make sure to try this out
  • could add discussion of methods function to see different dispatches
  • add example of arrow syntax for functions, e.g. f = a -> 2a; f(3) or something since that will come up in DataFrames later
  • with discussion of inplace modification, can call ahead to tabular data stuff because this trips people up with DataFrames specifically
  • wrt defining structs: "objects don't have methods, functions have methods"
  • NOTE FOR DISCUSSION: defining "member" functions (I'm still not totally sure what this means)
  • FIX: @. cell doesn't run in notebook in VS Code
  • another useful macro to demo might be @which as that can be helpful in debugging usage of code that's part of a larger package...will have to think about what an easy example is, presumably something from one of the packages we're already importing
  • maybe add variable interpolation into strings with $ because then you can call back to it when you do interpolation in optimization
  • add mention of array indexing/slicing because it's different from Python and MATLAB and because you look back at it in optimization also

Leticia: Why Julia?

  • make sure to commit latest version with your new changes
  • can note that Ethan will talk about compilation time etc. in optimization section
  • if you want to demo against e.g. Python, just include a screenshot and if you want to do something live, run it locally
  • I added a cell to demonstrate a cool corollary of your area(::Shape) example by combining broadcast with dispatch: area.([Circle(5), Square(3)])...related, we could maybe expand this a little bit to draw parallels to e.g. writing a class in Python, can discuss this next week
  • probably we should move Pkg stuff to the intro section and demonstrate it in the REPL
  • maybe show some introspective stuff of the type hierarchy e.g. supertype and subtypes

Leticia: Numerical Data

  • add some more plot examples beyond just histograms, maybe talk about plot recipes if we have time (not crucial, can just add a link)
  • probably get rid of detailed exploration of distributions and instead just show different dispatches of the rand function with one of the distributions as an example along with some other things, that's likely more broadly useful

Ethan: optimization

  • maybe mention column-major-ness and include an example?
  • do slower thing first in every case

Ethan: advanced

  • set environment variable for threads

Timing

3:15 Leticia starts intro
3:25 Ethan starts syntax
4:00 Leticia starts Why Julia (paused 4:05 for phone call, started up 4:10)
4:35ish? break
5:00 Leticia starts numerical data section
5:30 Ethan
6:00 finish

@Leticia-maria
Copy link
Collaborator

@ejmeitz I added a discussion of methods when I am talking about multiple dispatch

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

2 participants