<p><q> <em>Everyone knows that debugging is twice as hard as writing a program in the first place. <br /> So if you're as clever as you can be when you write it, how will you ever debug it?</em> </q></p><p>-- Brian Kernighan</p><p>The main focus will be on how to design and develop correct, maintainable, and well performing scientific software. Although typically quite some time is used for debugging, it is unfortunately still the case that many programs are not correct. If a scientific program produces a wrong result, it does not matter how fast it does so. By using good design and programming styles it is possible to reduce the time for debugging considerably, while still maintaining higher hopes for correctness.</p><p>The lecture will also give an introduction to the kind of tools that should be used in software development today. While very popular, writing correct programs was never one of the design goals of C/C++. We will investigate languages that aim to provide more help in this regard and allow even to some degree proofs of correctness.</p> <h3>Prerequisites</h3><p>COMA and/or good knowledge of at least one programming language, preferably C/C++. <br /> ADM I helpful but not necessary. <br /> This course is intended for master and (advanced) bachelor students. <br /> Particpants need a computer running Linux/Mac OS-X (you can try Windows, but you will be on your own).</p><h3><strong>Formalities</strong></h3><p>Time:</p><table><tbody><tr><td>&nbsp;</td><td>Fr, 12:00-14:00</td></tr><tr><td>Room:</td><td>MA 144</td></tr><tr><td>Duration:</td><td>21.04.2017 - 21.07.2017</td></tr><tr><td>Veranstaltungsnr.</td><td>3236 L 370</td></tr><tr><td>Length</td><td>2 SWS</td></tr><tr><td>Credits</td><td>5 LP (ECTS)</td></tr><tr><td>Expected</td><td>Regular attendance, completion of homework assignments</td></tr><tr><td>Grade/Exam</td><td>Part of the later homework will be a small programming project. Grades will be devised from the results</td></tr><tr><td>Modul</td><td>Fortgeschrittene Themen der Algorithmischen Diskreten Mathematik</td></tr></tbody></table> <p><a href="http://www.math.tu-berlin.de/fachgebiete_ag_diskalg/fg_software_und_algorithmen_fuer_die_diskrete_optimierung/v-menue/mitarbeiter/prof_dr_thorsten_koch/v-menue/home/">Prof. Dr. Thorsten Koch</a><a><br /> </a><a href="http://www.zib.de/members/rehfeldt">Daniel Rehfeldt</a></p>