Scientific Calendar Event



Description
Writing software has become central to research in many fields of science. This school aims to give early-career scientists an introduction to a variety of topics that help them to write efficient, clean, maintainable and long-lived code that is useful beyond solving an immediate problem. In a mixture of talks and many hands-on sessions, the focus lies on showing best practices and building fundamental skills in creating, extending and collaborating on modular and reusable software.

TOPICS:
●    Python / shell scripts as glue code
●    Mixing programming languages
●    Introduction to computer architectures and software optimization
●    Modular, reusable software design
●    Effective collaborative development with multiple co-authors
●    Version control and release cycles
●    Automated testing frameworks
●    Structured documentation
●    Systematic debugging
Go to day
  • Saturday, 28 April 2018
    • 09:00 - 18:30 Day 1
      • 09:00 Workshop Registration 1h0'
      • 10:00 Workshop Overview: Research Software Development 45'
        Speaker: I. Girotto (ICTP)
        Material: notes
      • 10:45 Coffee Break 30'
      • 11:15 Python: Concepts and Introduction 1h15'
        Speaker: D. Grellscheid (University of Durham)
        Material: notes
      • 12:30 Lunch Break 1h30'
      • 14:00 Hands-on: Python Programming 2h0'
        Speaker: D. Grellscheid (University of Durham)
      • 16:00 Coffee Break 30'
      • 16:30 Documentation basics 1h0'
        Speaker: A. Farnudi (Sharif University of Technology)
        Material: notes
      • 17:30 Hands-on: Python Programming 1h0'
        Speaker: D. Grellscheid (University of Durham)
  • Sunday, 29 April 2018
    • 09:30 - 18:30 Day 2
      • 09:30 Object Oriented Programming in Python 1h15'
        Speaker: D. Grellscheid (University of Durham)
        Material: notes
      • 10:45 Coffee Break 30'
      • 11:15 Python for Scientific Computing: Numpy/Scipy/Matplotlib 1h15'
        Speaker: A. Farnudi (Sharif University of Technology)
        Material: notes
      • 12:30 Lunch Break 1h30'
      • 14:00 Hands-on: OO Python Programming 2h0'
        Speaker: D. Grellscheid, A. Farnudi (University of Durham, Sharif University of Technology)
        Material: notes
      • 16:00 Coffee Break 30'
      • 16:30 Hands-on: Python for Scientific Computing 2h0'
        Speaker: D. Grellscheid (University of Durham)
  • Monday, 30 April 2018
    • 09:30 - 18:30 Day 3
      • 09:30 Compiling and Linking Mixed Languages 1h15'
        Speaker: I. Girotto (ICTP)
      • 10:45 Coffee Break 30'
      • 11:15 Introduction to low-level testing 1h15'
        Speaker: A. Corbetta (Technische Universiteit Eindhoven)
        Material: notes
      • 12:30 Lunch Break 1h30'
      • 14:00 Pitfalls of Floating-Point Maths 2h0'
        Speaker: A. Corbetta (Technische Universiteit Eindhoven)
        Material: notes
      • 16:00 Coffee Break 30'
      • 16:30 Makefiles 1h0'
        Speaker: A. Farnudi (Sharif University of Technology)
        Material: notes
      • 17:30 C-Fortran-linking lab 1h0'
        Speaker: I. Girotto (ICTP)
        Material: notes
  • Tuesday, 1 May 2018
    • 09:30 - 18:30 Day 4
      • 09:30 Optimization: Algorithms 1h15'
        Speaker: D. Grellscheid (University of Durham)
        Material: notes
      • 10:45 Coffee Break 30'
      • 11:15 Optimization: Modern Hardware Architectures 1h15'
        Speaker: I. Girotto (ICTP)
        Material: notes
      • 12:30 Lunch Break 1h30'
      • 14:00 Hands-on: Memory Hierarchy 2h0'
        Speaker: I. Girotto (ICTP)
        Material: notes
      • 16:00 Coffee Break 30'
      • 16:30 Hands-on: Debugging and Profiling 2h0'
        Speaker: I. Girotto (ICTP)
        Material: notes
  • Wednesday, 2 May 2018
    • 09:30 - 09:31 HOLIDAY
  • Saturday, 5 May 2018
    • 09:30 - 18:30 Day 5
      • 09:30 Git introduction 1h0'
        Speaker: A. Corbetta (Technische Universiteit Eindhoven)
        Material: notes
      • 10:30 Introduction to Programming Projects 15'
        Speaker: All Instructors
        Material: notes
      • 10:45 Coffee Break 30'
      • 11:15 Introduction to Programming Projects; set up project git repositories 1h15'
        Speaker: A. Corbetta (Technische Universiteit Eindhoven)
        Material: notes
      • 12:30 Lunch Break 1h30'
      • 14:00 Hands-on: Work on Group Projects 2h0'
      • 16:00 Coffee Break 30'
      • 16:30 Hands-on: Work on Group Projects 2h0'
  • Sunday, 6 May 2018
    • 09:30 - 18:30 Day 6
      • 09:30 Documentation Tools for Users and Developers 1h15'
        Speaker: D. Grellscheid (University of Durham)
        Material: notes
      • 10:45 Coffee Break 30'
      • 11:15 Test Suites and Continuous Integration 1h15'
        Speaker: A. Corbetta (Technische Universiteit Eindhoven)
        Material: notes
      • 12:30 Lunch Break 1h30'
      • 14:00 Hands-on: Work on Group Projects 2h0'
      • 16:00 Coffee Break 30'
      • 16:30 Hands-on: Work on Group Projects 2h0'
  • Monday, 7 May 2018
    • 09:30 - 18:30 Day 7
      • 09:30 Reusing Software / Discussion of Software Licensing 1h15'
        Speaker: D. Grellscheid (University of Durham)
      • 10:45 Coffee Break 30'
      • 11:15 Task Farming for Embarrassingly Parallel Processing 1h15'
        Speaker: I. Girotto (ICTP)
        Material: notes
      • 12:30 Lunch Break 1h30'
      • 14:00 Hands-on: Work on Group Projects 2h0'
      • 16:00 Coffee Break 30'
      • 16:30 Hands-on: Work on Group Projects 2h0'
  • Tuesday, 8 May 2018
    • 09:30 - 18:30 Day 8
      • 09:30 Real-world Uses of Scientific Programming and SW project Management: -Rivet/Herwig (D. Grellscheid) - LBE3D (A. Corbetta) 1h15'
        Speaker: D. Grellscheid, A. Corbetta (University of Durham, Technische Universiteit Eindhoven)
      • 10:45 Coffee Break 30'
      • 11:15 to be announced 1h15'
      • 12:30 Lunch Break 1h30'
      • 14:00 Hands-on: Work on Group Projects 2h0'
      • 16:00 Coffee Break 30'
      • 16:30 Hands-on: Work on Group Projects 2h0'
  • Wednesday, 9 May 2018
    • 09:30 - 16:00 Day 9
      • 09:30 Project presentations 1h15'
      • 10:45 Coffee Break 30'
      • 11:15 Programming Project Presentations, Handing out of Certificates 1h15'
      • 12:30 Lunch Break 1h30'
      • 14:00 Departure/ Free time 2h0'