Scientific Calendar Event



Description
The call for applications is open. Please click on 'Apply here' to submit your application.


An ICTP Meeting in presence
 
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
  • 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
  • Management of open source scientific packages
  • Continuous integration & deployment
  • Visualisation as a development tool
  • Conversational development
     
Lecturers:
A. CORBETTA, Eindhoven University of Technology, The Netherlands
A. FARNUDI, École Normale Supérieure de Lyon, France
L. GARRISON, University of Bergen, Norway
I. GIROTTO, ICTP, Trieste, Italy
D. GRELLSCHEID, University of Bergen, Norway
 
 
Prerequisites: Participants are expected to have some experience in a programming language, this course is not suitable for beginners in programming.
 
Grants: A limited number of grants are available to support the attendance of selected participants, with priority given to participants from developing countries. There is no registration fee.

Agenda: The agenda of the school is drafted in the "Programme" section. It might slightly change up to the beginning of the school but it can provide an idea of the proposed contents.
 
Go to day
  • Monday, 18 November 2024
    • 08:30 - 10:45 Workshop registration formalities
    • 10:45 - 18:15
      • 10:45 Welcome remarks 15'
        Speaker: Ivan GIROTTO (ICTP, Italy)
      • 11:00 Get-to-know session 1h15'
        Speaker: David GRELLSCHEID (University of Bergen, Norway)
      • 12:15 Lunch break 1h30'
      • 13:45 Python Basic Review 2h0'
        Speaker: David GRELLSCHEID (University of Bergen, Norway)
      • 15:45 Coffee break 30'
      • 16:15 Git basics 2h0'
        Speaker: Ali FARNUDI (École normale supérieure de Lyon, France)
  • Tuesday, 19 November 2024
    • 09:30 - 18:30
      • 09:30 Writing Clean Codes 30'
        Speaker: Ali FARNUDI (École normale supérieure de Lyon, France)
      • 10:00 Intro to Object Oriented (OO) Programming 45'
        Speaker: David GRELLSCHEID (University of Bergen, Norway)
      • 10:45 Coffee break 30'
      • 11:15 Hands-on: OO design 1h15'
        Speaker: David GRELLSCHEID (University of Bergen, Norway)
      • 12:30 Lunch break 1h30'
      • 14:00 Data analysis and visualization in Python 2h0'
        Speaker: Laura GARRISON (University of Bergen, Norway)
      • 16:00 Coffee break 30'
      • 16:30 Data analysis and visualization in Python 2h0'
        Speaker: Laura GARRISON (University of Bergen, Norway)
  • Wednesday, 20 November 2024
    • 09:30 - 17:30
      • 09:30 Representations of data: integers, floats, text 30'
        Speaker: David GRELLSCHEID (University of Bergen, Norway)
      • 10:00 Computer Architectures: Focus on Efficient Memory Access 1h15'
      • 11:15 Coffee break 15'
      • 11:30 Computer Architectures: Focus on Efficient Memory Access 1h15'
      • 12:45 Lunch break 1h15'
      • 14:00 Numpy background 1h30'
      • 15:30 Hands-on compile numpy 30'
      • 16:00 Coffee break 30'
      • 16:30 Color in visualization 1h0'
        Speaker: Laura GARRISON (University of Bergen, Norway)
  • Thursday, 21 November 2024
    • 09:30 - 18:30
      • 09:30 Debugging strategies 45'
        Speaker: Ali FARNUDI (École normale supérieure de Lyon, France)
      • 10:15 Compilied codes, connecting C and Python 45'
      • 11:00 Coffee break 30'
      • 11:30 Giving and receiving feedback 45'
        Speaker: David GRELLSCHEID (University of Bergen, Norway)
      • 12:15 Lunch break 1h45'
      • 14:00 Code review 1h15'
        Speaker: Ali FARNUDI (École normale supérieure de Lyon, France), David GRELLSCHEID (University of Bergen, Norway)
      • 15:15 Git: branching, merging, conflicts, docstrings 1h0'
        Speaker: Ali FARNUDI (École normale supérieure de Lyon, France)
      • 16:15 Coffee break 15'
      • 16:30 Git: branching, merging, conflicts, docstrings 1h15'
        Speaker: Ali FARNUDI (École normale supérieure de Lyon, France)
      • 17:45 Git branching and merging exercises 45'
  • Friday, 22 November 2024
    • 09:30 - 18:30
      • 09:30 Code design choices, high level optimization 1h15'
        Speaker: David GRELLSCHEID (University of Bergen, Norway)
      • 10:45 Coffee break 30'
      • 11:15 Git for groups, conversational development 1h15'
        Speaker: Alessandro CORBETTA (Eindhoven University of Technology, The Netherlands)
      • 12:30 Lunch break 1h30'
      • 14:00 Animations 2h0'
        Speaker: Laura GARRISON (University of Bergen, Norway), David GRELLSCHEID (University of Bergen, Norway)
      • 16:00 Coffee break 30'
      • 16:30 Exercises to bring together concepts 2h0'
        Speaker: Ali FARNUDI (École normale supérieure de Lyon, France), Alessandro CORBETTA (Eindhoven University of Technology, The Netherlands), Laura GARRISON (University of Bergen, Norway), David GRELLSCHEID (University of Bergen, Norway)
  • Monday, 25 November 2024
    • 09:30 - 18:30
      • 09:30 Test suites and CI 45'
        Speaker: Alessandro CORBETTA (Eindhoven University of Technology, The Netherlands)
      • 10:15 Project choices 30'
        Speaker: David GRELLSCHEID (University of Bergen, Norway)
      • 10:45 Coffee break 30'
      • 11:15 Starting up the teams; project planning 1h15'
        Speaker: David GRELLSCHEID (University of Bergen, Norway)
      • 12:30 Lunch break 1h30'
      • 14:00 Work on projects 2h0'
      • 16:00 Coffee break 30'
      • 16:30 Work on projects 2h0'
  • Tuesday, 26 November 2024
    • 09:30 - 18:30
      • 09:30 Pybind11 45'
      • 10:15 Documentation tools 30'
      • 10:45 Coffee break 30'
      • 11:15 Tba 1h15'
      • 12:30 Lunch break 1h30'
      • 14:00 Work on projects 2h0'
      • 16:00 Coffee break 30'
      • 16:30 Work on projects 2h0'
  • Wednesday, 27 November 2024
    • 09:30 - 18:30
      • 09:30 Makefiles for workflows 1h15'
        Speaker: Ali FARNUDI (École normale supérieure de Lyon, France)
      • 10:45 Coffee break 30'
      • 11:15 Reproducible results 1h15'
        Speaker: Alessandro CORBETTA (Eindhoven University of Technology, The Netherlands)
      • 12:30 Lunch break 1h30'
      • 14:00 Work on projects 2h0'
      • 16:00 Coffee break 30'
      • 16:30 Work on projects 2h0'
  • Thursday, 28 November 2024
    • 09:30 - 18:30
      • 09:30 Short talks about lectrurers' own work 1h15'
        Speaker: Ivan GIROTTO (ICTP, Italy), Alessandro CORBETTA (Eindhoven University of Technology, The Netherlands)
      • 10:45 Coffee break 25'
      • 11:10 Group photo 5'
      • 11:15 Copyright and licensing 1h15'
        Speaker: David GRELLSCHEID (University of Bergen, Norway)
      • 12:30 Lunch break 1h30'
      • 14:00 Work on projects 2h0'
      • 16:00 Coffee break 30'
      • 16:30 Work on projects 2h0'
  • Friday, 29 November 2024
    • 09:30 - 12:30
      • 09:30 Prepare presentations 1h15'
      • 10:45 Coffee break 30'
      • 11:15 Present results 45'
      • 12:00 Closing remarks 30'