MNXB01
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
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 |
Lecturers:
- OS - Oxana Smirnova
- FP - Florido Paganelli
- BK - Balazs Konya
- AF - Anders Floderus
- PC - Peter Christiansen
Contact: Oxana Smirnova, tel. 046-222 7699, Fysikum B312