s delar Grundläggande Datalogi s delar s delar s delar Dataabstraktion Rekursion Algoritmanalys s delar Sortering Trädstrukturer Grafalgoritmer Optimering Stavning Strängmatchning Datakompression Versionshantering
s delar s delar Miller & Ranum: Problem Solving with Algorithms and Data Structures using 1. Introduktion till 2. Kö som abstrakt datatyp 3. Binära sökträd 4. Bredden-först sökning 5. Syntaxstyrd texttolkning 6. Bygga trädstrukturer Introduktion till Obligatoriska moment Tentamen Laboration 1 6 Bonuspoäng Slutbetyg Labb 2 6 ger en bonuspoäng till tentan vid redovisning i tid Labb 2 senast 20 Nov Labb 3 senast 4 Dec Baseras på tentaresultatet A & B kräver genomförd extrauppgift på labb 2 6 A kräver extra labb 7 s delar s delar
Programspråk för människor Beskrivning av algoritmer C-funktion double sum ( double a [ ], i n t n ) { double s = 0. 0 ; f o r ( i n t i =0; i <n ; ++i ) s += a [ i ] ; return s ; } Körbar pseudokod def sum ( a ) : s = 0 f o r x i n a : s += x return s -funktion $ python 2. 5. 2 ( r252 : 6 0 9 1 1, Sep 29 2008) [GCC 4. 3. 2 ] on l i n u x 2 Type h e l p f o r more i n f o r m a t i o n. >>> 4711 17 80087 >>> s o r t e d ( [ 3, 5, 4 ] ) [ 3, 4, 5 ] >>> Tal int, long, float, complex, bool Strängar str, unicode Ordnade element tuple, list Samlingar utan ordning set, dictionary
s egenheter i f a <0: a = 0 r e v = True f o r i i n range ( 4 7 1 1 ) : sum += i 2 f o r x i n v : i f x==0: count += 1 Indentering är signifikant Variabler behöver inte deklareras Sen typning: Typen är en egenskap hos data, inte hos variabler Namn som inleds med är speciella while a >10: a = 0. 1 Definiera egna funktioner def funk ( a, b ) : c = max( a, b ) return a+b+c Möjligt att returnera flera värden via en tuple: def o r d e r ( a, b ) : i f a>b : return b, a e l s e : return a, b def a v e r a g e ( x, y ) : return ( x+y )/2 u t i l s utils.py p r i n t u t i l s. a v e r a g e (17, 4 7. 1 1 ) from u t i l s a v e r a g e low, h igh = o r d e r ( x, y ) p r i n t a v e r a g e (17, 4 7. 1 1 )
Unit testing kontroll av att funktioner, klasser, och moduler ger rätt resultat. doctest Förenklat system för testning. Kontrollerar att svaret stämmer med dokumentationen utils.py def a v e r a g e ( x, y ) : >>> a v e r a g e ( 0, 10) 5 >>> a v e r a g e ( 1, 2) 1. 5 return ( x+y )/2 u t i l s d o c t e s t d o c t e s t. testmod ( u t i l s )