This lesson is still being designed and assembled (Pre-Alpha version)

Software Summer School Lessons: Glossary

Key Points

Using conda
  • conda is a package manager that can be used to create environments and install packages.

Python Data Types
  • Numeric data types include integers (int), floating point numbers (float), and complex numbers.

  • Text is represented as a string (str)

  • You can use lists, tuples, or dicitionaries to group data together

  • Tuples and lists are similar, but tuples cannot be modified after they are created.

  • Python dictonaries use key-value pairs to group data together

Working with Numpy Arrays
  • NumPy arrays which are the same size use element-wise operations when added or subtracted

  • NumPy uses something called broadcasting for arrays which are not the same size to allow arrays to be added or multiplied.

  • NumPy has several functions to create arrays such as linspace (linearly spaced array) and zeros (create an array of 0’s)

Extending Geometry Analysis
Intro to version control with git
  • Git provides a way to track changes and differences between versions.

  • git can be used with an online repository (GitHub) so that you can access a copy of your code from any machine

Code Collaboration using GitHub
  • To contribute to someone else’s project, you should fork their repository.

  • All development work should be done on a new branch. Each branch should implement one feature.

  • Once you’ve implemented a new feature, push to your repository and create a pull request on the original repo.

Python Package Set-up and Structure
  • There is a common way to structure Python packages

  • You can use the CMS CookieCutter to quickly create the layout for a Python package

Creating modules
  • Your code should adhere to standards outlined in PEP8 so that it easily readable by others.

  • All functions and modules should be documented with docstrings.

Python Testing
  • Enumerate the types of testing and the importance of each.

  • Explain pytest features and why pytest was selected.

Continuous Integration
  • Continuous integration services can be used to automatically test your code.

Documentation
  • Some documentation is better than no documentation

Glossary

FIXME