Difference between revisions of "Simulation Methods in Physics I 11 12"

From ICPWiki
Jump to: navigation, search
(Lecture)
 
(47 intermediate revisions by 6 users not shown)
Line 2: Line 2:
 
<!-- ==Simulation Methods in Physics I == -->
 
<!-- ==Simulation Methods in Physics I == -->
  
 
+
== Overview ==
  
 
;Type
 
;Type
Line 14: Line 14:
 
:Time:  Thursdays, 11:30 - 13:00, Room V 57.06  
 
:Time:  Thursdays, 11:30 - 13:00, Room V 57.06  
 
;Tutorials
 
;Tutorials
:Time: Wednesday afternoon, 14.00-15.30 and 17:30-19.0, Room V27.U104
+
:Time: Wednesday afternoon, 14.00-15.30 and 17:30-19.00, Room V27.U104
  
 
The lecture is accompanied by hands-on-tutorials which will take place in the CIP-Pool of the ICP, Pfaffenwaldring 27, U 108. They consist of practical exercises at the computer, like small programming tasks, simulations, visualization and data analysis.
 
The lecture is accompanied by hands-on-tutorials which will take place in the CIP-Pool of the ICP, Pfaffenwaldring 27, U 108. They consist of practical exercises at the computer, like small programming tasks, simulations, visualization and data analysis.
Line 81: Line 81:
  
 
== Lecture  ==
 
