MNXB01 / NAFY018
Introduction to programming and computing for scientists
Introduktion till programmering och datoranvändning för naturvetare
Course code became MNXB11 in 2023
7.5 ECTS credits, 1st half of Fall Term
Introduction and first lecture for the HT 2022 term: 31 August 2022, at 15:00 in Lecture Hall A (Sal A) (see details in Canvas).
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.
Date and time | Type | Place | Topic | Teacher |
---|---|---|---|---|
2022‑08‑31 15:00 |
Introduction and Lecture 1 |
Sal B | Introduction to the role of programming in science, overview of usage of programming in: scientific devices, calibration procedures, pattern recognition, raw data pre-processing, modeling and simulation, distributed computing and data handling, data analysis and data presentation | OS |
2022-09-01 15:00 | Lecture 2 | Sal B | Essentials of developing code in a collaborative environment: code repositories, software versioning, development frameworks, documentation | OS |
2022-09-02 15:00 | Lecture 3 | Lundmarksalen | 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 |
2022-09-07 17:00 | Tutorial 1 | Sal Curie | Setting up the course work environment: installation and usage of the Linux desktop client for LUNARC | FP |
2022-09-08 15:00 | Tutorial 2 | Sal Curie | Working in Linux shell, essential command line tools, operating on files and directories, using advanced text editors | BK |
2022-09-09 15:00 | Tutorial 3 | Sal Curie | Practical examples of more complex programming: implementation of algorithms, work with data sets, usage of bash | FP |
2022-09-14 15:00 | Lecture 4 | Sal B | Specifics of distributed computing: basic concepts, methods for distributed data access, authentication and authorisation, information systems and resource discovery, Grids and Clouds | BK |
2022-09-15 15:00 | Tutorial 4 | Sal Curie | POSTPONED to October 26 due to LUNARC maintenance | BK |
2022-09-16 15:00 | Tutorial 5 | Sal Curie | Working with a Git repository: checking code out, committing changes, resolving conflicts, applying patches | FP |
2022-09-21 15:00 | Tutorial 6 | Sal Curie | First steps in programming: simple C++ programs, constants and variables, operators | EE |
2022-09-22 15:00 | Tutorial 7 | Sal Curie | First steps in programming: C++ functions, input/output, compilation and execution | EE |
2022-09-23 15:00 | Lecture 5 | Lundmarksalen | Programming in C++, next steps: control structures, functions, pointers, arrays, data structures | EE |
2022-09-28 15:00 | Lecture 6 | Sal B | Object oriented programming in C++: classes, inheritance, polymorphism | EW |
2022-09-29 10:00 | Tutorial 8 | Sal Curie | Exercises on implications of finite discrete representation of numbers, machine precision and accuracy | EW |
2022-09-30 15:00 | Tutorial 9 | Sal Curie | Usage of compound data types, choice of optimal strategies | EW |
2022-10-05 15:00 | Tutorial 10 | KC:Platinum | Filestream, usage of standard containers | EE |
2022-10-06 15:00 | Tutorial 11 | KC:Platinum | C++ classes | EE |
2022-10-07 15:00 | Tutorial 12 | KC:Platinum | Usage of Makefile | EE |
2022-10-12 15:00 | Lecture 7 | Sal Curie | ROOT as a data storage framework: introduction and architecture overview, usage of ROOT to store and represent data | EL |
2022-10-13 15:00 | Tutorial 13 | Sal Curie | Simulation of a physics process using random number generators, recording data in a given format | EL |
2022-10-14 15:00 | Tutorial 14 | Sal Curie | Reading data files, plotting data and functions | EL |
2022-10-19 15:00 | Lecture 8 | Sal Curie | ROOT as a data analysis framework: ntuples, accessing information, statistical analysis | EL |
2022-10-20 15:00 | Tutorial 15 | Sal Curie | Running statistical analysis, assessing uncertainties | EL |
2022-10-21 15:00 | Tutorial 16 | Sal Curie | Advanced data analysis with ROOT | EL |
2022-10-26 15:00 | Tutorial 4 | Sal Curie | Usage of computing clusters: secure logging into remote systems, examples of usage of parallel calculations, assessment of speed-up | BK |
2022-10-27 15:00 | Sal Curie | Project consultations | ||
2022-10-28 09:00 | Sal Curie | Project presentations |
Teachers:
- OS - Oxana Smirnova
- FP - Florido Paganelli
- BK - Balázs Kónya
- EE - Einar Elén
- EL - Else Lytken
- EL - Erik Wallin
Contact:
Course responsible: Oxana Smirnova, tel. 046-222 7699, Fysikum A418
Previous terms:
Official syllabi:
- Official syllabus of MNXB01 (in Swedish)
- Official information on NAFY018 (with syllabi in Swedish and English)