Coder Social home page Coder Social logo

sje30 / catam-julia Goto Github PK

View Code? Open in Web Editor NEW
20.0 20.0 8.0 75.07 MB

CATAM material in Julia

Home Page: http://sje30.github.io/catam-julia

License: MIT License

HTML 96.37% Julia 3.46% Python 0.06% Makefile 0.01% MATLAB 0.10% M 0.01%
julia notebooks

catam-julia's People

Contributors

jmbyrne avatar sje30 avatar valentin-imbach avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

catam-julia's Issues

list of ideas for improvements from Gokul

hi @jmb280cam

here is a list of ideas for improvements from Gokul @srgk26

1 how automatic differentiation works (not just how it's implemented, as in the video by Alan Edelman)
2 types and type stability; also highlight difference between type annotation and type stability (the former does not improve
 performance)
3 refer to blog for type stability in julia: https://www.juliabloggers.com/writing-type-stable-julia-code/
4 using @code_warntype on function calls to check for type stability
5 custom typing with struct
6 multiple dispatch
7 highlight performance tips page in docs: https://docs.julialang.org/en/v1/manual/performance-tips/
8 using maths macros @simd, @fastmath, @inbounds to further improve performance (not always, can reduce performance -
 case-by-case basis)
9 good idea to introduce docker as well
10 tutorial for common tools and packages in julia ecosystem (dataframes, plotting, flux, differentialequations, etc.)
11 note that julia is column-major, so iterate through rows before columns in matrices, for example:

m = rand(2,3)
@inbounds @views for j in 1:size(m,2)
    for i in 1:size(m,1)
        m[i,j] = m[i,j]*(i+j)
    end
end

some of these could be in the intro, some (like types) would be better off in a case study.

CC: @Nick-Gale for info

Potential change to format of case study readme

I've changed the format of the readme.md for the Permutations case study, see here. I thought it would be better to have all of the links relating to the project in one place so that students could get all of the files without having to go through GitHub.

Any thoughts on this or other changes that should be made @sje30 @valentin-imbach? I'll look to change the rest of them later to match after your feedback.

typo

hi @jmb280cam I think there is a typo in the intro doc; seperate should be separate

Mathematical relevance

I've started working on a Voronoi diagram case study, but I'm not sure how I could turn it from a computationally heavy task into one with a mathematical purpose. Does anyone know of an application / problem that can be solved which I could incorporate?

primality pictures

there is already a python package to do what we discussed @valentin-imbach @jmb280cam

https://github.com/LeviBorodenko/primify

this prime drawing looks nice, but perhaps we can use Julia to do it a bit smarter /more efficient than what can be done in Python?

https://github.com/LeviBorodenko/primify
https://esoteric.codes/blog/primify

or, synthesising an image from some text (like a CRSid) and then finding the prime? as I said, it might be fun for outreach days, when young kids can come along and get their name converted into a prime number!

Format for case studies

Here are some options for formats that case studies can be written in;

Pluto

  • Positives
    • Good interface, outputs clean webpage or interactive notebook
  • Negatives
    • PDF output is not great
    • Not usable for all applications, since cannot have WIP code or reassign variables

Jupyter

  • Positives
    • Good output and interactivity like Pluto, and can reassign variables
  • Negatives
    • A pain to use (at least as I've found so far)
    • Still can't have WIP code

LaTeX

  • Positives
    • Looks mathsy
    • PDF output
    • Images/PDF outputs can be naturally imported
  • Negatives
    • No interactivity
    • Slower to write than Word/Google Docs

Word

  • Positives
    • Can have a PDF output
    • Can copy code in from VSCode and keep the colours
  • Negatives
    • No interactivity
    • Lacks the precision of LaTeX
    • No live collaboration like Google Docs
    • Doesn't look like LaTeX, might be less appealing

Google Docs

  • Positives
    • Can have PDF output
    • Can copy code in from VSCode and keep the colours
    • Multiple people can work on it at the same time (may not be necessary)
  • Negatives
    • No interactivity
    • Lacks the precision of LaTeX
    • Less features than Word
    • Doesn't look like LaTeX, might be less appealing

Whether we choose between them on a case (study) by case (study) basis or pick one or two to use for everything I don't know. We should probably also create quick templates/style guides for those that we will use for consistency

introspection

perhaps we need to have a section on 'introspection' to show how to examiner objects and methods?

e.g. for starters, @edit(sin(1.0)) to show the code for how the sin of a double precision number is stored

and something like this for understanding different types of Integers

x = 64
typeof(x)
bitstring(x)
y = Int8(x)
bitstring(y)

with floats we could do it after describing the representation https://en.wikipedia.org/wiki/Single-precision_floating-point_format but that's also feasible.

random walks not working on mybinder

random walks looks great @jmb280cam

I tried to run it via mybinder though and got error

ArgumentError: Package Plots not found in current path:

it has presumably not loaded any of the packages in mybinder to run? is it because the files are split?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.