Introduction and setup
Overview
Teaching: 10 min
Exercises: 10 minQuestions
How can I prepare?
How will we be learning?
Objectives
Set expectations for engagement and behavior
Acknowledgement of country
We wish to acknowledge the custodians of the land we reside on. These lessons were developed on the lands of the Wadjuk (Perth region) people of the Nyoongar nation. We pay our respect to their Elders and acknowledge their continuing culture and the contribution they make to the life of our cities and regions.
Overview
This training was developed by ADACS at the request of Henry Zovaro as part of their 2023B training project.
This workshop is intended for researchers who have little or no formal computing training, but who have learned to get by via self or peer learning, and who are interested to being exposed to some best practices in computing and software development.
This workshop has been developed in the style of Carpentries (hence the site layout) but is not an official Carpentries lesson. Some of the content is intended for learners to read, think, and ask questions. The workshop is designed to have three lessons per day dedicated to explaining and demonstrating skills, followed by an afternoon session of skills practice where people can work on their group project.
Assumed knowledge / required software
This course assumes that you have basic proficiency in python.
One of the main lessons for this workshop is to use version control for all your text based projects (papers / code). For this we will be using the git version control system, and in particular we will be using GitHub as the remote repository.
Software requirements
- Python 3.8+ with the following modules
- pylint
- numpy
- numpy-testing
- pytest
- pytest-cov
- pdoc
- scalene
- pandas
- matplotlib
- jupyter (optional but nice)
- A integrated development environment (IDE) or text editor of choice
- We recommend PyCharm or Visual Studio Code
- An operating system which gives you a proper command line
- git, either from the command line, using a git desktop app, or as an add on to PyCharm or VSCode.
- An account on GitHub is also required.
Assumed knowledge (links for info)
- (linux) command line / bash SWC Lesson, ADACS Lesson
- ssh login SWC Lesson
- command line text editor (emacs/vim/nano)
- Python scripting SWC Lesson, ADACS Lesson
Engagement
This workshop is all about learning by doing. We will be engaging in live coding type exercises for most of the workshop, and we will set challenges and exercises for you to complete in groups. The more you engage with your fellow learners and the more questions that you ask, the more that you will get out of this workshop.
We will be using sticky notes for in-person participants to indicate their readiness to move on: please stick them on your laptop screen to indicate if you need help or are done and ready to move ahead. For those joining online we’ll be using emotes to indicate the same.
We will use a shared document (etherpad) to manage and record many of our interactions.
Conduct
This workshop will be an inclusive and equitable space, which respects:
- the lived experience of it’s attendees,
- the right for all to learn, and
- the fact that learning means making mistakes.
We ask that you follow these guidelines:
- Behave professionally. Harassment and sexist, racist, or exclusionary comments or jokes are not appropriate.
- All communication should be appropriate for a professional audience including people of many different backgrounds.
- Sexual or sexist language and imagery is not appropriate.
- Be considerate and respectful to others.
- Do not insult or put down other attendees.
- Critique ideas rather than individuals.
- Do not engage in tech-shaming.
See the ASA2022 code of conduct and the Software Carpentries code of conduct for more information.
Introduce yourselves
Introduce yourself to your peers by telling us your name, your favorite software language/app/package, and something you look forward to doing in the summer.
Do this in person and via the etherpad.
Group projects
Throughout this week, we’ll spend the mornings learning different aspects of software development in python. During the lessons there will be opportunities to practices the lessons learned, but often these will involve simple or contrived examples. We have decided to use mini group projects to allow you all to really dig into the lessons learned and practice them in a more real world situation.
This afternoon we’ll be forming groups and choosing projects. The projects will be based on making a python module of your choice, we have suggestions, but recommend that you think of the modules/code that you wish existed throughout the day.
Key Points
Ask questions, experiment, and help others
Everyone is here to learn and that means making mistakes