Skip to content

Latest commit

 

History

History
80 lines (80 loc) · 3.18 KB

plan.md

File metadata and controls

80 lines (80 loc) · 3.18 KB
  1. Background
    • Operating systems (Don't change, record)
    • Graphs (Don't change much, record)
    • Filesystem (Very short, Linux/MacOS vs. Windows)
    • Floating point numbers (Find good resource)
  2. Tools
    • Shell: Basics / background (Short, mostly old material)
    • Shell: Navigation (New(ish))
    • Shell: Installation of Mamba and course environment (Video, text)
    • Installation: Git, VS Code (only text / links)
    • Editors, comparison IDEs (short)
      • VS Code
      • Stata / Matlab / RStudio
      • In the end, VS Code encompasses most features of IDE + same for all languages
    • Using LLMs effectively [long run]
    • Using copilot effectively [long run]
    • Communicating effectively (emails vs zoom vs in-person vs zulip) (Video)
    • Licenses (Look up stuff)
  3. Git and GitHub
    • Motivation and terminology (record anew)
    • Committing and Diffing (Look up stuff)
    • Pushing and Pulling (Look up stuff)
    • Merging (Look up stuff)
    • Troubleshooting (Look up stuff)
    • Collaboration and Teamwork (Look up stuff)
  4. Python basics
    • Assigning variables, built-in scalar types (record anew)
    • Built-in container types (record anew)
    • Reading tracebacks (record anew)
    • Importing, Modules, Namespaces
    • Filesystem in Python: The pathlib library (record anew)
    • Executing Python code: .py files (record anew)
    • Executing Python code: Notebooks (record anew)
    • Executing Python code: Debuggers, pytest, pytask (record anew)
    • Decorators (record anew, further material: Harrison)
    • Custom data containers
    • Reading object-oriented code [long run]
    • More on f-strings (could also do as an exercise)
  5. Best practices (any language)
    • Avoid code duplication (iteration, functions) (record anew)
      • Objective: Understand Concept. Do stuff, see patterns that come out
    • Pure and testable functions (record anew)
    • Comments should be function names (record anew)
    • Avoid nested if conditions (record anew)
    • Naming conventions / formatting / pre-commits (record anew)
    • Choosing container types (list / dict / custom class) (record anew)
    • dags [long run] - pytrees [long run] - Don't be too smart (link) (set up examples, make scorecards / notebooks out of those, record short video)
    • When to code up something yourself and when to use a library [long run], (record screencast with recipes)
  6. Ensure Correctness - Testing
    • Debugging
    • Error handling
  7. Workflow management
    • Definition of "reproducible" - Pytask overview
    • Tiny Pytask example
    • Generating many tasks at once
    • Templates
  8. Scientific computing
    • Numpy/scipy
    • Optimisation
    • Estimagic
    • Speedup
  9. Data Science
    • Data Management
    • Plotting
    • Machine learning with Scikit-learn
    • (Econometrics with ...)
  10. Text data and texts
    • Encodings
    • Regexes [long run]
    • Simple Markdown
    • MystMD
    • Slidev
    • LaTeX
    • Detour: How to read a paper
    • Detour: How to structure a paper
    • Tables
    • Figures