From 2a84a0df130b0a02779206198da5218505174e02 Mon Sep 17 00:00:00 2001 From: Jan Grewe Date: Fri, 7 Oct 2016 19:17:17 +0200 Subject: [PATCH] new debugging chapter --- debugging/lecture/Makefile | 12 ++ .../lecture/beamercolorthemetuebingen.sty | 61 +++++++ debugging/lecture/debugging-chapter.pdf | Bin 0 -> 102021 bytes debugging/lecture/debugging-chapter.tex | 21 +++ debugging/lecture/debugging.tex | 169 ++++++++++++++++++ debugging/lecture/figures/no_bug.jpg | Bin 0 -> 5387 bytes 6 files changed, 263 insertions(+) create mode 100644 debugging/lecture/Makefile create mode 100644 debugging/lecture/beamercolorthemetuebingen.sty create mode 100644 debugging/lecture/debugging-chapter.pdf create mode 100644 debugging/lecture/debugging-chapter.tex create mode 100644 debugging/lecture/debugging.tex create mode 100644 debugging/lecture/figures/no_bug.jpg diff --git a/debugging/lecture/Makefile b/debugging/lecture/Makefile new file mode 100644 index 0000000..8c88530 --- /dev/null +++ b/debugging/lecture/Makefile @@ -0,0 +1,12 @@ +BASENAME=debugging + +all : pdf + +include ../../chapter.mk + +# script: +pdf : chapter + +clean : cleanchapter + +cleanall : clean cleanchapter diff --git a/debugging/lecture/beamercolorthemetuebingen.sty b/debugging/lecture/beamercolorthemetuebingen.sty new file mode 100644 index 0000000..c4a5da6 --- /dev/null +++ b/debugging/lecture/beamercolorthemetuebingen.sty @@ -0,0 +1,61 @@ +% Copyright 2007 by Till Tantau +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. +% +% See the file doc/licenses/LICENSE for more details. + +\usepackage{color} +\definecolor{karminrot}{RGB}{165,30,55} +\definecolor{gold}{RGB}{180,160,105} +\definecolor{anthrazit}{RGB}{50 ,65 ,75 } + +\mode + +\setbeamercolor*{normal text}{fg=anthrazit,bg=white} +\setbeamercolor*{alerted text}{fg=anthrazit} +\setbeamercolor*{example text}{fg=anthrazit} +\setbeamercolor*{structure}{fg=gold,bg=karminrot} + +\providecommand*{\beamer@bftext@only}{% + \relax + \ifmmode + \expandafter\beamer@bftext@warning + \else + \expandafter\bfseries + \fi +} +\providecommand*{\beamer@bftext@warning}{% + \ClassWarning{beamer} + {Cannot use bold for alerted text in math mode}% +} + +\setbeamerfont{alerted text}{series=\beamer@bftext@only} + +\setbeamercolor{palette primary}{fg=karminrot,bg=white} +\setbeamercolor{palette secondary}{fg=gold,bg=white} +\setbeamercolor{palette tertiary}{fg=anthrazit,bg=white} +\setbeamercolor{palette quaternary}{fg=black,bg=white} + +\setbeamercolor{sidebar}{bg=karminrot!100} + +\setbeamercolor{palette sidebar primary}{fg=karminrot} +\setbeamercolor{palette sidebar secondary}{fg=karminrot} +\setbeamercolor{palette sidebar tertiary}{fg=karminrot} +\setbeamercolor{palette sidebar quaternary}{fg=karminrot} + +\setbeamercolor{item projected}{fg=black,bg=black!20} + +\setbeamercolor*{block body}{} +\setbeamercolor*{block body alerted}{} +\setbeamercolor*{block body example}{} +\setbeamercolor*{block title}{parent=structure} +\setbeamercolor*{block title alerted}{parent=alerted text} +\setbeamercolor*{block title example}{parent=example text} + +\setbeamercolor*{titlelike}{parent=structure} + +\mode + diff --git a/debugging/lecture/debugging-chapter.pdf b/debugging/lecture/debugging-chapter.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d4df870a0ea3a745bdfedd8d76e9cbe5af794b26 GIT binary patch literal 102021 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

