Instructors: David Grellscheid, Stefanie Hólmgeirsdóttir, Kidane M. Tekle, Kim Brügger, Matúš Kalaš
Python (version >= 3.5)
Python packages: numpy, matplotlib, pytest
Create a user account on https://github.com/
Git version control
- Linux users: from your package manager
- Mac users: https://git-scm.com/download/mac or brew or macports
- Windows users: we recommend https://gitforwindows.org/ and using Git Bash included therein
(all David except intro)
- Norbis intro (Ragna Breines)
- Code you want to read
- Python introduction
- Hands-on: Project Euler
- Clean Code summary
- Python links: tutorial, PEP8 == coding style guidelines, library list, Python package index (PyPI)
Homework till next week: Project Euler number 3. Needs to complete within a minute!
Keyword: Agile
- Collaborative software development (Kidane)
- Additional material: Best practices (Kidane)
- Good project management is about people, caring and understanding; and some planning and documentation (Stefanie)
- Requirements, solution proposal, team, project roles|responsibilites, changes, negotiations, evaluation, ...
- Team work: Projecting a kindergarden playground (Miss Claudia, alter ego of Stefanie)
- Useful tools: Trello
- Technical debt (Kidane)
- Creating better code (Kim)
- Useful links: Software Carpentry lessons, ...
- Debugging (Kim)
- Hands-on: Debugging python code with PDB (Kim)
- Unit testing (Kim)
- Hands-on: Unit testing with pytest
- Refactoring (Kim)
- Hands-on: Refactoring Kim's code
- Live demo: Code review (and some refactoring; David)
- Tools: PDB, pytest, logger, PyCharm IDE (Integrated development environment), ...
(all David)
- Object-oriented design
- Hands-on OO design: Freight train station
- Python: modules, OO, copying
- Python: Numpy, Scipy, Matplotlib
- Exercise 1: Bouncing dots
- Exercise 2: Landcover data
- Documentation (Kim)
- Version control with git (Kidane)
- Group project descriptions
- Optimisation, profiling (David)
- Live demo: Profiling (David)
- Live demo: Linking code across programming languages (David)
- ELIXIR (Christine Stansberg)
- Containers (Kidane)
- Open source, community, licensing, publishing (Matus)
- Packaging & continuous integration (Kim)
- Presentations of group projects and discussion (everyone)
- Please fill in our feedback form