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

Basic level course, 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 15:00 Lecture 1 K262 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 15:00 Lecture 2 K262 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 SVN repository: checking code out, committing changes, resolving conflicts, applying patches FP
2017-09-20 15:00 Lecture 3 K262 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 15:00 Lecture 4 K262 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 15:00 Tutorial 4a H321 Usage of computing clusters: secure logging into remote systems, examples of usage of parallel calculations, assessment of speed-up 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 NN
2017-10-05 15:00 Tutorial 5a H321 Exercises on implications of finite discrete representation of numbers, machine precision and accuracy NN
2017-10-06 15:00 Tutorial 5b H321 Usage of compound data types, choice of optimal strategies NN
2017-10-11 15:00 Lecture 6 K262 Object oriented programming in C++: classes, inheritance, polymorphism NN
2017-10-12 15:00 Tutorial 6a H321 Filestream, usage of standart containers NN
2017-10-13 15:00 Tutorial 6b H321 C++ classes; usage of Makefile NN
2017-10-18 15:00 Homework consultations K262 Questions and answers regarding homework, with an emphasis on C++ exercises BK
2017-10-19 15:00 Homework consultations H321 Hands-on homework questions and answers, with an emphasis on C++ exercises BK
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 15:00 - 18:00 Exam K262 Date to be confirmed; 25+10 min presentations by each group All


Previous terms:

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