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

Basic level course, 7.5 ECTS credits, 2nd half of Fall Term

Introductory meeting 2015: to be announced.

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

Download the course Virtual Machine

HT14 project instructions

Course contents (Fall 2014)

Date and time Type Place Topic  
2014-11-05 15:00 Lecture 1 H530 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
2014-11-06 10:00 Tutorial 1a H315 Linux operating system deployment and customization; hands-on exercise of installing Ubuntu Linux from a bootable USB memory and extending it with necessary additional packages FP
2014-11-07 13:00 Tutorial 1b H315 Working in Unix shell, essential command line tools, operating on files and directories, using advanced text editors, secure logging into remote systems BK
2014-11-12 15:00 Lecture 2 H530 Overview of commonly used programming languages: C, C++, Java, Python, bash. Areas of applicability of these languages, benefits and drawbacks of each FP
2014-11-13 10:00 Tutorial 2a H315 First steps in programming: simple C++ programs, constants and variables, operators, functions, input/output, compilation and execution AF
2014-11-14 13:00 Tutorial 2b H315 Practical comparison of C++ and other languages: examples how to perform the same task in Java, Python and bash FP
2014-11-19 15:00 Lecture 3 H530 Programming in C++, next steps: control structures, functions, pointers, arrays, data structures AF
2014-11-20 10:00 Tutorial 3a H315 Exercises on implications of finite discrete representation of numbers, machine precision and accuracy AF
2014-11-21 13:00 Tutorial 3b H315 Usage of compound data types, choice of optimal strategies AF
2014-11-26 15:00 Lecture 4 H315 Object oriented programming in C++: classes, inheritance, polymorphism. AF
2014-11-27 10:00 Tutorial 4a H315 Working with objects in C++; comparison with objects in Java and Python AF
2014-11-28 13:00 Tutorial 4b H315 Write and compile a shared library and use this library in a program; usage of Makefile AF
2014-12-03 15:00 Lecture 5 H315 Data analysis methods and frameworks: data storage formats, accessing necessary information, statistical analysis and representation of results OS
2014-12-04 10:00 Tutorial 5a H315 Simulation of a physics process using random number generators, recording data in a given format PC
2014-12-05 13:00 Tutorial 5b H315 Reading data files, running statistical analysis, assessing uncertainties PC
2014-12-10 15:00 Lecture 6 H315 Essentials of developing code in a collaborative environment: code repositories, software versioning, development frameworks, documentation OS
2014-12-11 10:00 Tutorial 6a H315 Working with a SVN repository: checking code out, committing changes, resolving conflicts, applying patches FP
2014-12-12 13:00 Tutorial 6b H315 Writing a multi-section report in LaTeX, containing tables, formulae, images and bibliography OS
2014-12-17 15:00 Lecture 7 H530 Specifics of distributed computing: basic concepts, methods for distributed data access, authentication and authorisation, information systems and resource discovery, Grids and Clouds OS
2014-12-18 10:00 Tutorial 7a H315 Examples of usage of parallel calculations, assessment of speed-up BK
2014-12-19 13:00 Tutorial 7b H315 Grid computing: obtain a personal certificate, formalise job description, submit job on Grid and obtain the results OS
January 2015 Project presentations


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