m9FyCS24xXIv?-4LOcp#vc z*WaE51O%#*zt~din<-bOaNu+o=b3f)cXmFC52sOm8=rY%No81Su#tN{9(I5G_he-9 z%Dx~C{?x6&L4bNL`F?58fq=x$&oIg>tANx{l%4-Z=97&*S3pR+TKYrxCkG15KgSx6 z*_V0(<=3mn?_Yg6%sV`Vt#&+iqb>XZdvj zR^!m<-(bV}FKdKR&)SwHhjIlS&NaM@y!yr^ z%hrSPC40qshxG5SdapGzVBofI@>AN2up`JI4ZmFLU#uh0U!=)Q5W2w54#BE!JcHf@ z4$h$8Nx|)yf6bq#VOW1x;c-x^U_y*cUWOfoy-%Nh)JymHly8l#qVIjCuv}DYeJ26` zy#n)Ju{XHA4`fdMt?yLI!0JE;}lR&2< z8^F~4QCsfGh4g0g1F3$yP&j<}&~V<($OurP!IS@l$OD`hvltyZN?jv%k6Z+#0me&AjuQ{=?7js;WvR{F@0ji{g9utyc>U}+3 zj%uoau{3H&bVZJh;8sC#I(#ebMr()Mvz47JYy~A9gSk?{++7!QM!T8hL+zx8@${>n zK#-S1PC9bmToN2RMc$K%?z^UB&A^9Tr~yOZa0eEt#Wvp5^K!!(RCq03_1Do_XmXR= zD%aY5Z49j@z+0;p6yS;sj=-SJz7O_`0RvH#{U-en#JTv>(?130DjGF+@b~vF=gb`M zt(?6PnI1#LdID(C^?ZpS4~@1g79d$qI z!}sSz47EC9@qpqip{;_CX%{O8fhh;mUh;&Jf9Ni1yJiJcI*^}NE!H84ie+dfK4Wvw zsW8qy1~)bBJ{}LrpHLT$$s&eKv& zq{|d$TC1YMORQg9j`A!(0*(G_!CKS-1hd@g(4;-~KV#)mD~vGjvEOlbm%r>R&G1S` z!R_NyC{=~K@~3SOjSq2&ga8qxXCv*tzn5CZ&ffL*z(^u!LYD?C+*lDuRsgR|*Lf!~ z^hawxE_bF5VNV(4^#${>$DD*HXpG-v0e>1TEa}5)1_ARO`7>@`|3Cr4&795?r8-^D z4pJ<^->vs9)}Uv2*9n>O{5DK7SP0?;W=rq6P*GceQJww3Np^>4;o#a)$(*sh=`C0{ z1A{_I^X9b)r97MYxuF7>X0kO8y$R}go%-?L?56}E>$zls~^GI6G z2@V(SU&ma7!HtjiwC>U3TI?YPVx=ufp>Zel!!FtEY;WPY!t&euUTLI})32}Y6)0Yg zbmi8TZP(mL;|Io7bae$tUv%1sJLVfA-+ic3tt!vJQ;GaEX_~@u1E7m$i5+rd?E(Wn zi;iy-?O1Hua^h2#2b24fnCyqL4v?P@!t3PovqqMpHC~DksVth&36588?=kTxc30?; z@><=?wFep5E0j_=^yO7{k*ZLi+ewOsZ-U45)<%>nozX=idRyH|E6T{?hfkI*J{!?R1q7pbi$dH4KN6PsZ?o4M zQwD+tA0LNa==oM~S!2RKrnVzSIOqSFU0YA`m}_*SU!SY~^P&7epO-Kqj#0YeCc^~f zV7qJib{kWYA&dwdSr)+FcO|e4D(&TMT%_64IT6|PTd>6yVPIaoH_M*poK6rRNxAjc zSERmIvR%Ej$}!8OwmK{_(_2ZBKNnt;|S z4Ctglj#8TsDK4jgM0@IS_OvuDZ(hVHL+)U_O2U-@H1rGgi(|!sjx=5o>*k+Q=$21Y z5)p(xbJR~HIij(XIYnwuOu6UbF=dv^tc4-e=1S=dXVr9j9##Tc@Prl>*V$1TJR4s+ zc>HU1!u*Q^t!LtV;#v_@Tn=ZE5FRGEXbTim?zIOKD5LA$6Vr>mLjxk7rio-@uHaoQ9sOE0BZoS|5yXz!)(GzU=Eb*}8GwVw+A_?_7 z+@Q(%bcVMN4U}bndPttui})?9VcSVi7hJXIArIr(JXdPU&u7Sz|HGZz=5$n_bxVSc zn>AgQ4~e{U6bJE=aNlZ(jj$&6wH(=Ugto&##s8+$6n1(TjF7}cFS<%ZVWY4vg=IZ! zeT#GA59vO$p|oobeKOxQRyq&%2WX-_re=`|g{zk**LM)Tlk$3DV7k+HOb{%O zjdQ_2ZL2d9hQAxDq4ky#QBV-YFM&iSTzL1u_{Ia1QUvues$yPgRjAzB~ z;z)#lU#rcDj4-3YEG@w;92ArT@XT3=r1m5{^t!(ATXD`z=PknE&%kgKHq`csL?yXi7Ch8 zQPk}QnYE6m7)C3G=s`xbfRx$fRs_Q8lam03rk*z~BAuaRQ>6X`1tEV}4LzvO;5)L% zjAJfy2gba*xc>Q+8tB!cqkBF3^^(E(!r;k!5*mgpd*Nky(u-@vu+slm|L;dy6vw%h zgp+s>yJdXCcR$C+hK?_{j`atsF9%KW$C2&UUrt|G)SX@5M5YjeDty^tl?vo*i9mg> zht?Q*gDTV60_{v|h=OE4Ggn6Y{1r=b+-3sFPij@7&s78a$YC@w7S3jv>ZRnQTP8RS z<}uT5GaxUb!6L|if?3#hQ5}`7k1mgL0zJbHpY{&=8A?t^skXR}loAQCwpHnj%n;e$ z3iXsMk1VsCZ#HH8D6dN0pJ1le1hy06^F!0hd57~dVtO464w}ZHUGX~2Wf-Yp@l@TQ zllQ1}+YBBdV_N(8=0XtOPfZXGu_>@~r{@Csz;i6{gcnGL5W-tQKIN>xQmK669v4pm zx#}cU6wHQ-xnug8Q#$5$n^?`O9aGfC2GEl-i?^KER_j*0BR03ghIr8IQ09(pqUY7z z(F{7y?`0qeLcIO9Ff53(1*~2#aUbtrWqPPp;UR^JbcscGkt4j1E?rt_(lOCtL-8JU z^*gBLj5@4NLm*{kbd>xu6RWax_-yJKC!c4|r5#j$J|K?n^6p;K{Wdql1VL_PWdaZd z%CtVn5mNkVTgtYaQ{h?8Nz%F}mpc>OCf+%vg0NGfKpT zbtPf*L`_cxKrp7TuRyWpRSfX)gY)BTD8!I z6jNWV#AUBjCzH#agWEjeibhege?gH~qDWL%(#gd5?^dpiz``>GYxn)NEn97dGeN-Z z=ioSV(+S8NrSYb3VJ}#I?XZQo4dyA5m`9nn2$Cu34$)K!QFGj;stsV7%=C{IfRRxX zkNIIH9Mft~F#@{M@Ne%%(s;}EwE8ippIA)YE{-8JdLq{y6zlrstq=gZvwXfUR{PTp?Li{k*YyvR|(WNqHH1Q7OZGc~pcsdR{_ zIUQ%K6aL?2E*bG>Zu|zih7BjREwWW@TC1&_@89fLb z1PZN;di9ZaOak6U>tBhZg|D-D{VG-?v4lply5G05eC6DBWI46|3sD*&;mBU0Bkbzf z?C%?FNg`5g2Fmljtlkt>bGtx~gFP|hlh#n@1^wTT(w5@lC`xJ?l%f_c&PB;LF6=Y( z$Hyp8BF@}v%|U4g)#`}4VDKX1lOdlGYx}r59Hy~EyeYJy$CgsVSGcA##zjXu-^vB? z-x=t()-(W~E3X42hrf?z136Ku<(}%Es>O09fP`|_zhe1Di9fK0( zd9FLoCsZPc%QxhdhX%Xi^L$lG~8n-M~-{YbHwO>7v@ zC=?1wEK%N!f*9g-Jes|2qjDi1EX_^|5Gvu@a0?+i2-j`hV*ZX>8#istM=V)+EtEqO zGOX@a;4cYcV_+u^qr_#ZwZiI^AgM!~4()3WUgjf|h=JaPM&*|7VA!s4jIlge`$w32 z)dOi=PExcjY3=X#8H5717dNA%&Jk7SLsX()p>G_mFXuTi-aF}he)&0!iKOpLp~f?OGSyj=ROlZg3ZS)%Zu4{KkozdI zBa4tc>r^Pp7;o-gd8cro2%BOoExSJ8!S1J`I$##1?F0_#3x9gp`n8a|hF8fbMqbpKI}v;6SDjxqLDaZ}f60T)DJ?#rK7I2w`tafnzYq=FZ6m5$-s3x(uPK z?7(3}B(zDE3LUB63Z?fF%=sk=ffRJNvdlab=PhkRi5 zDxiC_J`BZx75Ha+ff<2PRU*Nb>d;n<#^xX(3nmlRJw>KedTpkEa-%L`EHm>Im~)Wv z9cQ~y4XA;WhRn@4=R{SxPudd=?mHVEAPwunP1=dC!xwIxcGv2`5?LLN_CxuLn}=q8 ze?Bnj$sk9jB{hO{I}?QNki|*lksN||H*UjMDjeF>O#Fpt$OI~Cl!G6rg?V>> zjIP|;vZKg&Ec>*HAF@+BtO)M8)re|}wVUA=ALl5Za|K==L=!XZoP}JycguZF2Ik!t z7qBWP%_kOG5=)rxt?_I4zIaV}d!$-2Vh{K35tD4OS=LDTpbwauFevO9T$$Pm6qAl_ zZ2y6DUPiO4^~q{*f9;A9m6v@-IdqR3k#7l3EY!e16WF^AliyJ5NsNVB>kl0iu?>j4 zOYm@8Vk5K6b%wiH2q~~W89*wc{8pm90t&Y(D1zz0S3MvjqR`HpryQ1B;Dm?Msk07LPBfs z7@thL<7=4aY7z_t1%ccIQPcbq1ruE?YI?uEv##Uqy;ZD3@J0W^6|?7Z5MK}L$=RJn zf7*v%DIvrKQ-Sz3l+t@Q`>6Vw%0R|LjpR1tUq%Njsee?4l68yf-sxngi`8j|3rUs; z@wViOVluJA&5#LBXz2Jb8^5%6X7{d68Y3>^Tsf!gW!YX9UP}7ps}d0+JL{CHkY})& zIJ%D7hu7VgVTWsanJb+P+O;;AnxA%)*1p$4OU=^64?^sl{)?){19=gaKcT)7HcdRs4xwKlZOQ z+CxG|!N?+Oh8_K^2?c?4Yz6eoh6o#CoPL$N0`7)gZaix z;xdr<0>8<5!MpL<`qR2e+BAxZ65Chaanwb2nI$HtPV$>u|w&MC0hR4fBK8n`>Ne|qY z-Jb~$nd~zoc2jwa?blkaIv9V);(jS*t~~24yV82jNUdgyG?!HX1u0d8azii;%Ex^q zAI-6UWGfa}1Bzc8;${fsC}KH9sF0LU565S#Lcpc{Ro|U+V|)|)_Fe+cggeOGU7jK9 zlJ6gD+57$wN66L?9~RM<7TR=P{l}HbS7q-9VfaOxBE7CGq8BKrM_lQ@t;p^N2O+h3 zdHIs8iQ%o7QIhJDpdcS zH$ga6rO?D_+#9_tw*#@@r=-Oz$#F;>M`)<4lMe)W$~RdjcPCv87*xT32nFoPA)wwK?|8b z+qAZ~*2wK{V7hqRh-e(yhht1C`*)F$ZOr_cee%{bCrNYH;z9hg;kQFCsV8V@Ny5Xq zA=K7uZCI2Z654=)i&fZ5(KNi-$ob|Z+A|9oUxm=XmS(q_EkI8Ke^j7P*p?G2{NM>i zfZ66Br=8vBMrm7sZkCQ8Eih5mu+6F%|Tq|x=+`xRD)m=Xb{61-AhUYKL( z3A6B&p+f8eyh^U4Xa#|&o{3jA9aWb(jW9#{?=XY8BB7?GS-yycWb!VqVuG~P=rhaQ)f!!|`VSiJk5=p$Im3r$!i$Oo zB5zx|8x&$-bk{|Di)}4J?zSndBUt*BpUbeEQ42A!NT+Ctxw&FLW_7BE)T3#bKwa}P zYRK6InJ`U)U_KYLzhg`+ZVXSc`umU>b67XWc*ae&K2j3L4kpW$fX?;-vg?n4)-m{= z=7?sTwn(;0{XXha*DrWH%bU2u)qxJ2UNiGe6s3a6f_%aies1ZB41On8pMz=)mHdPj zuCj9EuHs2V20`yC_@UAdEO5u0R;Nz;w}TYa$qjnEu%a8O5WV*t|EO*0GlIvC3iiJn zYH&IEG=a4WWup-PTM7cBDv>SR+GO5%%`ZiA&XRS_-9=hsF{s0+Yrig90mTnUR1;AH z&rnDE&n>DK=0d`C?C}!e2g?!HgQ!&R^sicmPPEgAfPC@Bz$HH>Pm(AFo}0tm=~Nm$ zlm&CXX#%cgi@!`-tT^>S-BEveYp`8v5eO>Y=J4UnbS%&WAdbq@2NRzE_$T~B*{MHy z=B9M!xHkAs(|9O%=G1@<&)So2eO~fvtfpOR=H393?kL%c4!=7n5;uW|sVThmkrG;R zxqs^6I>-J_m70P1OYUS+Ep=sn9TC>ncsWTb&B=>3Nm5)AHR44BnI|JH=3l)dVuC-` z?D|I^+yLN2`mmoOe0~dn+ls;m@<)~2km?gMl2M|`Y%is z>L}(*btCNQ@Vk{nh!#&rDH0*O85Kvj`V%5%+;k5fR1JhDG$Bit`zBz5x zx*>vP)FaZQXnL4%9|TE1V9IQMzUX3S?x&sL3Q7_W@Qik5_x>y`5V=>0K0mP|KF~AGmFYEF>#mN)SdkJP@|uhABzb` zc8;y)i}MeiaGy)Ab|pTHc8-&eRI3TCFYorO>M5}DM}y2~@f(Mw$u_JUg!s~d=&CD* z4r47KBQ@|>4x~rJ=vAE&TYYM{;+xwHEJ4G(N%qF=heRmnT!xV{BdEAM!y*P;fygR~ zFh$!u?ZxjidSGOG8j&B{#&Fi0z=Bp({3uPHhO8`+E5scG7d4PYsq(DwMgK$~>Q>Ue zGIq%J`(KQnzrq$&R*019BcVv;oA;IzTN#la9wAXiBS)fnuUSHpS>4G{>eU%#l@7_z zAO60sjlB83HmPlXIOKpXp3Jfj{a|Q(4WE?ZCzB=FsFt<9g4TbRsw2!HiYOVjJS_y$ z46x%7594B@z&_e)i1@fcmv`3}Flvf`px>M(k>dn8HvCLWd*N#g`pc0q;4HPI4aHFr zCvIUmv22NT`FB{ytV=t9rT*k_sEqhYge( zsS53X2#+IS@tnJ+{tE-@AJb@a*@3tesSa4(o1k)vll9JvuL|?u9bU{Wl)ko?S=}pY z=@)ZrA5*Jy6PfvcFBL$6Y)AaWdYKVehgBKInwig{Jc&24LEud zv3r-yLorJ!{nh(6yvu{vqKSWO+e>C^&t zHh+{c`P?*j&0?i4G(IUOmrbc`N!o%RlB18y=uOa?sJ}5E%}G}CFsCo2#c?{U0lpAc zeB!18lKe1+bLvwr2eTrfLd`4{#H($N^pRC1yaX}0YG(-XH4|Ammi@I&{65ct$%{Hqtd zKc$Coe7(FG4%15V;iLR;jB{Od$dSEz5a$%VLKohl{d|9VBkXyM@2Ke-73?fV!|jD% zWGz(OIBR;Sq7P+?_bV9+tID`}j&20BenKDRrJr;wR0dTC6>aFDO z$ACt(^HbVXtRRtdd+@;r2DbsR`rv*00;NT^_|n(ewLec=m)ek{)=q#*q)^KU1V*FF zjfvCju;n=;7A_4M-D=h%E-~g0vvvh(?Ly8!#rvmdEgPHSah_HKBB)Iw-theyT8H+T zn~gV+v62IK`f}wnUSvI|A&f{CHxJ`5`W*q1UdMDKo*oNdxf}BIpwFKNjTks3RNMn6 z%PFmSs@`b}!z&7kTFd(=Vbj|rjDbdH6bbE=aDvlN0{eA?NMSV%%YjSy?y(`y?Kb&X zuxdi&>&%KOY+_Mb22Q%Fj1Cp>zZh}4E{tW@LyQSMLKnRUj(YgOjh+3i-$k4TRj42s`>NkK=vl4Cbpm;T<3$`=2fAQ!lf~I^_jhqfm9@qk}TRbtL zS1~r^m)hg1Y#!~tRgehMbdX<_KoMWvZDB0F z=zjG4m%Q*abcpX3CT@Lp->zP(;(~k5ZIag!^eTLR8{N+HpqjsF`E3P|^yJ$1awcUe z%B*X{R9ZGT=!8$NzmfV}OFB@Wxa132T}(6a)v&XsouYa=dCzGVPAs-w`sv^y7i8*2 zhlYQ_TkwV)A=$9BDOi3&khgu5jultY$xoEDoZN2%ZhK&3U3(s;3f&goFPFVU1>rIP z)=9UVDcP$UbDwEXk6QYPC+L;&9p8Spf~vh%DA+RPjN{7gvygqMs|^P)xJPp@t%~dI zFcXGoST}`W%V;&(X_q<~#k>^SYjdUaw~LU>k28%2dwwF0C)rhf%HnwxOa%v3id9mC zlzZ-w1mu&T2Sf`((4tZD-V+;ClKTA9TQt0K8d-9vxhfX-Lrwa6&LkYxDO??BXrD%@ zOLCAof)>+zdWT@6lz2SjXX*k3clj7GqL+qPO+0}o%p_k)1&LEZqc0S`E<+kOOfey;D7U7O#hAUQgpL5!lRYZH&<}9f})ki z1JKby(F&W{J2>L8(lPue?}f*}#K`jh#kwvvENn2F5kISRdSjSqsA#r{{vd~5wuq%4 z9X3cA{0*Y2HfpRpIE!Qde0+v^#y4+FUM{^Bf<^}G)U;>KV7te28C;|?$SRElEh0vW zXPXSv=Vv96Wk82YSYpuohl-wn&LB)jo(kD!@=pnGBJ~mPVM0u(qk~CO3^mdqzKtOg zI0S}a#JBwC97b7V8Y;!}P}k))%KNkCR)inWOO+N_lV%1CNk7~$h$3%x)5r&a<(B4S zzHy?VLtK$q4T$s~pxZ&CpN4q>WyH9F<`aM{0a}e3MCnT?0h+^%DQ}#K7W)TkjNiss zXOdeF6RcK}gV&+d;@;cCZw^@`nda-`SPPTMj5LAh2qg&t9^^si0$1bL3f>oO+Y18+ zEKu|dw`yia&-2F5GME0>sjo^fCis*g`mt?LV2{|S-XQ(X1ZETg9l$ssU^s!zC8f6q$?5U53`#}>rUSwOe#t@Y@vjYxpNVf{EdA{O z4SfQkzl&EwbPSWm7}##C3+s;W$H0ba9i!^T`in{>)6mN z)H)I}ervgghH_cn>%^@UNvF@QpKYw*-0>s#C3;P)EJC|DXny_MQLIrRjW0E{1@Pw7 z=H?;PmdSc}d7oxs+qVJB?-+(RQGn5;+1V0Y-M_vYv}D3Pf`*z{x%2V{;9yNyubKse zN%Z0zsKLV={ltr?N3x`g8E)7LM~c~mEKN*0qtpnMVzMiyQf|KvUEeffa3_w?UODfk zr(PVs{Bg6wT?K$(Q!bFbSJCLQQOl}F;~LLRTKdGjR52W7)R2b9Z%vt|-vxGXb|ZDU z!x`yYxc9KTO5P8u#ZS2J;A$YesD;WI_wQFPji@6fgT!DScaLKrvbscQ?3SJx0_Po> z{$*_Poz?j({^REVj1w!Y^9qB>h^Kd*Fl6RwMTc=XC}%yG)P)?*B8V7VH)$TXkxmXU zni8};xiw%_8`w{^*AjEaA|q9H63SIyf*oXC1Q7c$WW&nX>qfgpN2B{>Z_}hpFWMRr zr&Uq)3uwB*hL5pp5EEDCEY-z4Ec?kztfq|6$AmeCmlQXsECCZw}J-$;Q&90{sxO53; zV^Ml;u47F1r#vWxA-L^Ur*NW?vmK<^)-?!L1YJt!h3QB-C;6CpHlQ?QL0UD}i(H4P za{jjEv~MoS1F;>ZSnl02td3F||4DT|q-6X#;kcjH3n@TaMW8D+pVi5R$!`xlrv|FN}aU-90ctu)olRKiY=GCL{YmsOa=V6+=Nog zU>H(IH2M8q%A$m?A^d)$%@%dTmLZB~pKT1MjkqlJ0+u`F5Kg{F-{SKXL?saB0Ezdu^5RUXRSNU?FZEX-n6IZ0IHx>tNUbTDmB zwvEQnckOQ!;$S6pYT|-^U4y;R>(4MnQ#`?4;q%0(WEA<$rA#3501E%2UbCt0p=YU&e~Zxz*i4jlY{Yh4C3BWJ;Oo zmAXtV4J{kv@ZX)+M(~J6v%_mN-W4aj%u13h7$;?CzkxsKNDA5cFe4JTR}GkH(0(b= z=nHCUDm0ou#=l~H+8mkIsiA~wQ$1J^&SB!#xHX_ zmCJfJB~Xpv|0=1IL2NJrm3#}~@yV^QZwm8^F>4&zD*Yp>+F&Xc(&u-ioXT-E$DWS* zg&NH$UiCf?Zw=|x>9iu*Lv1jggACshHPqOxc7;C39RUT)QOapJ zJXjl?)5H1Y#0Pd<(hLgQU3kv4$pNFTFOKYK2QbZ~;~#G#MM5z?WWzbPH|BK3DYQDb zgkO=k_s^a^)334cCJC#^-__ONAO6Rj-(F0qHxk@?`EJ~*M-JYD)!f^fhYH+B-M5h0 z2N9s%M+)5g^=4BxFR+~`nFlH3dCbM=uTtE&(=;!WhK)N8T{{sU?wXQ~2je`(o`Wj$ z5uROtr;gaZ1GevYUbA04n^bu1IfF^~imKJF1wLO+HhV*siO)!ZbG+%&H8*}YDp=|a zA|Vd;hB2)`#35g}Y6MURwF6tm2Zb;m0+YDdgauK zL<6k?^$pYtS|R;%1IGRQ>8`I+; z+swG{gS7qO%!;lFd^8R)3h?yiO4ZJg`T5}1T~xE|>2e&ntx|6UCtTa!MovayP-(85 zt#AJ_@x4KpXOp`G`E2_qRYg8S7Yqs}cdzeGM+UOzMeF#L8j%9;L&u zbzQ=My1VNyRTZ=5ll=!I8<51RCDZjz_dK9(NEz{qGP+}gM=yHtB^mK$k#o8{$Y#B@ zd5JrY%k zzT4})2{aDdE(ZMF>(sQKJWX{)it5C<6BJs*&W3_c6Y)9i3BrOd_>cg#-r_P=i5~RV zK&NfN3I96HTwNenI^1sWJi-8`j&|Q<(L?)FY2QL=8F$PHlQsWPx~5VU%GC^CfP&Eb+svh&SWmIw?ona z3>y7A^k@4_dV8U0jk&ZQI9YfW9Gy<05kL=fO7>7yLNkYeB%BBtG9_4jkC17uR^8m9 zAhy(7sdLOs(x`Qe!Kpm%q|UnjbbC-h%+wbH2NuEkMYn!xXFw=xbjRMrH$YdF+j$LsgCH$j=t9>@8Frrjc)(66j(*iK+jOy4I2)xu9K~>K#J=asz=y z&_N^bA2I;beAeF;WcF&qhIs%=s@4!HRqVnPhp#LXvs7yI#L!)Uv08rMggiH1ipSrw z{fS#@R?%dkk5JTkTYMpL>M~wB)ag&)1wz4jlY{A43x~WHVo6m%q$7<5A9%fT1IFWv z%YKBAS5+J5g9eT+ecqgA2JcI?&2}9`P#G(|SvE*g;31rR7i4pTEn+p8?5XWmnpsf&>9a$t)18#48 zZ^71$Onb)8m6|zy0mo}Gfst6`xRCZ{pLTe8-$)>u`mVlcCIK{7n@VqF4-;A|YlOeOXzju+j+QUIXH3#JHAR4S$Lvmvo!FGS{@URi>C{Ex}iZoP6X z`P&QYW!vO-yT_Yt{kp^U*R_>vk1uxLqH%3PQT2`5Rjsza=B!HfDpI<9i}CP{u)`B3 zZ#~2^r9|6{!Si?Z6|U;ri{D-3;&>g_!nh%mRpN)##cPc>eYx$7*itgyGT6P7TlyyM z^oqG&CtrM9SL=4;RQg(5gHG|awi`P0LwU}`Xd8bhvaa1Qp)fn-%Ip2p(jQ1*_9P9B zfO~%w@{_U@Y;3sn9ZO3x@{2Sy^+PgCa#DeGaA{IjYH|sXOghA`6+~ygcKzf6r`po z=({E66sL0O2ZXpr=(&~V)R##n~ z^D4i#$3SQzkD}<3AAG_KIF8s&5SU;$K`6j(f}lr@g8Br$1nCXWH|h13?~A->7NNI3 z>{VBDp8?CQdu1EPd9q~Al5_9Bo|}^E{7I#$#_D3^Kdtxq9m|XSJx>&` zZe2G=r!TC>Om6L*Q|oWt{oAhDm$og-=5n z>i(5T-AGRCT4l@frdRJ;^M-!84c8~HJk`c@!dSeJ-~3O|YrdEIZ{s%muD_nUc;%AI zXPa~R-W516j{mK8>>9RYj(mPMB!VJ>Qq#EfJ@ZmhD-@y)6by|_W4ZK$GpkZTOfLO! zg=j+sV+BK?U{HR32~f}om{Wp4I@0oiJW##?@mv(5ZJbOEO$|+4EliCKOe`&(jhzh4 zObwka3=J%tfJxfP%ua!@5}-Xksd?$Zd}U;53K^*(B5lZCI&Q=qAkzM^*vV;&z~1sj zEg6a~?^V4z^ln}IbS@$#Q}waro@VwBJaPvr7`^!$YSKT?&M!QFCiai3%Rd{XdyX83 z1v;|SbV3AU8k^X=9twR@kl*v5nQ7{S_Pf(ocpO+I@TY)fc>$BBMLWY3XVxjJe(Zm< zjpy70fuI5&W`Ph++nc++Ry1X;XpCCXT$Rz_meG`!(HNG|T=t^D??qGIi^ez(NBJ*@ znRr&a{QcI;(Q`nf=b(j;gNRxpSCRp*u|Rv|jOI#<2G@wD)QHB=i00B80iDa=u+P@w z_gt+z_09UL+fGHF$#Q@C`MB1?Pjffk3hmt!^>*blp|IZtjF~&yq<6Gh?>PUkDEQ>Q z;)fC)$qIdu7HJP>w0>S`XaDTp-X%}v|F708!AuXuC5c5P6~MBK%h15k#N2>ORn^ts GjSB#Exy{D_ literal 0 HcmV?d00001 diff --git a/debugging/lecture/debugging-chapter.tex b/debugging/lecture/debugging-chapter.tex new file mode 100644 index 0000000..d707b86 --- /dev/null +++ b/debugging/lecture/debugging-chapter.tex @@ -0,0 +1,21 @@ + +\documentclass[12pt]{book} + +\input{../../header} + +\lstset{inputpath=../code} +\graphicspath{{figures/}} + +\typein[\pagenumber]{Number of first page} +\typein[\chapternumber]{Chapter number} +\setcounter{page}{\pagenumber} +\setcounter{chapter}{\chapternumber} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{document} + +\input{debugging} + +\end{document} + diff --git a/debugging/lecture/debugging.tex b/debugging/lecture/debugging.tex new file mode 100644 index 0000000..e3a7fb7 --- /dev/null +++ b/debugging/lecture/debugging.tex @@ -0,0 +1,169 @@ +\chapter{Debugging} + +\shortquote{60\% of coding time is finding errors}{Famous last words} + +Es hilft ungemein, wenn zusammengeh\"orige Skripte und Funktionen im +gleichen Ordner auf der Festplatte zu finden sind. Es bietet sich also +an, f\"ur jede Analyse einen eigenen Ordner anzulegen und in diesem +die zugeh\"origen \codeterm{m-files} abzulegen. Auf eine tiefere +Schachtelung in weitere Unterordner kann in der Regel verzichtet +werden. \matlab{} erzeugt einen ``MATLAB'' Ordner im eigenen +\file{Documents} (Linux) oder \file{Eigene Dokumente} (Windows) +Ordner. Es bietet sich an, diesen Ordner als Wurzelverzeichnis f\"ur +eigene Arbeiten zu verwenden. Nat\"urlich kann auch jeder andere Ort +gew\"ahlt werden. In dem Beispiel in \figref{fileorganizationfig} wird +innerhalb dieses Ordners f\"ur jedes Projekt ein eigener Unterordner +erstellt, in welchem wiederum f\"ur jedes Problem, jede Analyse ein +weiterer Unterodner erstellt wird. In diesen liegen sowohl die +ben\"otigten \codeterm{m-files} also auch die Resultate der Analyse +(Abbildungen, Daten-Dateien). Zu bemerken sind noch zwei weitere +Dinge. Im Projektordner existiert ein Skript (analysis.m), das dazu +gedacht ist, alle Analysen aufzurufen. Des Weiteren gibt es parallel +zu den Projektordnern einen \file{functions}-Ordner in dem Funktionen +liegen, die in mehr als einem Projekt oder einer Analyse gebraucht +werden. + +Beim Betrachten dieses Layouts f\"allt auf, dass es sehr +wahrscheinlich ist, dass bestimmte Namen f\"ur Funktionen und Skripte +mehrfach verwendet werden. Es ist nicht verwunderlich, wenn eine +\file{load\_data.m} Funktion in jeder Analyse vorkommt. In der Regel +wird dies nicht zu Konflikten f\"uhren, da \matlab{} zuerst im +aktuellen Ordner nach passenden Dateien sucht (mehr Information zum +\matlab-Suchpfad in Box~\ref{matlabpathbox}). + +\begin{figure}[tp] + \includegraphics[width=0.75\textwidth]{no_bug} + \titlecaption{\label{fileorganizationfig} M\"ogliche Organisation von + Programmcode im Dateisystem.}{ F\"ur jedes Projekt werden + Unterordner f\"ur die einzelnen Analysen angelegt. Auf Ebene des + Projektes k\"onnte es ein Skript (hier ``analysis.m'') geben, + welches alle Analysen in den Unterordnern anst\"o{\ss}t.} +\end{figure} + + +\begin{ibox}[tp]{\label{matlabpathbox}Der \matlab{} Suchpfad} + Der Suchpfad definiert, wo \matlab{} nach Skripten und Funktionen + sucht. Wird eine Funktion aufgerufen wird zun\"achst im aktuellen + Arbeitsverzeichnis einem Treffer gesucht. Schl\"agt diese Suche + fehl, so arbeitet sich \matlab{} durch den \codeterm{Suchpfad} + (siehe Abbildung). Der \codeterm{Suchpfad} ist eine Liste von + Ordnern in denen \matlab{} nach Funktionen und Skripten suchen + soll. Die Suche nach der aufgerufenen Funktion wird dabei von oben + nach unten durchgef\"uhrt. Das heisst, dass es bei + Namensgleichheit eine Rolle spielen kann an welcher Stelle im + Suchpfad der erste Treffer gefunden wird. Wichtig: \matlab{} sucht + nicht rekursiv! Wenn die gew\"unschte Funktion in einem Unterordner + des aktuellen Arbeitsverzeichnisses liegt, dieses aber nicht + explizit im Suchpfad enthalten ist, so wird die Funktion nicht + gefunden. + + Der Suchpfad kann sowohl \"uber die Kommandozeile mit dem Kommandos + \code{addpath()} und \code{userpath()} als auch\"uber die in der + Abbildung gezeigte GUI angezeigt und eingestellt werden. Die GUI + erlaubt Ordner aus dem Suchpfad zu entfernen, neue Ordner (optional + inklusive aller Unterordner) hinzuzuf\"ugen oder die Reihenfolge der + Pfade zu ver\"andern. + + Zum Wechseln des aktuellen Arbeitsverzeichnisses wird das Kommando + \code{cd} verwendet. \code{which} zeigt an, in welchem Pfad eine + bestimmte Funktion gefunden wurde. Das aktuelle Areitsverzeichnis + wird durch den Aufruf \code{pwd} auf der Kommandozeile ausgegeben. +\end{ibox} + +\section{Namensgebung von Funktionen und Skripten} + +\matlab{} sucht Funktionen und Skripte ausschlie{\ss}lich anhand des +Namens. Dabei spielt die Gro{\ss}- und Kleinschreibung eine Rolle. Die +beiden Dateien \file{test\_funktion.m} und \file{Test\_Funktion.m} +zwei unterschiedliche Funktionen benennen k\"onnen. Diese Art der +Variation des Namens ist nat\"urlich nicht sinnvoll. Sie tr\"agt keine +Information \"uber den Unterschied der beiden Funktionen. Auch sagt +der Name nahezu nichts \"uber den Zweck der Funktion aus. + +Die Namensgebung f\"allt mitunter nicht leicht --- manchmal ist es +sogar der schwierigste Aspekt des Programmierens! Ausdrucksstarke +Namen zu finden lohnt sich aber. Ausdrucksstark bedeutet, dass sich +aus dem Namen R\"uckschl\"usse auf den Zweck ziehen lassen sollte. + +\begin{important}[Benennung von Funktionen und Skripten] + Die Namen von Funktionen und Skripten sollten m\"oglichst viel \"uber + die Funktionsweise oder den Zweck aussagen (\file{firingrates.m} + statt \file{uebung.m}). Gute Namen f\"ur Funktionen und Skripte sind + die beste Dokumentation. +\end{important} + +In Namen verbietet \matlab{} verbietet Leerzeichen, Sonderzeichen und +Umlaute. Namen d\"urfen auch nicht mit Zahlen anfangen. Es mach f\"ur +die Namensgebung selbst keine weiteren Vorgaben. Allerdings folgt die +Benennung der in \matlab{} vordefinierten Funktionen gewissen Mustern: +\begin{itemize} +\item Namen werden immer klein geschrieben. +\item Es werden gerne Abk\"urzungen eingesetzt (z.B. \code{xcorr()} + f\"ur die Kreuzkorrelation oder \code{repmat()} f\"ur ``repeat matrix'') +\item Funktionen, die zwischen Formaten konvertieren sind immer nach + dem Muster ``format2format'' (z.B. \code{num2str()} f\"ur die + Konvertierung ``number to string'', Umwandlung eines numerischen + Wertes in einen Text) benannt. +\end{itemize} + + +\begin{important}[Benennung von Variablen] + Die Namen von Variablen sollten m\"oglichst viel \"uber ihren Inhalt + aussagen (\varcode{spike\_count} statt \varcode{x}). Gute Namen + f\"ur Variablen sind die beste Dokumentation. +\end{important} + + +\begin{lstlisting}[label=chaoticcode, caption={Un\"ubersichtliche Implementation des Random-walk.}] +num_runs = 10; +max_steps = 1000; + +positions = zeros(max_steps, num_runs); + +for run = 1:num_runs + + +for step = 2:max_steps + +x = randn(1); +if x<0 +positions(step, run)= positions(step-1, run)+1; + + +elseif x>0 + positions(step,run)=positions(step-1,run)-1; + end +end +end +\end{lstlisting} + +\pagebreak[4] + +\begin{lstlisting}[label=cleancode, caption={\"Ubersichtliche Implementation des Random-walk.}] +num_runs = 10; +max_steps = 1000; +positions = zeros(max_steps, num_runs); + +for run = 1:num_runs + for step = 2:max_steps + x = randn(1); + if x < 0 + positions(step, run) = positions(step-1, run) + 1; + elseif x > 0 + positions(step, run) = positions(step-1, run) - 1; + end + end +end +\end{lstlisting} + + +% \begin{exercise}{logicalVector.m}{logicalVector.out} +% Erstelle einen Vektor \varcode{x} mit den Werten 0--10. +% \begin{enumerate} +% \item F\"uhre aus: \varcode{y = x < 5} +% \item Gib den Inhalt von \varcode{y} auf dem Bildschirm aus. +% \item Was ist der Datentyp von \varcode{y}? +% \item Gibt alle Elemente aus \varcode{x} zur\"uck, die kleiner als 5 sind. +% \end{enumerate} +% \pagebreak[4] +% \end{exercise} diff --git a/debugging/lecture/figures/no_bug.jpg b/debugging/lecture/figures/no_bug.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8db7ac01e12458c8f6796580ad6905fce16872bb GIT binary patch literal 5387 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