MNXB01 / 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

Introductory meeting for the H17 term: 30 August 2017, at 15:00, room K262.

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

Related links and downloads:

Course contents (H17)

Date and time Type Place Topic  
2017-08-30 15:00 Introduction K262 Introduction to the course, logistics and practicalities OS
2017-09-06 13:00 Lecture 1 Sal F (K404) 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
2017-09-07 15:00 Tutorial 1a H321 Installation and customisation of a Linux operating system as a virtual machine, extending it with necessary additional packages FP
2017-09-08 15:00 Tutorial 1b H321 Working in Linux shell, essential command line tools, operating on files and directories, using advanced text editors BK
2017-09-13 13:00 Lecture 2 Sal F (K404) Essentials of developing code in a collaborative environment: code repositories, software versioning, development frameworks, documentation OS
2017-09-14 15:00 Tutorial 2a H321 Writing a multi-section report in LaTeX, containing tables, formulae, images and bibliography OS
2017-09-15 15:00 Tutorial 2b H321 Working with a Git repository: checking code out, committing changes, resolving conflicts, applying patches FP
2017-09-20 13:00 Lecture 3 Sal F (K404) 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
2017-09-21 15:00 Tutorial 3a H321 First steps in programming: simple C++ programs, constants and variables, operators, functions, input/output, compilation and execution BK
2017-09-22 15:00 Tutorial 3b H321 Practical examples of more complex programming: implementation of algorithms, work with data sets, usage of bash FP
2017-09-27 13:00 Lecture 4 Sal F (K404) Specifics of distributed computing: basic concepts, methods for distributed data access, authentication and authorisation, information systems and resource discovery, Grids and Clouds OS
2017-09-28 14:00 Tutorial 4a H321 Usage of computing clusters: secure logging into remote systems, examples of usage of parallel calculations, assessment of speed-up (exercises) BK
2017-09-29 15:00 Tutorial 4b H321 Grid computing: obtain a personal certificate, formalise job description, submit job on Grid and obtain the results OS
2017-10-04 15:00 Lecture 5 K262 Programming in C++, next steps: control structures, functions, pointers, arrays, data structures KM
2017-10-05 15:00 Tutorial 5a H321 Exercises on implications of finite discrete representation of numbers, machine precision and accuracy KM
2017-10-06 15:00 Tutorial 5b H321 Usage of compound data types, choice of optimal strategies KM
2017-10-11 15:00 Lecture 6 K262 Object oriented programming in C++: classes, inheritance, polymorphism KM
2017-10-12 15:00 Tutorial 6a H321 Filestream, usage of standart containers KM
2017-10-13 15:00 Homework consultations H321 Hands-on homework questions and answers, with an emphasis on C++ exercises BK
2017-10-18 15:00 Homework consultations H321 Questions and answers regarding homework, with an emphasis on C++ exercises BK
2017-10-19 15:00 Tutorial 6b H321 C++ classes; usage of Makefile KM
2017-10-20 15:00 Homework consultations H321 Hands-on homework questions and answers, with an emphasis on C++ exercises BK
2017-10-25 15:00 Lecture 7 K262 Data analysis methods and frameworks: data storage formats, accessing necessary information, statistical analysis and representation of results OS
2017-10-26 15:00 Tutorial 7a H321 Simulation of a physics process using random number generators, recording data in a given format PC
2017-10-27 15:00 Tutorial 7b H321 Reading data files, running statistical analysis, assessing uncertainties PC
2017-11-10 13:00 - 18:00 Exam K262 25+10 min presentations by each group All


Previous terms:

Contact: Oxana Smirnova, tel. 046-222 7699, Fysikum A418