# 2021 Hack Week Topics and Schedule
### Possible Topics
- Primary Session Topics
These would be topics for the morning 2hr block. Should probably be semi-structured and semi-free form. Think like a presentation centered on a Jupyter notebook where the lecture would follow along with the notebook and then there would be an "homework" problem the attendees could collectively/individually work on.
- Mechanics of git (cloning, branching, repos, fork, etc.)
- Mechanics of GitHub (issues and PRs)
- Writing Tests
- Working with numpy arrays (indexing, views vs copies, etc.)
- Visualizing data with matplotlib
- Working with labeled data pandas & xarray
- Writing Documentation
- Current Plasma open-source projects
- overview of what is out there
- let a rep. of each project talk for 10-15min
- Clean code and PEP8
- Package repr displaying use of their package w/ interactive problem
- Short Topics (10-15 min talk)
10-15 minute talks that focus on introducing a (python) coding concept. These would like be scattered in the 2nd free form block. Could also place them as intermission items during the 1st block or at the end of the 1st block.
- What is a decorator?
- Introduction to Classes
- Function vs Class
- Abstract Base Classes
- Coding for Now vs Tools (Extended Use)
- New features in Python 3.6–3.9 (f-strings, dataclasses, walruses)
- Python and its Dynamic Typing (variables are labels ton instances in memory)
- Numpy views vs copies
- Numpy indexing
- Astropy units
- PlasmaPy particles
- PlasmaPy formulary
- "Other" Topics
Interesting topics but not sure where they fit.
- Strategies for working w/ Legacy Codes
- Forming practices for code collaboration
- Round Table Discussion
These would be open discussion where all attendees could discuss their experiences on a given topic. This would allow attendees to get input/perspective from develops and visa-versa.
- Code Imposter Syndrome (Apprehension to contributing)
- which aspects of our culture reinforce this feeling?
- is the feeling you or driven by the culture?
- Difficulties with learning a code base
- Coding Activities
### Roles for Committee
**Need to defined scope of roles.**
- Communications [Valentina]
- Project Manager [Nick]
- Scheduler (i.e. Hack Week Planner)
- Recruiter (for presenters)
-