{"id":17546080,"url":"https://github.com/adrhill/julia-ml-course","last_synced_at":"2025-04-12T22:28:13.989Z","repository":{"id":154912622,"uuid":"632035687","full_name":"adrhill/julia-ml-course","owner":"adrhill","description":"Julia Programming for Machine Learning course at TU Berlin","archived":false,"fork":false,"pushed_at":"2024-10-29T14:52:04.000Z","size":12869,"stargazers_count":235,"open_issues_count":0,"forks_count":28,"subscribers_count":10,"default_branch":"main","last_synced_at":"2024-10-29T17:32:05.481Z","etag":null,"topics":["course","deep-learning","julia","machine-learning","tutorial"],"latest_commit_sha":null,"homepage":"","language":"Julia","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adrhill.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-24T15:17:08.000Z","updated_at":"2024-10-29T14:21:51.000Z","dependencies_parsed_at":"2023-12-18T21:18:34.695Z","dependency_job_id":"ac6f973d-da7d-4d5b-a374-7a2282999ab0","html_url":"https://github.com/adrhill/julia-ml-course","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrhill%2Fjulia-ml-course","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrhill%2Fjulia-ml-course/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrhill%2Fjulia-ml-course/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrhill%2Fjulia-ml-course/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adrhill","download_url":"https://codeload.github.com/adrhill/julia-ml-course/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248639194,"owners_count":21137798,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["course","deep-learning","julia","machine-learning","tutorial"],"created_at":"2024-10-21T01:59:01.650Z","updated_at":"2025-04-12T22:28:13.968Z","avatar_url":"https://github.com/adrhill.png","language":"Julia","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://adrhill.github.io/julia-ml-course/\"\u003e\n    \u003cimg\n      src=\"website/_assets/logo/logo.svg\"\n      alt=\"JuML Logo\"\n      height=\"100\"\n    /\u003e\n  \u003c/a\u003e\n  \u003cbr /\u003e\n  \u003cp\u003e\n    \u003ch1\u003e\n      \u003cb\u003e\n        Julia for Machine Learning\n      \u003c/b\u003e\n    \u003c/h1\u003e\n    \n[![Go to course website][goto-badge]][site-url]\n[![TU Berlin ISIS page][isis-badge]][isis-url]\n    \n  \u003c/p\u003e\n\u003c/div\u003e\n\nCourse material and website for the [Julia for Machine Learning][site-url] course (JuML) at the [TU Berlin Machine Learning group][ml-group-url].\n\n## Installation\nFollow the [installation instructions](https://adrhill.github.io/julia-ml-course/E1_Installation/)\non the course website.\n\n## Contents\n### Lectures\nThe **first half of the course** is taught in five weekly sessions of three hours.\nIn each session, two lectures are taught:\n\n| Week | Lecture | Content                                           |\n|:----:|:-------:|:--------------------------------------------------|\n| 1    | 0       | General Information, Installation \u0026 Getting Help  |\n|      | 1       | Basics 1: Types, Control-flow \u0026 Multiple Dispatch |\n| 2    | 2       | Basics 2: Arrays, Linear Algebra                  |\n|      | 3       | Plotting \u0026 DataFrames                             |\n| 3    | 4       | Basics 3: Data structures and custom types        |\n|      | 5       | Classical Machine Learning                        |\n| 4    | 6       | Automatic Differentiation                         |\n|      | 7       | Deep Learning                                     |\n| 5+   | Project | Workflows: Scripts, Experiments \u0026 Packages        |\n|      | Project | Profiling \u0026 Debugging                             |\n\nThe first three weeks focus on teaching the fundamentals of the Julia programming language. \nThese weeks consist of longer lectures, followed up by shorter, \"guided tours\" of the Julia ecosystem,\nincluding plotting, data-frames and classical machine learning algorithms.\n\nWeek four is all about Deep Learning:\nA comprehensive lecture on automatic differentiation (AD) \nsheds light on differences between Julia's various AD packages,\nbefore giving a brief overview of Flux's Deep Learning ecosystem.\n\nFinally, week five is all about starting your own Julia project,\ntaking a look at the structure of Julia packages and different workflows \nfor reproducible machine learning research. \nThis is followed up by a demonstration of Julia's debugging and profiling utilities.\n\nThe lectures and the homework cover the following packages:\n\n| Package              | Lecture |  Description                                           |\n|:-----------------    |:-------:|:-------------------------------------------------------|\n| LinearAlgebra.jl     |       2 | Linear algebra (standard library)                      |\n| Plots.jl             |       3 | Plotting \u0026 visualizations                              |\n| DataFrames.jl        |       3 | Working with and processing tabular data               |\n| MLJ.jl               |       5 | Classical Machine Learning methods                     |\n| ChainRules.jl        |       6 | Forward- \u0026 reverse-rules for automatic differentiation |\n| Zygote.jl            |       6 | Reverse-mode automatic differentiation                 |\n| Enzyme.jl            |       6 | Forward- \u0026 reverse-mode automatic differentiation      |\n| ForwardDiff.jl       |       6 | Forward-mode automatic differentiation                 |\n| FiniteDiff.jl        |       6 | Finite differences                                     |\n| FiniteDifferences.jl |       6 | Finite differences                                     |\n| Flux.jl              |       7 | Deep Learning abstractions                             |\n| MLDatasets.jl        |       7 | Dataset loader                                         |\n| PkgTemplates.jl      | Project | Package template                                       |\n| DrWatson.jl          | Project | Workflow for scientific projects                       |\n| Debugger.jl          | Project | Debugger                                               |\n| Infiltrator.jl       | Project | Debugger                                               |\n| ProfileView.jl       | Project | Profiler                                               |\n| Cthulhu.jl           | Project | Type inference debugger                                |\n\n\n### Project\nIn the **second half of the course**, after passing the homework,\nstudents work in groups on a small programming project of their choice, \nlearning best practices for package development in Julia, such as:\n* how to structure and develop a package\n* how to write package tests\n* how to write and host package documentation\n\nDuring code review sessions, students give each other feedback on their projects \nbefore presenting their work in end-of-semester presentations.\n\n[site-url]: https://adrhill.github.io/julia-ml-course/\n[ml-group-url]: https://web.ml.tu-berlin.de\n[isis-url]: https://isis.tu-berlin.de/course/view.php?id=43325\n\n[goto-badge]: https://img.shields.io/badge/-Go%20to%20course%20website-informational\n[isis-badge]: https://img.shields.io/badge/TU%20Berlin-ISIS%20page-red","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadrhill%2Fjulia-ml-course","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadrhill%2Fjulia-ml-course","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadrhill%2Fjulia-ml-course/lists"}