== Lecture  ==
{| class="prettytable"
+
{| class="wikitable"
 
|-valign="top"
 
|-valign="top"
!Date !! Topics (subject may change during the course)
+
!Date !! Topics (subject may change during the course) !! Downloads
 
|-
 
|-
| 20.10.2011 || Course Content, Organisation,Introduction
+
| 20.10.2011 || Course Content, Organisation,Introduction || [http://www.icp.uni-stuttgart.de/~icp/html/teaching/2011-sum/Vorlesung_SM1_intro.pdf Lecture Notes 20.10.2011]
 
|-
 
|-
| 27.10.2011 ||Equation of Motion and simple Integrators for Classical MD
+
| 27.10.2011 ||Equation of Motion and simple Integrators for Classical MD || [http://www.icp.uni-stuttgart.de/~icp/html/teaching/2011-sum/Vorlesung_SM1_271011.pdf Lecture Notes 27.10.2011]
 
|-
 
|-
| 03.11.2011 ||Integrators cont., simple Potentials for Liquids
+
| 03.11.2011 ||Integrators cont., simple Potentials for Liquids, LJ Units || [http://www.icp.uni-stuttgart.de/~icp/html/teaching/2011-sum/Vorlesung_SM1_031111(3).pdf Lecture Notes 03.11.2011]
 
|-
 
|-
| 10.11.2011 ||LJ Units, Simple MD Program
+
| 10.11.2011 || Stat Mech in a Nutshell, efficiency considerations, Simple MD Program || [http://www.icp.uni-stuttgart.de/~icp/html/teaching/2011-sum/Vorlesung_SM1_101111(4).pdf Lecture Notes 10.11.2011]
 
|-
 
|-
| 17.11.2011 || Stat Mech in a Nutshell, Observables in MD
+
| 17.11.2011 || Observables in MD || [http://www.icp.uni-stuttgart.de/~icp/html/teaching/2011-sum/Vorlesung_SM1_171111(5).pdf Lecture Notes 17.11.2011]
 
|-
 
|-
| 24.11.2011 || Observables in MD, Diffusion, Brownian motion, RDF
+
| 24.11.2011 || Diffusion, Brownian motion, RDF || [http://www.icp.uni-stuttgart.de/~icp/html/teaching/2011-sum/Vorlesung_SM1_241111(6).pdf Lecture Notes 24.11.2011]
 
|-
 
|-
| 01.12.2011 || Green-Kubo relations, temperature fluctuations in NVE ensemble
+
| 01.12.2011 || Green-Kubo relations, temperature fluctuations in NVE ensemble || [http://www.icp.uni-stuttgart.de/~icp/html/teaching/2011-sum/Vorlesung_SM1_011211(7).pdf Lecture Notes 01.12.2011] [http://www.icp.uni-stuttgart.de/~icp/html/teaching/2011-sum/Vorlesung_SM1_241111_(6)Simulating_Brownian_Motion.pdf Presentation 01.12.2011 ]
 
|-
 
|-
| 08.12.2011 || Thermostats and different ensembles
+
| 08.12.2011 || Thermostats and different ensembles || [http://www.icp.uni-stuttgart.de/~icp/html/teaching/2011-sum/Vorlesung_SM1_081211(8).pdf Lecture Notes 08.12.2011]
 
|-
 
|-
| 15.12.2011 || Finite differencing techniques, solving PDEs
+
| 15.12.2011 || Finite differencing techniques, solving PDEs || [http://www.icp.uni-stuttgart.de/~icp/html/teaching/2011-sum/Vorlesung_SM1_151211(9).pdf Lecture Notes 15.12.2011]
 
|-
 
|-
| 22.12.2011 || Overview over research topics at the ICP
+
| 22.12.2011 || Overview over research topics at the ICP || [http://www.icp.uni-stuttgart.de/~icp/html/teaching/2011-sum/Vorlesung_SM1_221211(10).pdf Lecture Notes 22.12.2011]
 
|-
 
|-
| 12.01.2012 || Introduction to  Monte Carlo Methods, Metropolis Alg.
+
| 12.01.2012 || Introduction to  Monte Carlo Methods, Metropolis Alg. || [http://www.icp.uni-stuttgart.de/~icp/html/teaching/2011-sum/Vorlesung_SM1_120112(11).pdf Lecture Notes 12.01.2012]
 
|-
 
|-
| 19.01.2012 || Phase transitions, critical phenomena
+
| 19.01.2012 || Phase transitions, critical phenomena || [http://www.icp.uni-stuttgart.de/~icp/html/teaching/2011-sum/Vorlesung_SM1_190112(12).pdf Lecture Notes 19.01.2012]
 
|-
 
|-
| 26.01.2012 || Finite Size Scaling
+
| 26.01.2012 || Finite Size Scaling ||  [http://www.icp.uni-stuttgart.de/~icp/html/teaching/2011-sum/Vorlesung_SM1_260112(13).pdf Lecture Notes 26.01.2012]
 
|-
 
|-
| 02.02.2012 || Error Analysis
+
| 02.02.2012 || Error Analysis ||
 
|-
 
|-
| 09.02.2012 || Single particle Quantum Mechanics
+
| 09.02.2012 || Single particle Quantum Mechanics || [http://www.icp.uni-stuttgart.de/~icp/html/teaching/2011-sum/Vorlesung_SM1_090212(15).pdf Lecture Notes 09.02.2012] [http://www.icp.uni-stuttgart.de/~icp/html/teaching/2011-sum/Vorlesung_SM1_090212_Euclidian_Lattice_Theory.pdf Euclidian Lattice Theory ]
 
|}
 
|}
  
Line 126: Line 126:
 
! Week || Date || Topic and files to download || Responsible tutor
 
! Week || Date || Topic and files to download || Responsible tutor
 
|-
 
|-
| 1. || 26.10.2010 || T0: First steps with Linux and C  
+
| 1. || 26.10.2011 || T0: First steps with Linux and C  
 
* {{Download|Sim_Meth_I_T0_ 11_12.pdf| Worksheet for T0 }}
 
* {{Download|Sim_Meth_I_T0_ 11_12.pdf| Worksheet for T0 }}
* [[T0_10_11| T0 from last year]]
 
 
|| [[Peter Košovan|Peter Košovan]]
 
|| [[Peter Košovan|Peter Košovan]]
 
|-
 
|-
| 2. || 2.11.2010 || Discussion of T0  
+
| 2. || 2.11.2011 || Discussion of T0  
 
T1: Equations of motion and integrators
 
T1: Equations of motion and integrators
* Worksheet is being updated. We make it available soon before the tutorial
+
* {{Download|Sim_Meth_I_T1_ 11_12.pdf| Worksheet for T1 }} (Update2)
* [[T1_10_11| T1 from last year]]
+
* {{Download|Sim_Meth_I_T1_11_12_Code.tar.gz|Source code for download|tar}} (Update1: bugfix)
 
|| [[Peter Košovan|Peter Košovan]]
 
|| [[Peter Košovan|Peter Košovan]]
 
|-
 
|-
| 3. || 9.11.2010 || Working on problems from T1 || [[Peter Košovan|Peter Košovan]]
+
| 3. || 9.11.2011 || Working on problems from T1 || [[Peter Košovan|Peter Košovan]]
 
|-
 
|-
| 4. || 16.11.2010 || Discussion of T1  
+
| 4. || 16.11.2011 || Discussion of T1  
 
T2: Molecular Dynamics: Lennard-Jones liquid
 
T2: Molecular Dynamics: Lennard-Jones liquid
* Worksheet is being updated. We make it available before the tutorial.
+
* {{Download|Sim_Meth_I_T2_ 11_12.pdf| Worksheet for T2 }}
* [[T2_10_11| T2 from last year]]
+
* {{Download|Sim_Meth_I_T2_11_12_Code.tar.gz|Source code for download|tar}}
 
|| [[Peter Košovan|Peter Košovan]]
 
|| [[Peter Košovan|Peter Košovan]]
 
|-
 
|-
| 5. || 23.11.2010 || Working on problems from T2 || [[Peter Košovan|Peter Košovan]]
+
| 5. || 23.11.2011 || Working on problems from T2 || [[Peter Košovan|Peter Košovan]]
 
|-
 
|-
| 6. || 30.11.2010 || Discussion of T2
+
| 6. || 30.11.2011 || Discussion of T2
 
T3: MD in NVE and NVT ensembles; implementing different thermostats
 
T3: MD in NVE and NVT ensembles; implementing different thermostats
* Worksheet is being updated. We make it available before the tutorial.
+
* {{Download|Sim_Meth_I_T3_11_12.pdf|Worksheet for T3 }}
* [[T3_10_11| T3 from last year]]
+
* {{Download|Sim_Meth_I_T3_11_12_Code.tar.gz|Source code for download|tar}}
 
|| [[Marcello Sega|Marcello Sega]]
 
|| [[Marcello Sega|Marcello Sega]]
 
|-
 
|-
| 7. || 7.12.2010 || Working on problems from T3 || [[Peter Košovan|Peter Košovan]]
+
| 7. || 7.12.2011 || Working on problems from T3 || [[Peter Košovan|Peter Košovan]]
 
|-
 
|-
| 8. || 14.12.2010 || Discussion of T3
+
| 8. || 14.12.2011 || Discussion of T3
 
T4: The finite Difference and Finite element methods
 
T4: The finite Difference and Finite element methods
* Worksheet is being updated. We make it available before the tutorial.
+
* {{Download|Sim_Meth_I_T4_11_12.pdf|Worksheet for T4 }}
* [[T4_10_11| T4 from last year]]
+
* {{Download|Sim_Meth_I_T4_11_12_Code.tar.gz|Source code for download|tar}}
 
|| [[Marcello Sega|Marcello Sega]]
 
|| [[Marcello Sega|Marcello Sega]]
 
|-
 
|-
| 9. || 21.12.2010 || Working on problems from T4 || [[Marcello Sega|Marcello Sega]]
+
| 9. || 21.12.2011 || Working on problems from T4 || [[Marcello Sega|Marcello Sega]]
 
|-
 
|-
| 10. || 11.1.2011 || Discussion of T4
+
| 10. || 11.1.2012 || Discussion of T4
 
T5: Simple and importance sampling. Random walks.
 
T5: Simple and importance sampling. Random walks.
* Worksheet is being updated. We make it available before the tutorial.
+
* {{Download|Sim_Meth_I_T5_11_12.pdf|Worksheet for T5 }}
* [[T5_10_11| T5 from last year]]
+
* {{Download|Sim_Meth_I_T5_11_12_Code.tar|Source code for download|tar}}
 
|| [[Marcello Sega|Marcello Sega]]
 
|| [[Marcello Sega|Marcello Sega]]
 
|-
 
|-
| 11. || 18.1.2011 || Working on problems from T5 || [[Marcello Sega|Marcello Sega]]
+
| 11. || 18.1.2012 || Working on problems from T5 || [[Marcello Sega|Marcello Sega]]
 
|-
 
|-
| 12. || 25.1.2011 || Discussion of T5  
+
| 12. || 25.1.2012 || Discussion of T5  
 
T6: Monte Carlo-Ising model
 
T6: Monte Carlo-Ising model
* Worksheet is being updated. We make it available before the tutorial.
+
* {{Download|Sim_Meth_I_T6_11_12.pdf|Worksheet for T6 }}
* [[T6_10_11| T6 from last year]]
+
* {{Download|Sim_Meth_I_T6_11_12_Code.tar|Source code for download|tar}}
 
|| [[Peter Košovan|Peter Košovan]]
 
|| [[Peter Košovan|Peter Košovan]]
 
|-
 
|-
| 13. || 1.2.2011 || Working on problems from T6 || [[Peter Košovan|Peter Košovan]]
+
| 13. || 1.2.2012 || Working on problems from T6 || [[Peter Košovan|Peter Košovan]]
 
|-
 
|-
| 14. || 8.2.2011 || Discussion of T6, end of the tutorials  
+
| 14. || 8.2.2012 || Discussion of T6, end of the tutorials  
 
|| [[Peter Košovan|Peter Košovan]]
 
|| [[Peter Košovan|Peter Košovan]]
 
[[Marcello Sega|Marcello Sega]]
 
[[Marcello Sega|Marcello Sega]]
Line 214: Line 213:
 
:Has to contain author name, student ID and date.
 
:Has to contain author name, student ID and date.
 
:Should be subdivided into sections, each section being clearly related to one task of the homework.
 
:Should be subdivided into sections, each section being clearly related to one task of the homework.
:Must be written in sentences, not points like in a presentation.  
+
:Should be written in sentences, not points like in a presentation.
 +
:Should not repeat the introduction from the worksheet.
 
:All conclusions must be explained and when appropriate, supported by data (plots, tables). In case a derivation is required, all intermediate steps have to be clearly understandable or explained in the text.
 
:All conclusions must be explained and when appropriate, supported by data (plots, tables). In case a derivation is required, all intermediate steps have to be clearly understandable or explained in the text.
 
:For each simulation, it has to be clear, what were the input parameters, so that it can be re-run.
 
:For each simulation, it has to be clear, what were the input parameters, so that it can be re-run.
Line 250: Line 250:
 
* [http://t16web.lanl.gov/Kawano/gnuplot/index-e.html Not so frequently asked questions about GNUPLOT] (Often used by myself as a cheat sheet)
 
* [http://t16web.lanl.gov/Kawano/gnuplot/index-e.html Not so frequently asked questions about GNUPLOT] (Often used by myself as a cheat sheet)
  
* [http://homepage.tudelft.nl/v9k6y/imsst/index.html Introduction to Molecular Simulation and Statistical Thermodynamics]
+
* [http://homepage.tudelft.nl/v9k6y/imsst/index.html Introduction to Molecular Simulation and Statistical Thermodynamics (pdf textbook from TU Delft)]
 +
 
 +
* [http://www.filibeto.org/sun/lib/development/shell/intr_to_bash_scr.html Short introduction to shell scripting (bash)]
 +
 
 +
* [http://tldp.org/LDP/abs/html/ A more detailed introduction to bash scripting]
  
 
* Becareful when using Wiki-type of resources. They may contain a lot of useful information, but also a lot of nonsense, because anyone can write into them.
 
* Becareful when using Wiki-type of resources. They may contain a lot of useful information, but also a lot of nonsense, because anyone can write into them.

Latest revision as of 18:43, 24 October 2012


Overview

Type
Lecture (2 SWS) and Tutorials (2 SWS)
Lecturer
Prof. Dr. Christian Holm (Lecture); Marcello Sega and Peter Košovan (Tutorials)
Course language
Deutsch oder Englisch, wie gewünscht - German or English, by vote
Lectures
Time: Thursdays, 11:30 - 13:00, Room V 57.06
Tutorials
Time: Wednesday afternoon, 14.00-15.30 and 17:30-19.00, Room V27.U104

The lecture is accompanied by hands-on-tutorials which will take place in the CIP-Pool of the ICP, Pfaffenwaldring 27, U 108. They consist of practical exercises at the computer, like small programming tasks, simulations, visualization and data analysis. The tutorials build on each other, therefore continuous attendance is expected.


Scope

The course intends to give an overview about modern simulation methods used in physics today. The stress of the lecture will be to introduce different approaches to simulate a problem, hence we will not go too to deep into specific details but rather try to cover a broad range of methods. In more detail, the lecture will consist of:

1. Molecular Dynamics

The first problem that comes to mind when thinking about simulating physics is solving Newtons equations of motion for some particles with given interactions. From that perspective, we first introduce the most common numerical integrators. This approach quickly leads us to Molecular Dynamics (MD) simulations. Many of the complex problems of practical importance require us to take a closer look at statistical properties, ensembles and the macroscopic observables.

The goal is to be able to set up and run real MD simulations for different ensembles and understand and interpret the output.

2. Partial Differential Equations

Some of the most common physical problems today can be formulated with Partial Differential Equations (PDEs). We want to think about what kinds of physical problems can be dealt with PDEs and what methods we have to solve them numerically.

The goal is to get to know the problems you run into when solving these simple-looking equations and to get an overview on the methods available.

3. Quantum mechanical systems

It is obvious that solving quantum mechanical systems analytically is not possible and we need numerical help. We want to introduce various methods like (post-)Hartree-Fock, Density Functional Theory, and Car-Parrinello-Molecular dynamics. We also want to examine the possibilities to simulate the quantum chromodynamics PDEs on a lattice (lattice gauge theory).

The goal is to get an overview on the methods to treat quantum mechanical systems and know about some of the advantages and disadvantages of each method.

4. Monte Carlo Simulations

Since their invention, the importance of Monte Carlo (MC) sampling has grown constantly. Nowadays it is applied to a wide class of problems in modern computational physics. We want to present the general idea and theory behind MC simulations and show some more properties using simple toy models like the Ising-model.

Prerequisites

We expect the participants to have basic knowledge in classical and statistical mechanics, thermodynamics, electrodynamics, and partial differential equations, as well as knowledge of a programming language (preferably C or C++).

Prerequisites for the examination

  1. Attendance of the exercise classes
  2. Obtaining 50% of the possible marks in the hand-in exercises

(In German: USL -V )

There will be a final grade for the Module "Simulation Methods" (this module consists of both lectures, Sim I plus Sim II and the exercise of Simulation Methods I) determined at the end of lecture Simulation Methods II. The grade will be determined in the following way : There is an oral examination (60 minutes) performed at (or after) the end of the course Simulation Methods II (SS 2012), where the dates are to be settled with the lecturer.

People taking other modules where this course is part of should contact the lecturer for optional other examinations.

Lecture

Date Topics (subject may change during the course) Downloads
20.10.2011 Course Content, Organisation,Introduction Lecture Notes 20.10.2011
27.10.2011 Equation of Motion and simple Integrators for Classical MD Lecture Notes 27.10.2011
03.11.2011 Integrators cont., simple Potentials for Liquids, LJ Units Lecture Notes 03.11.2011
10.11.2011 Stat Mech in a Nutshell, efficiency considerations, Simple MD Program Lecture Notes 10.11.2011
17.11.2011 Observables in MD Lecture Notes 17.11.2011
24.11.2011 Diffusion, Brownian motion, RDF Lecture Notes 24.11.2011
01.12.2011 Green-Kubo relations, temperature fluctuations in NVE ensemble Lecture Notes 01.12.2011 Presentation 01.12.2011
08.12.2011 Thermostats and different ensembles Lecture Notes 08.12.2011
15.12.2011 Finite differencing techniques, solving PDEs Lecture Notes 15.12.2011
22.12.2011 Overview over research topics at the ICP Lecture Notes 22.12.2011
12.01.2012 Introduction to Monte Carlo Methods, Metropolis Alg. Lecture Notes 12.01.2012
19.01.2012 Phase transitions, critical phenomena Lecture Notes 19.01.2012
26.01.2012 Finite Size Scaling Lecture Notes 26.01.2012
02.02.2012 Error Analysis
09.02.2012 Single particle Quantum Mechanics Lecture Notes 09.02.2012 Euclidian Lattice Theory

Tutorials (U 104)

Scheduling of tutorials
First tutorial is an introductory one and does not contain any graded homework. Starting from the second tutorial, a new worksheet is handed out every second week. The following week is dedicated to working on problems related to the last worksheet. Homework in the form of a report should be sent to the tutors before the next worksheet is handed out. The two-week cycle ends with the discussion of results of the previous worksheet and handing out a new one.


Week Date Topic and files to download Responsible tutor
1. 26.10.2011 T0: First steps with Linux and C Peter Košovan
2. 2.11.2011 Discussion of T0

T1: Equations of motion and integrators

Peter Košovan
3. 9.11.2011 Working on problems from T1 Peter Košovan
4. 16.11.2011 Discussion of T1

T2: Molecular Dynamics: Lennard-Jones liquid

Peter Košovan
5. 23.11.2011 Working on problems from T2 Peter Košovan
6. 30.11.2011 Discussion of T2

T3: MD in NVE and NVT ensembles; implementing different thermostats

Marcello Sega
7. 7.12.2011 Working on problems from T3 Peter Košovan
8. 14.12.2011 Discussion of T3

T4: The finite Difference and Finite element methods

Marcello Sega
9. 21.12.2011 Working on problems from T4 Marcello Sega
10. 11.1.2012 Discussion of T4

T5: Simple and importance sampling. Random walks.

Marcello Sega
11. 18.1.2012 Working on problems from T5 Marcello Sega
12. 25.1.2012 Discussion of T5

T6: Monte Carlo-Ising model

Peter Košovan
13. 1.2.2012 Working on problems from T6 Peter Košovan
14. 8.2.2012 Discussion of T6, end of the tutorials Peter Košovan

Marcello Sega

Assessment of the tutorials

Each task within the tutorial is assigned a given number of points. In total, every tutorial comprises 10 points. This means that there is a total maximum of 60 points and 30 are required to pass.

Obtaining extra points
Most tutorials contain some extra tasks. These constitute bonus points. typically there are two bonus points per worksheet.
First person who identifies a bug in the code provided by the tutors gets an extra point and one additional extra point if he/she can fix the bug. Same applies to finding a mistake in the worksheets which significantly changes the meaning. We are also thankful for pointing out misprints but these are not awarded extra points.
If you have a brilliant idea about an extra task which could be done in addition to what is requested in the worksheet, first ask the tutor to approve it. He will also tell you how many points you can get for it.

Guidelines for submitting the reports

Homework for the tutorials should be submitted in the form of a report. It has to be submitted via e-mail as a single pdf document. Submission of handwritten reports is discouraged, but will also be accepted. Source code should always be sent via e-mail in a separate file, if needed. If the code concerns only a few lines, it may be a part of the report. Reports clearly not meeting these requirements may be rejected without evaluation.

Reports obviously copied from someone else will be rejected without evaluation. It is encouraged to help each other and discuss your results, but each report has to be an original work.

If you have a technical problem on the CIP pool computers, e.g. a missing program or library or something else which does not allow you to perform a certain task, ask the tutor for assistance.

If you are not able for any reason to get the expected results, you should at least describe in the report your attempts to obtain them and/or to understand the origin of the problem. Saying in your report "I was not able to run program XXX, therefore I do not provide answer to Task YY." will not be accepted.

In your communications by email, always send the message to both tutors.

Deadline
Every other Monday morning, that is, two days before the next task is handed out.
A delayed submission is penalized -1 point for each day of the delay.
The deadline can be postponed if there is a good reason, but it must be decided together with the tutors during the last tutorial before the deadline. The tutor has a right to accept or reject the request and will announce it to all students.
In case of special circumstances (illness, accident, ...) contact the tutors immediately via e-mail to agree on an individual deadline.
Text of the report
Has to contain author name, student ID and date.
Should be subdivided into sections, each section being clearly related to one task of the homework.
Should be written in sentences, not points like in a presentation.
Should not repeat the introduction from the worksheet.
All conclusions must be explained and when appropriate, supported by data (plots, tables). In case a derivation is required, all intermediate steps have to be clearly understandable or explained in the text.
For each simulation, it has to be clear, what were the input parameters, so that it can be re-run.
There is no upper or lower size limit on the report. Use common sense.
Figures and plots
Each figure has to have a number and a caption or title saying what is in the figure.
In text, refer to figures by the number or title, so that it is clear which figure you are referring to.
Each plot has to have labels on axes with font size comparable to other text. Plots without labels will not be considered.
Data points should fill a major part of plot area. The point size, x- and y-scales have to be chosen appropriately so that all important features can be seen.
All figures have to be included in the report. Figures sent as separate files will not be considered.
You may optionally provide the data files. If there is a problem in your work, it may help the tutor understand where you made a mistake.
Source files
Remember that someone has to read your code, understand it and check that it is correct.
Provide all files in which you made changes!
Use variables with intuitively understandable names. If not, at least put a comment saying what it means.
If the code is more complex, add comments to it. Especially to parts which may not be easy to read.
We recommend that you indent your code for better readability.

Recommended literature


Useful online resources

  • Linux cheat sheet application_pdf.pnghere (53 KB)Info circle.png
  • Becareful when using Wiki-type of resources. They may contain a lot of useful information, but also a lot of nonsense, because anyone can write into them.