MNXB11 / NAFY018
Introduction to programming and computing for scientists
Introduktion till programmering och datoranvändning för naturvetare

7.5 ECTS credits, 1st half of Fall Term

Introduction and first lecture for the HT 2024 term: 4 September 2024, at 15:00 (see details in Canvas).

This page is kept for overview purposes only; the course is fully managed in Canvas, use it to access lecture notes and assignments

Textbook: "Problem solving with C++", W. Savitch (any edition)

Other related links and downloads:

Course elements and schedule

See Timeedit for the overall up-to-date schedule of classes; details of the course elements are shown below.

HT 2024 schedule
Date and time Type Place Topic Teacher
2024‑09‑04 15:00    Introduction and 
Lecture 1
Sal Curie  Introduction to the role of programming in science, overview of usage of programming in: scientific devices, calibration procedures, pattern recognition, raw data pre-processing, modelling and simulation, distributed computing and data handling, data analysis and data presentation OS
2024-09-05 15:00 Lecture 2 Sal Curie  Essentials of developing code in a collaborative environment: code repositories, software versioning, development frameworks, documentation OS
2024-09-06 15:00 Lecture 3 Sal Curie  Overview of commonly used programming languages: C, C++, Python, bash. Areas of applicability of these languages, benefits and drawbacks of each (see also examples) FP
2024-09-10 15:00  Tutorial 1 Sal Curie  Setting up the course work environment: installation and usage of the Linux desktop client for LUNARC FP
2024-09-11 15:00 Tutorial 2 Sal Curie  Working in Linux shell, essential command line tools, operating on files and directories, using advanced text editors BK
2024-09-13 15:00 Tutorial 3 Sal Curie  Working with a Git repository: checking code out, committing changes, resolving conflicts, applying patches FP
2024-09-18 15:00 Lecture 4 Sal Curie  Specifics of distributed computing: basic concepts, methods for distributed data access, authentication and authorisation, information systems and resource discovery, Grids and Clouds OS
2024-09-19 15:00 Tutorial 4 Sal Curie  Practical examples of more complex programming: implementation of algorithms, work with data sets, usage of bash FP
2024-09-20 15:00 Tutorial 5 Sal Curie  Usage of computing clusters: secure logging into remote systems, examples of usage of parallel calculations, assessment of speed-up BK
2024-09-24 15:00 Tutorial 6 Sal Curie  First steps in programming: simple C++ programs, constants and variables, operators JH
2024-09-25 15:00 Tutorial 7 Sal Curie  First steps in programming: C++ functions, input/output, compilation and execution JH
2024-09-26 15:00 Lecture 5 Sal Curie   Programming in C++, next steps: control structures, functions, pointers, arrays, data structures JH
2024-10-02 10:00 Lecture 6 Sal Curie   Object oriented programming in C++: classes, inheritance, polymorphism JH
2024-10-03 10:00 Tutorial 8 Sal Curie  Exercises on implications of finite discrete representation of numbers, machine precision and accuracy JH
2024-10-04 10:00 Tutorial 9 Sal Curie  Usage of compound data types, choice of optimal strategies JH
2024-10-09 10:00 Tutorial 10 Sal Curie  Filestream, usage of standard containers JH
2024-10-10 10:00 Tutorial 11 Sal Curie C++ classes JH
2024-10-11 10:00 Tutorial 12 Sal Curie Usage of Makefile JH
2024-10-16 15:00 Lecture 7 Sal Curie  ROOT as a data storage framework: introduction and architecture overview, usage of ROOT to store and represent data JH
2024-10-17 15:00 Tutorial 13 Sal Curie  Simulation of a physics process using random number generators, recording data in a given format JH
2024-10-18 15:00 Tutorial 14 Sal Curie  Reading data files, plotting data and functions JH
2024-10-23 15:00 Lecture 8 Sal Curie  ROOT as a data analysis framework: ntuples, accessing information, statistical analysis JH
2024-10-24 15:00 Tutorial 15 Sal Curie  Running statistical analysis, assessing uncertainties JH
2024-10-25 15:00 Tutorial 16 Sal Curie  Advanced data analysis with ROOT JH
2024-10-31 15:00   Sal Curie  Project consultations  
2024-11-01 09:00   Sal Curie  Project presentations  

Teachers:

Contact:

Course responsible: Oxana Smirnova, tel. 046-222 7699, Fysikum K333

Previous terms:

Official syllabi: