MNXB11 / NAFY018
Introduction to programming and computing for scientists
Introduktion till programmering och datoranvändning för naturvetare
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:
See Timeedit for the overall up-to-date schedule of classes; details of the course elements are shown below.
Course responsible: Oxana Smirnova, tel. 046-222 7699, Fysikum K333
Course elements and 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-30 15:00
Sal Curie
Project consultations
2024-10-31 15:00
Sal Curie
Project consultations
2024-11-01 09:00
Sal Curie
Project presentations
Teachers:
Contact:
Previous
terms:
Official
syllabi: