The UBC Scientific Software Seminar is inspired by Software Carpentry and its goal is to help students, graduates, fellows and faculty at UBC develop software skills for science.
If you are interested in participating, please complete the following survey: Summer 2016 Registration
- What are the learning goals?
- To develop software skills for managing data files and collaborative software projects with the Bash shell and Git/GitHub
- To learn Python programming for scientific computing
- To learn mathematics and statistics applied to data science and machine learning
- To meet and collaborate with other students and faculty interested in scientific computing
- What software tools are we going to use?
- Bash Shell: working with the file system from the command line
- Git/GitHub: managing projects locally from the command line using Git and collaborating online with GitHub
- Python: datatypes, logic, loops, functions, classes and objects
- Jupyter Notebooks: execute code with accompanying text, markdown and LaTeX all in the browser
- SciPy Stack: scientific computing with NumPy, SciPy, matplotlib and pandas
- scikit-learn: machine learning in Python
- What scientific topics will we study?
- Calculus, linear algebra, probability and statistics
- Data wrangling, analysis and visualization
- Basic machine learning
- Where do we start? What are the prerequisites?
- Basic calculus, linear algebra, probability and statistics
- Basic programming experience in any language (in particular, familiarity with logic, loops and functions)
- No prior experience with the command line is required
- No prior experience with Git/GitHub is required
- Who is the target audience?
- Everyone is invited!
- If the outline above is at your level, perfect! Get ready to write a lot of code!
- If the outline above seems too intimidating, come anyway! You'll learn things just by being exposed to new tools and ideas, and meeting new people!
- If you have experience with all the topics outlined above, come anyway! You'll become more of an expert by participating as a helper/instructor!
Summer 2016 will consist of six 2-hour seminars held weekly from mid-July until the end of August:
- Week 1 - Wednesday July 20 - 10am-12pm - IBLC 261 [Notes]
- JupyterHub
- Jupyter Notebooks
- Git/GitHub
- Week 2 - Wednesday July 27 - 10am-12pm - IBLC 261 [Notes]
- Git/GitHub: clone, push and pull, and collaborate
- Bash commands for navigating the Linux file system
- Python datatypes:
int
,float
,str
,list
,bool
- Week 3 - Wednesday August 3 - 10am-12pm - IBLC 261 [Notes]
- Bash commands and scripts
- Python: logic, loops and functions
- A quick intro to NumPy and matplotlib
- Week 4 - Wednesday August 10 - 10am-12pm - IBLC 261
- A tour of the SciPy stack: NumPy, SciPy, matplotlib and pandas
- More data analysis with pandas
- Week 5 - Wednesday August 17 - 10am-12pm - IBLC 185
- TBD
- Week 6 - Wednesday August 24 - 10am-12pm - LSK 201
- TBD