Advanced Research Computing 2025/26

This year’s course will cover aspects of machine learning, data analysis, and scientific computation — and their interactions with AGQ.

Topics to be covered include: 
* A quick intro/review of Python
* programming environments and collaborative programming practices, using GitHub
* Machine learning: basic neural networks, image recognition, attention and transformers
* Building neural networks with the PyTorch toolkit
* Applications of ML in geometry and physics
* Topological methods in data analysis
* Precision scientific/numerical computing with Julia
Our lecturing team includes Rob Currie, Sjoerd Beentjes, Darrick Lee, and Job Feldbrugge.
Our TA’s are Djordje Mihajlovic, Tuan Pham, and Siddharth Setlur.
The course organiser is Tudor Dimofte.

Logistics

To register for the course, either for credit or to audit, fill in the online poll by Monday 12 January; or fill in the poll and email Tudor Dimofte after that date.

The course meets for three hours a week, in person near the Bayes Centre (University of Edinburgh central campus) and online. Our meeting rooms/times are:

16 Jan 9:30am-12:30pm Lec 1 (Rob) M2 – Teaching Studio, Appleton Tower
23 Jan 9:30am-12:30pm Lec 2 (Rob) M2 – Teaching Studio, Appleton Tower
30 Jan 9:30am-12:30pm Lec 3 (Rob) M2 – Teaching Studio, Appleton Tower
6 Feb 9:30am-12:30pm Lec 4 (Rob) M2 – Teaching Studio, Appleton Tower
13 Feb 9:30am-12:30pm Lec 5 (Rob) M2 – Teaching Studio, Appleton Tower
20 Feb    no class  (AGQ Y2 at Glasgow Science Centre)
27 Feb 9:30am-12:30pm Lec 6 (Sjoerd) M2 – Teaching Studio, Appleton Tower
6 Mar 9:30am-12:30pm Lec 7 (Sjoerd) M2 – Teaching Studio, Appleton Tower
13 Mar   no class (AGQ Y2 Anchored In training)
20 Mar 1pm-4pm Lec 8 (Job)

online

27 Mar 9:30am-12:30pm Lec 9 (Darrick) M2 – Teaching Studio, Appleton Tower
3 Apr   no class  (Easter)
10 Apr 9:30am-12:30pm Project intros  Bayes 5.46

Zoom links for virtual participation are sent out via email.

Assignments: There will be five assessed homework coding exercises, in addition to weekly workshop problems. For students taking the course for credit, you must score at least 60% on at least four out of five homeworks to pass the course.

Course Material

To be able to participate in workshops during the course, students will need to install Anaconda and set up an environment for running AGQ Jupyter notebooks. Below are some instructions on how to get started. Please attempt to do this before the first workshop on 16 January. If you’re having trouble, we’ll help you out during that workshop.

Installing Anaconda

First you need to install Anaconda on your laptop.

The installation is slightly different for Windows, Mac, and Linux. Whichever system you use, make sure to select “Add Anaconda3 to my PATH environment variable” (if given the option).

Windows: here’s an excellent video explaining the installation of Anaconda and use of environments. Please download Git and Git Bash as well, as explained in the video. (At around minute 11:45, VS Code pops up — it’s not required for this course, might be helpful; see below).

Mac: somewhat simpler, here’s a Mac version of the same video. (You can ignore VS Code at minute 7:15.)

Linux: no video; we assume you know what you’re doing.

Import an Anaconda environment

The environment file for the start of this course is found here:

https://github.com/tdimofte/AGQ-computing-2026/blob/main/Week0/agq-env.yaml

An “environment” is a workspace on your computer, containing particular versions of the programs and packages used to run code. In our case, the agq-env environment contains python and a few particular python modules that we’ll call upon.

You’ll need to import the agq-env environment into Anaconda in order to use it. There are two ways. We recommend using the command line (e.g. Git Bash on Windows or Terminal on Mac) and running

conda env create -f agq-env.yaml

The first time you do this, the “create” command will install Python too, since it’s required by the agq-env environment. (See the videos above for more info.) Also, here’s a cheat sheet with further Anaconda commands.

The other way to import the agq-env environment is using the visual Anaconda Navigator (instructions here). Totally fine to do it this way, but it’s better to start getting used to the command line.

Jupyter notebooks: web browser and VS Code

Most of the coding we’ll do will happen in Jupyter notebooks. For beginners, the easiest way to run a notebook is from a web browser. Follow these steps to launch your first notebook:

  1. Download the notebook file TestPlayBookAGQ.ipynb notebook file to a directory on your computer.
  2. Open a terminal (e.g. Git Bash on Windows) and navigate to the that directory. (See minute 3:20 in the tutorial here if you’re confused about the command line.)
  3. Run conda activate agq-env to enter the agq-env environment.
  4. Run jupyter notebook to launch a notebook server in your default web browser. 
  5. Now navigate the directory in your web browser. Click on the TestPlayBookAGQ.ipynb notebook to open it.
  6. Run the entire notebook by clicking on the menu Cell -> Run All.
  7. (When finished, run conda deactivate to exit the environment in your terminal.)

Running the notebook should at the very bottom display the line:   `AGQ Tests Passed!`

If you see a bunch of red text then something has gone wrong and you may need to reach out to an expert for help. We can help you out at the first workshop.

An alternative to running Jupyter notebooks in a web browser is to edit and run them in VS Code. VS Code is a powerful and versatile code editor that works across Windows/Mac/Linux platforms. However, its great variety features may actually be confusing to beginners. If you’d like to try VS Code, download it and follow its Jupyter video tutorial.

Familiarity with Jupyter Notebooks

We will use Jupyter notebooks throughout the entire course, for machine learning, topological data analysis, and scientific computing. There are loads of guides for beginners online (you can search and find your favorite). If it’s your first time, we recommend taking a look at the Cells and Keyboard Shortcuts sections of  Dataquest’s intro to Jupyter-Notebooks. See also the Geeks4Geeks tutorial, this basic Jupyter/Python tutorial on GitHub, and Anaconda’s intro to Jupyter Notebooks.

Familiarity with Python3

If you’ve never used Python before (and even if you have), we recommend downloading, opening, and playing around with the following two notebooks:

data-science-tools.ipynb

minimization_problems.ipynb

Looking at, and modifying, the examples here should help get you up to speed. Some other Python tutorials include those from python.land, python-course.eu, and Microsoft.

 

 

 

Lecture 1