You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
The text was updated successfully, but these errors were encountered:
Rachel's notes and feedback on "Intro to Julia" dry run
General Notes/Feedback/Todos
Overall:
Leticia's intro stuff
startup.jl
is on Windows machines if you're going to talk about that level of customizationEthan: syntax
Pkg.activate(); Pkg.instantiate()
cell will do it? Make sure to try this outmethods
function to see different dispatchesf = a -> 2a; f(3)
or something since that will come up in DataFrames later@.
cell doesn't run in notebook in VS Code@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$
because then you can call back to it when you do interpolation in optimizationLeticia: Why Julia?
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 weeksupertype
andsubtypes
Leticia: Numerical Data
rand
function with one of the distributions as an example along with some other things, that's likely more broadly usefulEthan: optimization
Ethan: advanced
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
The text was updated successfully, but these errors were encountered: