Skip to content
alfonso-veropalumbo edited this page Mar 13, 2024 · 11 revisions

banner2

Computational Astrophysics and Cosmology

Welcome to the Computational Astrophysics and Cosmology course wiki!

Course Info

This course aim at providing theoretical and numerical advanced tools to tackle different kind of analyses in astrophysics and cosmology. It also aimsa practical example of code development workflow, presenting fundamental tools for collaborative coding.

The course goals aims at introducing the students to the actual research activity, and can be of great help to aquire independency since the first phases of the Master thesis.

Structure of the lectures

There will be two lessons per week, of 2 hours each. For date/time and exceptions, see calendar below.

The lesson structure is split in two. The first hour will be dedicated to a specific computational tool and presented in contexts of astrophysical and cosmological interest. The second hour focus on practical activity, and will be used to start the exercises activities.

Here a non-hexausitive list of topics covered during the course:

  • Numerical integration
  • Data Interpolation and numerical differentiation
  • Statistical tools
  • Spatial clustering analysis
  • Bayesian parameter inference
  • N-body simulations

A few weeks before the end of the lesson cycle (~ mid-May), we will present the list of projects for the exam. These projects will cover (most of) the topics discussed in the course. There will be individual projects and group projects. More detailed information will come.

Practice

There will typically be three increasing difficulty exercises: the first will be covered during the lesson, and the other two are left for the student. It would be good to complete the exercises before the next one is presented, but it's not mandatory. It's, of course, needed to complete them all for the final exam.

The exercises will be split into different folders, one per lesson. Students should create their branch and upload the results of the exercises in that folder.

The use of git for code sharing is mandatory.

Sharing of data TBD

Coding suggestions

The official programming language for this course is Python. Installing Python with Anaconda and the intensive use of environments are recommended. We also recommend using Jupyter notebooks as tools for results sharing and Visual Studio Code as a development environment.

The use of custom Python modules, extensive documentation, and object-oriented programming will be particularly appreciated. There is no specific restriction on the use of AI tools (GitHub Copilot, ChatGPT, etc.). Please remember that at the exam, you should be prepared to describe the details of your code.

Lesson Calendar

Go to calendar!

Resources

In the following you can find a list of useful resources.

Useful commands:

  • Align personal branch with main:
    git checkout main
    git pull
    git checkout your-branch
    git merge main 
    
  • Update acc-env with new version of environment.yml file:
    conda env update -f environment.yml
    

Useful links

Tools for development

Clone this wiki locally